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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [fc5c5d8ae7]

Overview
Comment:More recent links, and injecting phase changed to hooks[init]
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: fc5c5d8ae71db70b46ba804809e039520e458c1f
User & Date: mario on 2014-05-31 23:32:10
Other Links: manifest | tags
Context
2014-05-31
23:32
less debug output check-in: 898d5ecf64 user: mario tags: trunk
23:32
More recent links, and injecting phase changed to hooks[init] check-in: fc5c5d8ae7 user: mario tags: trunk
23:31
more hooks: init, config_load, config_save check-in: 60a80d0570 user: mario tags: trunk
Changes

Modified channels/links.py from [a17530466f] to [b955e668ce].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#
# api: streamtuner2
# title: Links to directory services
# description: Static list of various music directory websites.
# type: category
# category: web
# version: 0.1
# priority: default
#
#
# Simply adds a "links" entry in bookmarks tab, where known channels
# and some others are listed with homepage links.
#
#






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
#
# api: streamtuner2
# title: Links to directory services
# description: Static list of various music directory websites.
# type: category
# category: web
# version: 0.2
# priority: default
#
#
# Simply adds a "links" entry in bookmarks tab, where known channels
# and some others are listed with homepage links.
#
#
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
59



60
61


62
63
64
65
66

67
68

69
70
71

72

73
74

75
76
77
78
79
80
    
    
    # configuration settings
    config = [    ]
    
    # list
    streams = [    ]
    default = {
        "radio.de": "http://www.radio.de/",
        "musicgoal": "http://www.musicgoal.com/",


        "streamfinder": "http://www.streamfinder.com/",
        "last.fm": "http://www.last.fm/",
        "rhapsody (US-only)": "http://www.rhapsody.com/",
        "pandora (US-only)": "http://www.pandora.com/",
        "radiotower": "http://www.radiotower.com/",
        "pirateradio": "http://www.pirateradionetwork.com/",
        "R-L": "http://www.radio-locator.com/",
        "radio station world": "http://radiostationworld.com/",















        "surfmusik.de": "http://www.surfmusic.de/",


    }
    
    
    # prepare gui
    def __init__(self, parent):

      if parent:

        # target channel
        bookmarks = parent.bookmarks
        if not bookmarks.streams.get(self.module):
            bookmarks.streams[self.module] = []
        bookmarks.add_category(self.module)







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

                "title": channel.title,
                "homepage": channel.homepage,

            })
          except: pass
        for title,homepage in self.default.items():

            self.streams.append({

                "title": title,
                "homepage": homepage,

            })

        # add to bookmarks
        bookmarks.streams[self.module] = self.streams
        
        







|
|
|
>
>
|
|
|
|
<
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
|




>
|

|
|
|
|
|
>
>
>


>
>





>


>


|
>

>


>



|
|
|
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
    
    
    # configuration settings
    config = [    ]
    
    # list
    streams = [    ]
    default = [
        ("stream", "rad.io", "http://www.rad.io/"),
        ("stream", "RadioTower", "http://www.radiotower.com/"),
        ("stream", "8tracks", "http://8tracks.com/"),
        ("stream", "TuneIn", "http://tunein.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/"),
        ("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"),
       #("stream", "SurfMusik.de", "http://www.surfmusic.de/"),
       #("stream", "MusicGOAL", "http://www.musicgoal.com/"),
    ]
    
    
    
    # prepare gui
    def __init__(self, parent):

        if parent:

            # prepare target category
            bookmarks = parent.bookmarks
            if not bookmarks.streams.get(self.module):
                bookmarks.streams[self.module] = []
            bookmarks.add_category(self.module)
            
            # fill it up later
            parent.hooks["init"].append(self.populate)


    def populate(self, parent):
    
        # collect links from channel plugins
        for name,channel in parent.channels.items():
          try:
            self.streams.append({
                "favourite": 1,
                "genre": "channel",
                "title": channel.title,
                "homepage": channel.homepage,
                "type": "text/html",
            })
          except: pass
        for row in self.default:
            (genre, title, homepage) = row
            self.streams.append({
                "genre": genre,
                "title": title,
                "homepage": homepage,
                "type": "text/html",
            })

        # add to bookmarks
        parent.bookmarks.streams[self.module] = self.streams