29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | # TV stations don't seem to work mostly. And loading the webtv/ pages would
# be somewhat slow (for querying the actual mms:// streams).
#
#
#
import re
import ahttp as http
from config import *
from channels import *
# Surfmusik sharing site
class surfmusik (ChannelPlugin): |
|
| 29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | # TV stations don't seem to work mostly. And loading the webtv/ pages would
# be somewhat slow (for querying the actual mms:// streams).
#
#
#
import re
import ahttp
from config import *
from channels import *
# Surfmusik sharing site
class surfmusik (ChannelPlugin): |
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 | """, re.X)
r = []
# Add main categories, and fetch subentries (genres or country names)
for cat in cats[lang]:
r.append(cat)
if map.get(cat):
subcats = rx_links.findall( http.get(base_url + map[cat]) )
subcats = [x.replace("+", " ").title() for x in subcats]
r.append(sorted(subcats))
self.categories = r
# summarize links from surfmusik |
|
| 92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 | """, re.X)
r = []
# Add main categories, and fetch subentries (genres or country names)
for cat in cats[lang]:
r.append(cat)
if map.get(cat):
subcats = rx_links.findall( ahttp.get(base_url + map[cat]) )
subcats = [x.replace("+", " ").title() for x in subcats]
r.append(sorted(subcats))
self.categories = r
# summarize links from surfmusik |
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 | path = path_genre
# country
else:
path = path_country
if path is not None:
ucat = cat.replace(" ", "+").lower()
html = http.get(base_url + path + ucat + ".html")
html = re.sub("&#x?\d+;", "", html)
rx_radio = re.compile(r"""
<td\s+class="home1"><a[^>]*\s+href="(.+?)"[^>]*> .*?
<a\s+class="navil"\s+href="([^"]+)"[^>]*>([^<>]+)</a></td>
<td\s+class="ort">(.*?)</td>.*?
<td\s+class="ort">(.*?)</td>.*?
""", re.X|re.I)
rx_video = re.compile(r"""
<a[^>]+href="([^"]+)"[^>]*>(?:<[^>]+>)*Externer
""", re.X|re.I)
# per-country list
for uu in rx_radio.findall(html):
(url, homepage, name, genre, city) = uu
# find mms:// for webtv stations
if is_tv:
m = rx_video.search(http.get(url))
if m:
url = m.group(1)
# just convert /radio/ into /m3u/ link
else:
url = "http://www.surfmusik.de/m3u/" + url[30:-5] + ".m3u"
entries.append({ |
|
|
| 127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 | path = path_genre
# country
else:
path = path_country
if path is not None:
ucat = cat.replace(" ", "+").lower()
html = ahttp.get(base_url + path + ucat + ".html")
html = re.sub("&#x?\d+;", "", html)
rx_radio = re.compile(r"""
<td\s+class="home1"><a[^>]*\s+href="(.+?)"[^>]*> .*?
<a\s+class="navil"\s+href="([^"]+)"[^>]*>([^<>]+)</a></td>
<td\s+class="ort">(.*?)</td>.*?
<td\s+class="ort">(.*?)</td>.*?
""", re.X|re.I)
rx_video = re.compile(r"""
<a[^>]+href="([^"]+)"[^>]*>(?:<[^>]+>)*Externer
""", re.X|re.I)
# per-country list
for uu in rx_radio.findall(html):
(url, homepage, name, genre, city) = uu
# find mms:// for webtv stations
if is_tv:
m = rx_video.search(ahttp.get(url))
if m:
url = m.group(1)
# just convert /radio/ into /m3u/ link
else:
url = "http://www.surfmusik.de/m3u/" + url[30:-5] + ".m3u"
entries.append({ |