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

⌈⌋ ⎇ branch:  streamtuner2


Check-in [4419f22d5d]

Overview
Comment:vTuner: minor fix from stream_update regex
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4419f22d5db4e6ef82f45ea38c368c6259f57306
User & Date: mario on 2019-07-15 14:38:25
Other Links: manifest | tags
Context
2019-07-15
14:38
Add status messages for HTTP error responses check-in: c4b52b30d4 user: mario tags: trunk
14:38
vTuner: minor fix from stream_update regex check-in: 4419f22d5d user: mario tags: trunk
2019-06-14
18:25
streema: fix url regex (now alphanumeric titles) and urn_resolve patterns for new player layout check-in: fac6bc374a user: mario tags: trunk
Changes

Modified contrib/vtuner.py from [feab3a3374] to [999b1f5e71].

1
2
3
4
5
6
7
8
9
10
11
12
13
# encoding: UTF-8
# api: streamtuner2
# title: vTuner
# url: http://vtuner.com/
# description: Huge station list by music service provider
# version: 0.4
# type: channel
# category: radio
# config:
#   { name: vtuner_pages,  value: 1,  type: int,  description: "Number of pages to fetch." }
#   { name: vtuner_order,  value: POP,  type: select,  select: "POP=Popularity|AA=Alphabetically|HBR=Quality|RELI=Uptime|OP=Country",  description: "Station sorting order." }
# priority: contrib
# png:





|







1
2
3
4
5
6
7
8
9
10
11
12
13
# encoding: UTF-8
# api: streamtuner2
# title: vTuner
# url: http://vtuner.com/
# description: Huge station list by music service provider
# version: 0.5
# type: channel
# category: radio
# config:
#   { name: vtuner_pages,  value: 1,  type: int,  description: "Number of pages to fetch." }
#   { name: vtuner_order,  value: POP,  type: select,  select: "POP=Popularity|AA=Alphabetically|HBR=Quality|RELI=Uptime|OP=Country",  description: "Station sorting order." }
# priority: contrib
# png:
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
            # cancel page scan if no further result links
            if not re.search(r"""<A HREF="[^>]+&iCurrPage=%s">""" % (i + 1), html, re.I):
                log.DATA("No further results at page %s" % i)
                break

        # crude <tr> extraction
        rx_radio = re.compile(r"""
            <a\s+href="\.\./func/dynampls.asp\?link=1&id=(\d+)">([^<>]+)</a>
            .+? "middle">([^<>]+)</td>
            .+? Category.+?>([^<>]+)</td>
            .+? <td.+?>(\w+)&nbsp;(\d+)K</td>
        """, re.X|re.S|re.I)

        # assemble
        for uu in rx_radio.findall(html):







|







84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
            # cancel page scan if no further result links
            if not re.search(r"""<A HREF="[^>]+&iCurrPage=%s">""" % (i + 1), html, re.I):
                log.DATA("No further results at page %s" % i)
                break

        # crude <tr> extraction
        rx_radio = re.compile(r"""
            <a\s+href="\.\./\w+/dynampls.asp\?id=(\d+)&k=\w+">([^<>]+)</a>
            .+? "middle">([^<>]+)</td>
            .+? Category.+?>([^<>]+)</td>
            .+? <td.+?>(\w+)&nbsp;(\d+)K</td>
        """, re.X|re.S|re.I)

        # assemble
        for uu in rx_radio.findall(html):