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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [c41b729685]

Overview
Comment:Fix default bitrates in static SomaFM stream list.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c41b729685746f8a02deb0ef08a506ac07e88374
User & Date: mario on 2015-04-12 15:32:16
Other Links: manifest | tags
Context
2015-04-12
15:35
Add easter egg in search_dialog only for PYZ package. (Now Makefile targets require preprocess.py though). Resize GtkBuilder definition for search_dialog. check-in: 5ab206cedc user: mario tags: trunk
15:32
Fix default bitrates in static SomaFM stream list. check-in: c41b729685 user: mario tags: trunk
00:48
SomaFM.com channel plugin, with entirely static station list. check-in: 6a5133781f user: mario tags: trunk
Changes

Modified channels/somafm.py from [cbb9a3325d] to [353f76d560].

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
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







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







    listformat = "pls"
    format = "audio/aac"
    titles = dict(listeners=False, playing="Description")

    categories = ["listen", "support"]
    streams = {
    "listen": [
        {'genre': 'ambient', 'listeners': 2187, 'title': 'Drone Zone', 'url': 'http://somafm.com/dronezone130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/dronezone/', 'playing': 'Served best chilled, safe with most medications. Atmospheric textures with minimal beats.'},
        {'genre': 'alternative', 'listeners': 420, 'title': 'Indie Pop Rocks!', 'url': 'http://somafm.com/indiepop130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/indiepop/', 'playing': 'New and classic favorite indie pop tracks.'},
        {'genre': 'electronica', 'listeners': 380, 'title': 'Lush', 'url': 'http://somafm.com/lush130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/lush/', 'playing': 'Sensuous and mellow vocals, mostly female, with an electronic influence.'},
        {'genre': 'lounge', 'listeners': 377, 'title': 'Secret Agent', 'url': 'http://somafm.com/secretagent130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/secretagent/', 'playing': 'The soundtrack for your stylish, mysterious, dangerous life. For Spies and PIs too!'},
        {'genre': 'electronica', 'listeners': 375, 'title': 'Space Station Soma', 'url': 'http://somafm.com/spacestation130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/spacestation/', 'playing': 'Tune in, turn on, space out. Spaced-out ambient and mid-tempo electronica.'},
        {'genre': 'americana', 'listeners': 337, 'title': 'Boot Liquor', 'url': 'http://somafm.com/bootliquor130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/bootliquor/', 'playing': 'Americana Roots music for Cowhands, Cowpokes and Cowtippers'},
        {'genre': 'ambient', 'listeners': 165, 'title': 'Deep Space One', 'url': 'http://somafm.com/deepspaceone130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/deepspaceone/', 'playing': 'Deep ambient electronic, experimental and space music. A soundtrack for inner and outer space exploration.'},
        {'genre': 'electronica', 'listeners': 149, 'title': 'Beat Blender', 'url': 'http://somafm.com/beatblender64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/beatblender/', 'playing': 'A late night blend of deep-house and downtempo chill.'},
        {'genre': 'alternative', 'listeners': 148, 'title': 'PopTron', 'url': 'http://somafm.com/poptron64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/poptron/', 'playing': 'Electropop and indie dance rock with sparkle and pop.'},
        {'genre': 'world', 'listeners': 121, 'title': 'Suburbs of Goa', 'url': 'http://somafm.com/suburbsofgoa130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/suburbsofgoa/', 'playing': 'Desi-influenced Asian world beats and beyond.'},
        {'genre': 'lounge', 'listeners': 112, 'title': 'Illinois Street Lounge', 'url': 'http://somafm.com/illstreet130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/illstreet/', 'playing': 'Classic bachelor pad, playful exotica and vintage music of tomorrow.'},
        {'genre': 'jazz', 'listeners': 111, 'title': 'Sonic Universe', 'url': 'http://somafm.com/sonicuniverse64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/sonicuniverse/', 'playing': 'Transcending the world of jazz with eclectic, avant-garde takes on tradition.'},
        {'genre': 'alternative', 'listeners': 92, 'title': 'BAGeL Radio', 'url': 'http://somafm.com/bagel64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/bagel/', 'playing': 'What alternative rock radio should sound like.'},
        {'genre': 'electronica', 'listeners': 89, 'title': 'The Trip', 'url': 'http://somafm.com/thetrip64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/thetrip/', 'playing': 'Progressive house / trance. Tip top tunes.'},
        {'genre': 'electronica', 'listeners': 87, 'title': 'Dub Step Beyond', 'url': 'http://somafm.com/dubstep64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/dubstep/', 'playing': 'Dubstep, Dub and Deep Bass. May damage speakers at high volume.'},
        {'genre': 'electronica', 'listeners': 77, 'title': 'cliqhop idm', 'url': 'http://somafm.com/cliqhop64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/cliqhop/', 'playing': u"Blips'n'beeps backed mostly w/beats. Intelligent Dance Music."},
        {'genre': 'alternative', 'listeners': 51, 'title': 'Seven Inch Soul', 'url': 'http://somafm.com/7soul130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/7soul/', 'playing': 'Vintage soul tracks from the original 45 RPM vinyl.'},
        {'genre': 'eclectic', 'listeners': 38, 'title': 'Black Rock FM', 'url': 'http://somafm.com/brfm130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/brfm/', 'playing': 'From the Playa to the world, for the 2014 Burning Man festival.'},
        {'genre': 'eclectic', 'listeners': 30, 'title': 'Covers', 'url': 'http://somafm.com/covers64.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/covers/', 'playing': u"Just covers. Songs you know by artists you don't. We've got you covered."},
        {'genre': 'experimental', 'listeners': 14, 'title': 'Earwaves', 'url': 'http://somafm.com/earwaves130.pls', 'bitrate': 128, 'homepage': 'http://somafm.com/earwaves/', 'playing': 'Spanning the history of electronic and experimental music from the early pioneers to the latest innovators.'}
        {'genre': 'ambient', 'listeners': 2187, 'title': 'Drone Zone', 'url': 'http://somafm.com/dronezone64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/dronezone/', 'playing': 'Served best chilled, safe with most medications. Atmospheric textures with minimal beats.'},
        {'genre': 'alternative', 'listeners': 420, 'title': 'Indie Pop Rocks!', 'url': 'http://somafm.com/indiepop64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/indiepop/', 'playing': 'New and classic favorite indie pop tracks.'},
        {'genre': 'electronica', 'listeners': 380, 'title': 'Lush', 'url': 'http://somafm.com/lush64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/lush/', 'playing': 'Sensuous and mellow vocals, mostly female, with an electronic influence.'},
        {'genre': 'lounge', 'listeners': 377, 'title': 'Secret Agent', 'url': 'http://somafm.com/secretagent64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/secretagent/', 'playing': 'The soundtrack for your stylish, mysterious, dangerous life. For Spies and PIs too!'},
        {'genre': 'electronica', 'listeners': 375, 'title': 'Space Station Soma', 'url': 'http://somafm.com/spacestation64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/spacestation/', 'playing': 'Tune in, turn on, space out. Spaced-out ambient and mid-tempo electronica.'},
        {'genre': 'americana', 'listeners': 337, 'title': 'Boot Liquor', 'url': 'http://somafm.com/bootliquor64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/bootliquor/', 'playing': 'Americana Roots music for Cowhands, Cowpokes and Cowtippers'},
        {'genre': 'ambient', 'listeners': 165, 'title': 'Deep Space One', 'url': 'http://somafm.com/deepspaceone64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/deepspaceone/', 'playing': 'Deep ambient electronic, experimental and space music. A soundtrack for inner and outer space exploration.'},
        {'genre': 'electronica', 'listeners': 149, 'title': 'Beat Blender', 'url': 'http://somafm.com/beatblender64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/beatblender/', 'playing': 'A late night blend of deep-house and downtempo chill.'},
        {'genre': 'alternative', 'listeners': 148, 'title': 'PopTron', 'url': 'http://somafm.com/poptron64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/poptron/', 'playing': 'Electropop and indie dance rock with sparkle and pop.'},
        {'genre': 'world', 'listeners': 121, 'title': 'Suburbs of Goa', 'url': 'http://somafm.com/suburbsofgoa64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/suburbsofgoa/', 'playing': 'Desi-influenced Asian world beats and beyond.'},
        {'genre': 'lounge', 'listeners': 112, 'title': 'Illinois Street Lounge', 'url': 'http://somafm.com/illstreet64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/illstreet/', 'playing': 'Classic bachelor pad, playful exotica and vintage music of tomorrow.'},
        {'genre': 'jazz', 'listeners': 111, 'title': 'Sonic Universe', 'url': 'http://somafm.com/sonicuniverse64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/sonicuniverse/', 'playing': 'Transcending the world of jazz with eclectic, avant-garde takes on tradition.'},
        {'genre': 'alternative', 'listeners': 92, 'title': 'BAGeL Radio', 'url': 'http://somafm.com/bagel64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/bagel/', 'playing': 'What alternative rock radio should sound like.'},
        {'genre': 'electronica', 'listeners': 89, 'title': 'The Trip', 'url': 'http://somafm.com/thetrip64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/thetrip/', 'playing': 'Progressive house / trance. Tip top tunes.'},
        {'genre': 'electronica', 'listeners': 87, 'title': 'Dub Step Beyond', 'url': 'http://somafm.com/dubstep64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/dubstep/', 'playing': 'Dubstep, Dub and Deep Bass. May damage speakers at high volume.'},
        {'genre': 'electronica', 'listeners': 77, 'title': 'cliqhop idm', 'url': 'http://somafm.com/cliqhop64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/cliqhop/', 'playing': u"Blips'n'beeps backed mostly w/beats. Intelligent Dance Music."},
        {'genre': 'alternative', 'listeners': 51, 'title': 'Seven Inch Soul', 'url': 'http://somafm.com/7soul64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/7soul/', 'playing': 'Vintage soul tracks from the original 45 RPM vinyl.'},
        {'genre': 'eclectic', 'listeners': 38, 'title': 'Black Rock FM', 'url': 'http://somafm.com/brfm64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/brfm/', 'playing': 'From the Playa to the world, for the 2014 Burning Man festival.'},
        {'genre': 'eclectic', 'listeners': 30, 'title': 'Covers', 'url': 'http://somafm.com/covers64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/covers/', 'playing': u"Just covers. Songs you know by artists you don't. We've got you covered."},
        {'genre': 'experimental', 'listeners': 14, 'title': 'Earwaves', 'url': 'http://somafm.com/earwaves64.pls', 'bitrate': 64, 'homepage': 'http://somafm.com/earwaves/', 'playing': 'Spanning the history of electronic and experimental music from the early pioneers to the latest innovators.'}
    ],
    "support": [
        {'genre': 'faq', 'listeners': 6398, 'title': 'Commercial-free, listener supported radio station.', 'url': 'https://youtube.com/v/DAjSPgRPhzw', 'format': 'video/youtube', 'bitrate': 256, 'homepage': 'http://somafm.com/support/', 'playing': 'Unique among music stations, SomaFM depends on community donations to operate. PS: SomaFM Loves You!!'}
    ]}

    # All static
    def update_categories(self):
101
102
103
104
105
106
107
108

109
110
101
102
103
104
105
106
107

108
109
110







-
+


            <p.*?>(.+?)</p> .*?
            href="(http://somafm.com/.+?.pls)" .*?
        """, html, re.X|re.S)
        rows = [
           dict(genre=g, title=t, playing=p, url=u, listeners=int(l), bitrate=128, homepage=re.sub("\d*\.pls$", "/", u))
            for l,g,t,p,u in ls
        ]
        print rows
        #print rows
        return rows