Check-in [68bbdda1e4]
Overview
| Comment: | Add .click() counting callback. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
68bbdda1e445a50f27fe7c22bfeb9c41 |
| User & Date: | mario on 2020-05-13 18:59:34 |
| Other Links: | manifest | tags |
Context
|
2020-05-14
| ||
| 23:05 | Add binary JPEG detection \xFF\xD8\xFF magic bytes. check-in: a888486bae user: mario tags: trunk | |
|
2020-05-13
| ||
| 18:59 | Add .click() counting callback. check-in: 68bbdda1e4 user: mario tags: trunk | |
| 17:46 | Utilize PyQuery .make_links_absolute(), to shorten img src extraction. check-in: 857f6e2745 user: mario tags: trunk | |
Changes
Modified channels/radiobrowser.py from [1e7e0eb9e5] to [984872dde3].
1 2 3 4 | # encoding: UTF-8 # api: streamtuner2 # title: RadioBrowser # description: Community collection of stations; votes, clicks, homepage links. | | | 1 2 3 4 5 6 7 8 9 10 11 12 |
# encoding: UTF-8
# api: streamtuner2
# title: RadioBrowser
# description: Community collection of stations; votes, clicks, homepage links.
# version: 0.5
# type: channel
# url: http://www.radio-browser.info/
# category: radio
# priority: optional
# config:
# { name: radiobrowser_cat, type: select, value: tags, select="tags|countries|languages", description: Which category types to list. }
# { name: radiobrowser_srv, type: select, value: all, select:"all|de1|fr1|nl1|old", description: API server to utilize. }
|
| ︙ | ︙ | |||
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
catmap = { "tags": "bytag", "countries": "bycountry", "languages": "bylanguage" }
tagmap = { "tags": "tag", "countries": "country", "languages": "language" }
# hook menu
def init2(self, parent):
if parent:
uikit.add_menu([parent.streammenu, parent.streamactions], "Share in Radio-Browser", self.submit, insert=5)
# votes, and tags, no countries or languages
def update_categories(self):
params = {"order":"name", "reverse":"false", "hidebroken":"true"}
self.categories = list(self.pricat) + [grp["name"] for grp in filter(
lambda grp: grp["stationcount"] >= conf.radiobrowser_min,
self.api(conf.radiobrowser_cat, params)
| > | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
catmap = { "tags": "bytag", "countries": "bycountry", "languages": "bylanguage" }
tagmap = { "tags": "tag", "countries": "country", "languages": "language" }
# hook menu
def init2(self, parent):
if parent:
uikit.add_menu([parent.streammenu, parent.streamactions], "Share in Radio-Browser", self.submit, insert=5)
parent.hooks["play"].append(self.click)
# votes, and tags, no countries or languages
def update_categories(self):
params = {"order":"name", "reverse":"false", "hidebroken":"true"}
self.categories = list(self.pricat) + [grp["name"] for grp in filter(
lambda grp: grp["stationcount"] >= conf.radiobrowser_min,
self.api(conf.radiobrowser_cat, params)
|
| ︙ | ︙ | |||
157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# request + json decode
j = ahttp.get(srv + method, params, post=post, **kwargs)
try:
return json.loads(j, strict=False) # some entries contain invalid character encodings
except:
return []
# Add radio station to RBI
def submit(self, *w):
cn = self.parent.channel()
row = cn.row()
# convert row from channel
data = dict(
| > > > > > > > > > > > > | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
# request + json decode
j = ahttp.get(srv + method, params, post=post, **kwargs)
try:
return json.loads(j, strict=False) # some entries contain invalid character encodings
except:
return []
# callback for general stream play event
def click(self, row, channel):
if not channel == self:
return
# fetch uuid, then register click
uuid = self.api("stations/byurl", {"url": row.get("url")})
if uuid:
if isinstance(uuid, list): # just vote on the first entry
uuid = uuid[0]
log.PROC_CLICK_COUNT(self.api("url/{}".format(uuid["stationuuid"])))
# Add radio station to RBI
def submit(self, *w):
cn = self.parent.channel()
row = cn.row()
# convert row from channel
data = dict(
|
| ︙ | ︙ |