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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [2ffe534a47]

Overview
Comment:publicradiofan: strip `/cgibin/wrap.pl…` from some listings
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2ffe534a47ef0b2d66c6a9691d262be448379b95
User & Date: mario on 2020-05-16 10:23:04
Other Links: manifest | tags
Context
2020-05-17
07:43
Fetch mode option removed for filtermusic check-in: a895f59ca5 user: mario tags: trunk
2020-05-16
10:23
publicradiofan: strip `/cgibin/wrap.pl…` from some listings check-in: 2ffe534a47 user: mario tags: trunk
10:09
magnatune: radios are gone? check-in: a3e879ebcb user: mario tags: trunk
Changes

Modified contrib/publicradiofan.py from [912394ee7c] to [401c2014ce].

1
2
3
4
5
6
7
8
9
10
11
12
# encoding: UTF-8
# api: streamtuner2
# title: PublicRadioFan
# description: Scheduled broadcasts, radio stations and genres, sorted by locations
# version: 0.1
# type: channel
# url: http://www.publicradiofan.com/
# category: radio
# priority: extra
# config: -
# png:
#   iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAMAAAD+iNU2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACbVBMVEUAAAD//wDR0QDd3QD//wAfHwAhKQALDgAICAYAAADo6ADd3QD8/ADb2wDm5gD//wD//wD//wCxsQClpQDt7QCjowCurgD//wD//wD//wD//wD//wD//wD//wCdnQClowCioACYmAD//wD//wD//wD//wD//wD//wD//wD//w




|







1
2
3
4
5
6
7
8
9
10
11
12
# encoding: UTF-8
# api: streamtuner2
# title: PublicRadioFan
# description: Scheduled broadcasts, radio stations and genres, sorted by locations
# version: 0.2
# type: channel
# url: http://www.publicradiofan.com/
# category: radio
# priority: extra
# config: -
# png:
#   iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAMAAAD+iNU2AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACbVBMVEUAAAD//wDR0QDd3QD//wAfHwAhKQALDgAICAYAAADo6ADd3QD8/ADb2wDm5gD//wD//wD//wCxsQClpQDt7QCjowCurgD//wD//wD//wD//wD//wD//wD//wCdnQClowCioACYmAD//wD//wD//wD//wD//wD//wD//wD//w
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
        html = ahttp.get("http://www.publicradiofan.com/cgibin/statsearch.pl?format={}&lang=".format(cat))
        html = re.split("<H2>", html, 2, re.S)[1]
        probe = action.extract_playlist()

        r = []
        for html in re.split("<TR VALIGN=TOP>", html, 0):
            m = re.search(r"""
                <A .*? HREF=" (?P<url> .+?) ">
                <B> (?P<title> .*?) </B>
                .*? stt> (?P<descr> .*?) [<&]
                .*? stt> (?P<genre> .*?) [<&]
                .*? <I> .*? HREF="(?P<homepage> .*?)"
            """, html, re.X|re.S)
            if m:
                r.append(dict(







|







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
        html = ahttp.get("http://www.publicradiofan.com/cgibin/statsearch.pl?format={}&lang=".format(cat))
        html = re.split("<H2>", html, 2, re.S)[1]
        probe = action.extract_playlist()

        r = []
        for html in re.split("<TR VALIGN=TOP>", html, 0):
            m = re.search(r"""
                <A .*? HREF=" (?:/cgibin/wrap[\w.?&;=]+?s=)? (?P<url> .+?) ">
                <B> (?P<title> .*?) </B>
                .*? stt> (?P<descr> .*?) [<&]
                .*? stt> (?P<genre> .*?) [<&]
                .*? <I> .*? HREF="(?P<homepage> .*?)"
            """, html, re.X|re.S)
            if m:
                r.append(dict(