Index: channels/internet_radio.py ================================================================== --- channels/internet_radio.py +++ channels/internet_radio.py @@ -201,39 +201,46 @@ rx_data = re.compile(r""" \?u=(https?://[^'">]+/listen\.pls) .*? ]+10px[^>]+>(.+?) .*? - (?:href="/station/[^>]+|\s*([^<>]+)\s* - .*? - (?:
\s*([^<>]+)\s*
)+? - .*? - ]+class="url"[^>]+href="([^<">]+)" - .*? - (?:(\d+)\s+Kbps \s*
\s*)+? - (?:(\d+)\s+Listeners \s*
\s*)+? + listing2 + .*? + (?:href="/station/[^>]+> | ) ([^<>]+) + (?:\s*\s*)* + (?:
\s*([^<>]+)\s*
)? + .*? + (?:]+class="url"[^>]+href="([^<">]+)")? + .+ + listing1 + .*? + (?:(\d+)\s+Kbps \s*
\s*)? + (?:(\d+)\s+Listeners)? + (?:\s*
\s*)? + \s* """, re.S|re.X) for div in rx_tr.findall(html): - #__print__(dbg.DATA, len(div)) - uu = rx_data.search(div) - if uu: - (url, genres, title, playing, homepage, bitrate, listeners) = uu.groups() - - # transform data - r.append({ - "url": url, - "genre": self.strip_tags(genres), - "homepage": http.fix_url(homepage), - "title": title.strip(), - "playing": playing.strip(), - "bitrate": int(bitrate if bitrate else 0), - "listeners": int(listeners if listeners else 0), - "format": "audio/mpeg", # there is no stream info on that, but internet-radio.org.uk doesn't seem very ogg-friendly anyway, so we assume the default here - }) - else: - __print__(dbg.ERR, "rx missed", div) + if div.find('id="pagination"') < 0: + #__print__(dbg.DATA, len(div)) + uu = rx_data.search(div) + if uu: + (url, genres, title, playing, homepage, bitrate, listeners) = uu.groups() + + # transform data + r.append({ + "url": url, + "genre": self.strip_tags(genres), + "homepage": http.fix_url(homepage), + "title": (title if title else "").strip(), + "playing": (playing if playing else "").strip(), + "bitrate": int(bitrate if bitrate else 0), + "listeners": int(listeners if listeners else 0), + "format": "audio/mpeg", # there is no stream info on that, but internet-radio.org.uk doesn't seem very ogg-friendly anyway, so we assume the default here + }) + else: + __print__(dbg.ERR, "rx missed", div) return r # DOM traversing def with_dom(self, html_list):