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
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/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/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
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
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):
class internet_radio (ChannelPlugin):


    # description
    title = "InternetRadio"
    module = "internet_radio_org_uk"
    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
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"]
    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
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/*": "totem ",
               "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",
               "video/youtube": "xterm -e \"youtube-dl %srv\"",
            }
            self.plugins = {
                "bookmarks": 1,  # built-in plugins, cannot be disabled
                "bookmarks": 1, # built-in plugin, cannot be disabled
                "shoutcast": 1,
                "xiph": 1,
                "file": 0,   # disable per default
                "punkcast": 0,   # disable per default
                "file": 0,      # disable per default
                "punkcast": 0,  # disable per default
                "history": 0,
                "basicch": 0,   # ceased
                "tv": 0,   # no longer working
                "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 = 1
            self.retain_deleted = 1
            self.heuristic_bookmark_update = 0
            self.retain_deleted = 0
            self.auto_save_appstate = 1
            self.theme = "" #"MountainDew"
            self.debug = False
            self.channel_order = "shoutcast, xiph, internet_radio_org_uk, jamendo, myoggradio, .."
            self.channel_order = "shoutcast, xiph, internet_radio, jamendo, myoggradio, .."
            self.reuse_m3u = 1
            self.google_homepage = 1
            self.google_homepage = 0
            self.windows = platform.system()=="Windows"
            self.pyquery = 1
            self.debug = 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: