Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Diff

Differences From Artifact [2d54644218]:

To Artifact [5eb14dba9a]:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
# encoding: utf-8
# api: streamtuner2
# title: Links to directory services
# description: Static list of various music directory websites.
# type: group
# category: web
# version: 0.3
# priority: standard
# config: -
#
# Simply adds a "links" entry in bookmarks tab, where known services
# are listed with homepage links. Registered plugins automatically
# end up on top of that list.
#






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
# encoding: utf-8
# api: streamtuner2
# title: Links to directory services
# description: Static list of various music directory websites.
# type: group
# category: web
# version: 0.4
# priority: standard
# config: -
#
# Simply adds a "links" entry in bookmarks tab, where known services
# are listed with homepage links. Registered plugins automatically
# end up on top of that list.
#
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

# hooks into main.bookmarks
class links (FeaturePlugin):

    # list
    streams = [    ]
    default = [
        ("stream", "rad.io", "http://www.rad.io/"),
        ("stream", "RadioTower", "http://www.radiotower.com/"),
        ("stream", "8tracks", "http://8tracks.com/"),
        ("stream", "Jango", "http://www.jango.com/"),
        ("stream", "last.fm", "http://www.last.fm/"),
        ("stream", "StreamFinder", "http://www.streamfinder.com/"),
        ("stream", "RadioTower", "http://radiotower.com/"),
        ("stream", "Rhapsody (US-only)", "http://www.rhapsody.com/"),
        ("stream", "Pirateradio Network", "http://www.pirateradionetwork.com/"),
        ("stream", "radio-locator", "http://www.radio-locator.com/"),
        ("stream", "Radio Station World", "http://radiostationworld.com/"),
        ("stream", "iHeart", "http://www.iheartradio.com/"),
        ("download", "Live Music Archive(.org)", "https://archive.org/details/etree"),
        ("download", "FMA, free music archive", "http://freemusicarchive.org/"),
        ("download", "Audiofarm", "http://audiofarm.org/"),
        ("stream", "SoundCloud", "https://soundcloud.com/"),
        ("download", "ccMixter", "http://dig.ccmixter.org/"),
        ("download", "mySpoonful", "http://myspoonful.com/"),
        ("download", "NoiseTrade", "http://noisetrade.com/"),
        ("stream", "Hype Machine", "http://hypem.com/"),
        ("download", "Amazon Free MP3s", "http://www.amazon.com/b/ref=dm_hp_bb_atw?node=7933257011"),
        ("stream", "Shuffler.fm", "http://shuffler.fm/"),
        ("download", "ccTrax", "http://www.cctrax.com/"),
        ("list", "WP: Streaming music services", "http://en.wikipedia.org/wiki/Comparison_of_on-demand_streaming_music_services"),
        ("list", "WP: Music databases", "http://en.wikipedia.org/wiki/List_of_online_music_databases"),
        ("commercial", "Google Play Music", "https://play.google.com/about/music/"),
        ("commercial", "Deezer", "http://www.deezer.com/features/music.html"),
    ]
    







<





<










<
<


<







23
24
25
26
27
28
29

30
31
32
33
34

35
36
37
38
39
40
41
42
43
44


45
46

47
48
49
50
51
52
53

# hooks into main.bookmarks
class links (FeaturePlugin):

    # list
    streams = [    ]
    default = [

        ("stream", "RadioTower", "http://www.radiotower.com/"),
        ("stream", "8tracks", "http://8tracks.com/"),
        ("stream", "Jango", "http://www.jango.com/"),
        ("stream", "last.fm", "http://www.last.fm/"),
        ("stream", "StreamFinder", "http://www.streamfinder.com/"),

        ("stream", "Rhapsody (US-only)", "http://www.rhapsody.com/"),
        ("stream", "Pirateradio Network", "http://www.pirateradionetwork.com/"),
        ("stream", "radio-locator", "http://www.radio-locator.com/"),
        ("stream", "Radio Station World", "http://radiostationworld.com/"),
        ("stream", "iHeart", "http://www.iheartradio.com/"),
        ("download", "Live Music Archive(.org)", "https://archive.org/details/etree"),
        ("download", "FMA, free music archive", "http://freemusicarchive.org/"),
        ("download", "Audiofarm", "http://audiofarm.org/"),
        ("stream", "SoundCloud", "https://soundcloud.com/"),
        ("download", "ccMixter", "http://dig.ccmixter.org/"),


        ("stream", "Hype Machine", "http://hypem.com/"),
        ("download", "Amazon Free MP3s", "http://www.amazon.com/b/ref=dm_hp_bb_atw?node=7933257011"),

        ("download", "ccTrax", "http://www.cctrax.com/"),
        ("list", "WP: Streaming music services", "http://en.wikipedia.org/wiki/Comparison_of_on-demand_streaming_music_services"),
        ("list", "WP: Music databases", "http://en.wikipedia.org/wiki/List_of_online_music_databases"),
        ("commercial", "Google Play Music", "https://play.google.com/about/music/"),
        ("commercial", "Deezer", "http://www.deezer.com/features/music.html"),
    ]
    
68
69
70
71
72
73
74

75
76
77
78
79
80
81
        if not self.bookmarks.streams.get(self.module):
            self.bookmarks.streams[self.module] = self.streams
        self.bookmarks.add_category(self.module, self)


    def update_streams(self, cat="links"):
        #log.PROC("links.update_streams")

    
        # Collect links from channel plugins
        for name,channel in self.parent.channels.items():
            try:
                self.streams.append({
                    "favourite": 1,
                    "genre": "channel",







>







63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
        if not self.bookmarks.streams.get(self.module):
            self.bookmarks.streams[self.module] = self.streams
        self.bookmarks.add_category(self.module, self)


    def update_streams(self, cat="links"):
        #log.PROC("links.update_streams")
        del self.streams[:]
    
        # Collect links from channel plugins
        for name,channel in self.parent.channels.items():
            try:
                self.streams.append({
                    "favourite": 1,
                    "genre": "channel",
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
                "homepage": homepage,
                "type": "text/html",
            })

        # add to bookmarks
        return self.streams

        # redraw category
#        parent.bookmarks.reload_if_current(self.module)


    # retrieve links from repository wiki page (via JSON API /json/wiki/get/…)
    def from_wiki(self):
        src = ahttp.get("https://fossil.include-once.org/streamtuner2/json/wiki/get/links", timeout=2)
        if not src:
            return
        wiki = json.loads(src)







<
<
<







92
93
94
95
96
97
98



99
100
101
102
103
104
105
                "homepage": homepage,
                "type": "text/html",
            })

        # add to bookmarks
        return self.streams





    # retrieve links from repository wiki page (via JSON API /json/wiki/get/…)
    def from_wiki(self):
        src = ahttp.get("https://fossil.include-once.org/streamtuner2/json/wiki/get/links", timeout=2)
        if not src:
            return
        wiki = json.loads(src)