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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [99d4249ef4]

Overview
Comment:Update default configuration, rename internet_radio_org_uk to just internet_radio module
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 99d4249ef41da555768e3a40082eb10295af618f
User & Date: mario on 2014-05-27 15:06:54
Other Links: manifest | tags
Context
2014-05-27
19:17
Internet-Radio plugin restructured to alternate between regex (partially working again) and pyquery extraction (only misses a few advertised stations). Pages are now retrieved in one batch, therefore a bit faster now. check-in: 0bc6843caf user: mario tags: trunk
15:06
Update default configuration, rename internet_radio_org_uk to just internet_radio module check-in: 99d4249ef4 user: mario tags: trunk
12:37
ListStore row editing callback unified via lambda-funcs as signal handlers. Recording hook adapted to pass actual MIME type. Python3 try/except for json file writing (still breaks due to gzip handler being optional). check-in: af5ae3f5be user: mario tags: trunk
Changes

Modified _package.epm from [0720a3c6a7] to [a336014854].

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
f 644 root root /usr/share/streamtuner2/mygtk.py		./mygtk.py
f 644 root root /usr/share/streamtuner2/favicon.py		./favicon.py
f 644 root root /usr/share/streamtuner2/pq.py			./pq.py
#-- channels
d 755 root root /usr/share/streamtuner2/channels		-
f 644 root root /usr/share/streamtuner2/channels/__init__.py	./channels/__init__.py
f 644 root root /usr/share/streamtuner2/channels/_generic.py	./channels/_generic.py
f 644 root root /usr/share/streamtuner2/channels/shoutcast.py 	./channels/shoutcast.py
f 644 root root /usr/share/streamtuner2/channels/shoutcast.png 	./channels/shoutcast.png
f 644 root root /usr/share/streamtuner2/channels/xiph.py	./channels/xiph.py
f 644 root root /usr/share/streamtuner2/channels/xiph.png 	./channels/xiph.png
f 644 root root /usr/share/streamtuner2/channels/live365.py	./channels/live365.py
f 644 root root /usr/share/streamtuner2/channels/live365.png 	./channels/live365.png
f 644 root root /usr/share/streamtuner2/channels/google.py	./channels/google.py
f 644 root root /usr/share/streamtuner2/channels/google.png	./channels/google.png
f 644 root root /usr/share/streamtuner2/channels/punkcast.py	./channels/punkcast.py
f 644 root root /usr/share/streamtuner2/channels/punkcast.png	./channels/punkcast.png
#f 644 root root /usr/share/streamtuner2/channels/basicch.py 	./channels/basicch.py
#f 644 root root /usr/share/streamtuner2/channels/basicch.png 	./channels/basicch.png
f 644 root root /usr/share/streamtuner2/channels/jamendo.py 	./channels/jamendo.py
f 644 root root /usr/share/streamtuner2/channels/jamendo.png 	./channels/jamendo.png
f 644 root root /usr/share/streamtuner2/channels/myoggradio.py 	./channels/myoggradio.py
f 644 root root /usr/share/streamtuner2/channels/myoggradio.png	./channels/myoggradio.png
f 644 root root /usr/share/streamtuner2/channels/internet_radio_org_uk.py ./channels/internet_radio_org_uk.py
f 644 root root /usr/share/streamtuner2/channels/internet_radio_org_uk.png ./channels/internet_radio_org_uk.png
f 644 root root /usr/share/streamtuner2/channels/timer.py 	./channels/timer.py
f 644 root root /usr/share/streamtuner2/channels/links.py 	./channels/links.py
f 644 root root /usr/share/streamtuner2/channels/global_key.py 	./channels/global_key.py
#f 644 root root /usr/share/streamtuner2/channels/tv.py 		./channels/tv.py
#f 644 root root /usr/share/streamtuner2/channels/tv.png 	./channels/tv.png
f 644 root root /usr/share/streamtuner2/channels/musicgoal.py 	./channels/musicgoal.py
f 644 root root /usr/share/streamtuner2/channels/musicgoal.png	./channels/musicgoal.png
#-- scripts
#d 755 root root /usr/share/streamtuner2/scripts		-
#f 644 root root /usr/share/streamtuner2/scripts/radiotop40_de.py  ./scripts/radiotop40_de.py
#-- themes
#f 644 root root /usr/share/streamtuner2/themes/MountainDew/gtk-2.0/gtkrc ./themes/MountainDew/gtk-2.0/gtkrc
#-- help files
f 644 root root /usr/share/man/man1/streamtuner2.1		 	 ./help/streamtuner2.1







|
|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
f 644 root root /usr/share/streamtuner2/mygtk.py		./mygtk.py
f 644 root root /usr/share/streamtuner2/favicon.py		./favicon.py
f 644 root root /usr/share/streamtuner2/pq.py			./pq.py
#-- channels
d 755 root root /usr/share/streamtuner2/channels		-
f 644 root root /usr/share/streamtuner2/channels/__init__.py	./channels/__init__.py
f 644 root root /usr/share/streamtuner2/channels/_generic.py	./channels/_generic.py
f 644 root root /usr/share/streamtuner2/channels/internet_radio.py ./channels/internet_radio.py
f 644 root root /usr/share/streamtuner2/channels/internet_radio.png ./channels/internet_radio.png
f 644 root root /usr/share/streamtuner2/channels/jamendo.py 	./channels/jamendo.py
f 644 root root /usr/share/streamtuner2/channels/jamendo.png 	./channels/jamendo.png
f 644 root root /usr/share/streamtuner2/channels/live365.py	./channels/live365.py
f 644 root root /usr/share/streamtuner2/channels/live365.png 	./channels/live365.png
f 644 root root /usr/share/streamtuner2/channels/modarchive.py 	./channels/modarchive.py
f 644 root root /usr/share/streamtuner2/channels/modarchive.png	./channels/modarchive.png
f 644 root root /usr/share/streamtuner2/channels/musicgoal.py 	./channels/musicgoal.py
f 644 root root /usr/share/streamtuner2/channels/musicgoal.png	./channels/musicgoal.png
f 644 root root /usr/share/streamtuner2/channels/myoggradio.py 	./channels/myoggradio.py
f 644 root root /usr/share/streamtuner2/channels/myoggradio.png	./channels/myoggradio.png
f 644 root root /usr/share/streamtuner2/channels/punkcast.py	./channels/punkcast.py
f 644 root root /usr/share/streamtuner2/channels/punkcast.png	./channels/punkcast.png
f 644 root root /usr/share/streamtuner2/channels/shoutcast.py 	./channels/shoutcast.py
f 644 root root /usr/share/streamtuner2/channels/shoutcast.png 	./channels/shoutcast.png
f 644 root root /usr/share/streamtuner2/channels/surfmusik.py	./channels/surfmusik.py
f 644 root root /usr/share/streamtuner2/channels/surfmusik.png	./channels/surfmusik.png
f 644 root root /usr/share/streamtuner2/channels/xiph.py	./channels/xiph.py
f 644 root root /usr/share/streamtuner2/channels/xiph.png 	./channels/xiph.png
f 644 root root /usr/share/streamtuner2/channels/youtube.py	./channels/youtube.py
f 644 root root /usr/share/streamtuner2/channels/youtube.png	./channels/youtube.png
f 644 root root /usr/share/streamtuner2/channels/global_key.py 	./channels/global_key.py
f 644 root root /usr/share/streamtuner2/channels/links.py 	./channels/links.py
f 644 root root /usr/share/streamtuner2/channels/timer.py 	./channels/timer.py
#-- scripts
#d 755 root root /usr/share/streamtuner2/scripts		-
#f 644 root root /usr/share/streamtuner2/scripts/radiotop40_de.py  ./scripts/radiotop40_de.py
#-- themes
#f 644 root root /usr/share/streamtuner2/themes/MountainDew/gtk-2.0/gtkrc ./themes/MountainDew/gtk-2.0/gtkrc
#-- help files
f 644 root root /usr/share/man/man1/streamtuner2.1		 	 ./help/streamtuner2.1

Name change from channels/internet_radio_org_uk.png to channels/internet_radio.png.

cannot compute difference between binary files

Modified channels/internet_radio.py from [865efc64e3] to [323154e4b9].

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import ahttp as http
from pq import pq




# streams and gui
class internet_radio_org_uk (ChannelPlugin):


    # description
    title = "InternetRadio"
    module = "internet_radio_org_uk"
    homepage = "http://www.internet-radio.org.uk/"
    listformat = "audio/x-scpls"
    
    # settings
    config = [
        {"name":"internetradio_max_pages", "type":"int", "value":5, "description":"How many pages to fetch and read."},
    ]







|




|







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import ahttp as http
from pq import pq




# streams and gui
class internet_radio (ChannelPlugin):


    # description
    title = "InternetRadio"
    module = "internet_radio"
    homepage = "http://www.internet-radio.org.uk/"
    listformat = "audio/x-scpls"
    
    # settings
    config = [
        {"name":"internetradio_max_pages", "type":"int", "value":5, "description":"How many pages to fetch and read."},
    ]

Modified cli.py from [b62ad1b334] to [b00bb5a675].

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

    # plugin info
    title = "CLI interface"
    version = 0.3

    
    # channel plugins
    channel_modules = ["shoutcast", "xiph", "internet_radio_org_uk", "jamendo", "myoggradio", "live365"]
    current_channel = "cli"
    plugins = {} # only populated sparsely by .stream()
    
    
    # start
    def __init__(self):








|







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

    # plugin info
    title = "CLI interface"
    version = 0.3

    
    # channel plugins
    channel_modules = ["shoutcast", "xiph", "internet_radio", "jamendo", "myoggradio", "live365"]
    current_channel = "cli"
    plugins = {} # only populated sparsely by .stream()
    
    
    # start
    def __init__(self):

Modified config.py from [1418a05152] to [eff4cdbef0].

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


        # some defaults
        def defaults(self):
            self.play = {
               "audio/mpeg": "audacious ",	# %u for url to .pls, %g for downloaded .m3u
               "audio/ogg": "audacious ",
               "audio/*": "totem ",

               "video/*": "vlc --one-instance %srv",
               "url/http": "sensible-browser",
            }
            self.record = {
               "audio/*": "xterm -e streamripper %srv",   # -d /home/***USERNAME***/Musik
               "video/youtube": "xterm -e youtube-dl %srv",
            }
            self.plugins = {
                "bookmarks": 1,  # built-in plugins, cannot be disabled
                "shoutcast": 1,
                "xiph": 1,
                "file": 0,   # disable per default
                "punkcast": 0,   # disable per default

                "basicch": 0,   # ceased
                "tv": 0,   # no longer working
            }
            self.tmp = os.environ.get("TEMP", "/tmp")
            self.max_streams = "500"
            self.show_bookmarks = 1
            self.show_favicons = 1
            self.load_favicon = 1
            self.heuristic_bookmark_update = 1
            self.retain_deleted = 1
            self.auto_save_appstate = 1
            self.theme = "" #"MountainDew"
            self.debug = False
            self.channel_order = "shoutcast, xiph, internet_radio_org_uk, jamendo, myoggradio, .."
            self.reuse_m3u = 1
            self.google_homepage = 1
            self.windows = platform.system()=="Windows"
            self.pyquery = 1
            self.debug = 1

            
        # each plugin has a .config dict list, we add defaults here
        def add_plugin_defaults(self, config, module=""):
        
            # options
            for opt in config:







|
>





|


|


|
|
>

|






|
|


<
|

|


|







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


        # some defaults
        def defaults(self):
            self.play = {
               "audio/mpeg": "audacious ",	# %u for url to .pls, %g for downloaded .m3u
               "audio/ogg": "audacious ",
               "audio/*": "audacious ",
               "video/youtube": "totem $(youtube-dl -g %srv)",
               "video/*": "vlc --one-instance %srv",
               "url/http": "sensible-browser",
            }
            self.record = {
               "audio/*": "xterm -e streamripper %srv",   # -d /home/***USERNAME***/Musik
               "video/youtube": "xterm -e \"youtube-dl %srv\"",
            }
            self.plugins = {
                "bookmarks": 1, # built-in plugin, cannot be disabled
                "shoutcast": 1,
                "xiph": 1,
                "file": 0,      # disable per default
                "punkcast": 0,  # disable per default
                "history": 0,
                "basicch": 0,   # ceased
                "tv": 0,        # ceased
            }
            self.tmp = os.environ.get("TEMP", "/tmp")
            self.max_streams = "500"
            self.show_bookmarks = 1
            self.show_favicons = 1
            self.load_favicon = 1
            self.heuristic_bookmark_update = 0
            self.retain_deleted = 0
            self.auto_save_appstate = 1
            self.theme = "" #"MountainDew"

            self.channel_order = "shoutcast, xiph, internet_radio, jamendo, myoggradio, .."
            self.reuse_m3u = 1
            self.google_homepage = 0
            self.windows = platform.system()=="Windows"
            self.pyquery = 1
            self.debug = 0

            
        # each plugin has a .config dict list, we add defaults here
        def add_plugin_defaults(self, config, module=""):
        
            # options
            for opt in config: