Index: contrib/publicradiofan.py ================================================================== --- contrib/publicradiofan.py +++ contrib/publicradiofan.py @@ -27,17 +27,19 @@ import re from config import * from channels import * import ahttp +import action # Basic HTML scraping class publicradiofan (ChannelPlugin): # control attributes has_search = True + format = "mp3" listformat = "href" titles = dict(listeners=False, bitrate=False, playing="Description") categories = ["adult alternative", "adult contemporary", "blues", "business", "classical", "community", "contemporary", "country", "easy", "education", "ethnic", "folk", "free-form", "full service", "government", "international", "jazz", "military", "news", "nostalgia", "oldies", "reading", "regional", "religious", "rock", "seasonal", "sports", "student", "talk", "traffic", "urban", "variety", "world", "youth"] @@ -49,10 +51,11 @@ # Extract from listing tables def update_streams(self, cat, search=None): html = ahttp.get("http://www.publicradiofan.com/cgibin/statsearch.pl?format={}&lang=".format(cat)) html = re.split("

", html, 2, re.S)[1] + probe = action.extract_playlist() r = [] for html in re.split("", html, 0): m = re.search(r""" @@ -66,8 +69,9 @@ genre = m.group("genre"), url = m.group("url"), title = m.group("title"), playing = m.group("descr"), homepage = m.group("homepage"), + listformat = probe.probe_ext(m.group("url")) or "srv", )) return r