Check-in [fd54f9f9a7]
Overview
| Comment: | rcast: updated for current HTML |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
fd54f9f9a741d87faf15a840af956187 |
| User & Date: | mario on 2022-02-20 06:31:49 |
| Other Links: | manifest | tags |
Context
|
2022-02-21
| ||
| 08:03 | Add podcast option check-in: 30d8e52a56 user: mario tags: trunk | |
|
2022-02-20
| ||
| 06:31 | rcast: updated for current HTML check-in: fd54f9f9a7 user: mario tags: trunk | |
| 05:57 | filtermusic: update for current station list HTML, add favicons + homepages check-in: ce7292f416 user: mario tags: trunk | |
Changes
Modified contrib/rcast.py from [1b543a00d6] to [6f63f31e2b].
1 2 3 4 5 | # api: streamtuner2 # title: RCast # description: Streaming server provider and station directory # type: channel # category: radio | > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # encoding: utf-8 # api: streamtuner2 # title: RCast # description: Streaming server provider and station directory # type: channel # category: radio # version: 0.3 # url: http://www.rcast.net/dir # png: # iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABH0lEQVR42mPgZWXkNxdhsScH87Iw8DOAGHcDBf6Tg02FmW1RDPj97cvf/0BwJ4D/HyHNGAbc9uUBawaBf0BASDOGASBNIM1fHt34BaKRFd4CGg4C # eA0Agd9fPv255c39F90AXC6DG3ArSOwP1O9wDTc92cA23gqR/g3i3yvz/IFuMNgAeyBANx0Enk7M+Qlig5wO0wgCt1yZwepuBQj8sQUCsAG/3r74g+7k318//oWxYYaDwM/3r//A2GADsKUDGICxH7XG/wK75s8f # cEB/vnwU7C2MdADDn2+d+4VsADCKIc72ZPsHM/zvn99/cRpw050Z7O+nvVkYUfpmx4KfMDGcBiB7A90AZIzXgJ9vX4D9eceP9x9ZBhCDwQZQmp0BVv4354bQNGwAAAAASUVORK5CYII= # priority: extra # extraction-method: regex |
| ︙ | ︙ | |||
60 61 62 63 64 65 66 |
break
# extract
ls = re.findall("""
<tr> .*?
<audio\s+id="jp_audio_(\d+)" .*? src="([^"]+?);?"> .*?
<h4.*?>([^<>]+)</a></h4> .*?
| | | | | | | | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
break
# extract
ls = re.findall("""
<tr> .*?
<audio\s+id="jp_audio_(\d+)" .*? src="([^"]+?);?"> .*?
<h4.*?>([^<>]+)</a></h4> .*?
<b\\b[^>]*>([^<>]*)</b> .*?
<small\s+class[^>]+>([^<>]*)</small> .*?
Genres?:(.+?)<br> .*?
<p[^>]*>\s*(\d+)\s*Kbps
""", html, re.X|re.S)
#log.DATA(re.findall("(<audio.*?>)", html))
# blocks
for row in ls:
try:
log.UI(row)
r.append(dict(
id = row[0],
url = row[1],
title = unhtml(row[2]),
playing = unhtml(row[3]),
homepage = unhtml(row[4]),
genre = unhtml(strip_tags(row[5])),
bitrate = to_int(row[6]),
#format = row[7],
#listeners = to_int(listeners[5])
))
except:
pass #some field missing
# done
return r
|
| ︙ | ︙ |