Check-in [a906512c8d]
Overview
| Comment: | Update Dirble comments. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
a906512c8daf340106127d9acd86e5b6 |
| User & Date: | mario on 2015-05-15 22:48:47 |
| Other Links: | manifest | tags |
Context
|
2015-05-16
| ||
| 01:47 | Use shorter domain names for homepage favicons again. check-in: 9931f4e0e5 user: mario tags: trunk | |
|
2015-05-15
| ||
| 22:48 | Update Dirble comments. check-in: a906512c8d user: mario tags: trunk | |
| 21:52 | Weighted selection of available stream urls from Dirble API. check-in: fe19fd3202 user: mario tags: trunk | |
Changes
Modified channels/dirble.py from [55aaf2e944] to [3714c6faa5].
| ︙ | ︙ | |||
21 22 23 24 25 26 27 | # udJajRVDAI30TUQilG1qPry3I/Y9BThubmigb+R4x8L0m1fz5Ti3h0QE0ClcQCA+dflCz0VD # RKwUE5mgOvtu8u7z9wsVsyPPrBxfayqMjVtrMrmmI4f27swqkVS+GGMqy39nvy+W1uGxKL+h # u+uAt1KkwvVxAGJsEEWxEWzGm4iV8l1HM9K0BmEkrP8BlhoAUfmOxecAAAAASUVORK5CYII= # priority: optional # documentation: http://dirble.com/developer/api # # | > > > > > > > > > | | | > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# udJajRVDAI30TUQilG1qPry3I/Y9BThubmigb+R4x8L0m1fz5Ti3h0QE0ClcQCA+dflCz0VD
# RKwUE5mgOvtu8u7z9wsVsyPPrBxfayqMjVtrMrmmI4f27swqkVS+GGMqy39nvy+W1uGxKL+h
# u+uAt1KkwvVxAGJsEEWxEWzGm4iV8l1HM9K0BmEkrP8BlhoAUfmOxecAAAAASUVORK5CYII=
# priority: optional
# documentation: http://dirble.com/developer/api
#
#
# Dirble is a user-contributed list of radio stations,
# auot-updating song titles and station information.
# Homepages are there now, and thus favicons readily
# available. Extra station banners aren't fetched.
#
# It provides a JSON API. Which in this newer version
# is actually speedier, as it doesn't strictly impose
# pagination roundtrips anymore.
#
# Response times are fixed now by overriding the HTTP
# encoding. (A python-requests issue mostly).
import json
from config import *
from channels import *
import ahttp
# Dirble
#
# Hmm ok, the new v2 API isn't so bad after all.
# It actually contains streaming urls, and even
# station homepages now.
#
# ยท No idea what status: or timedout: mean,
# just mapped to `deleted` and `status`
# ยท Stream alternatives are meanwhile scanned
# for "best" format+bitrate combinations.
# ยท Leave favicons to regular behaviour,
# station banners are not accessible per CDN.
#
class dirble (ChannelPlugin):
# control flags
has_search = False
|
| ︙ | ︙ | |||
108 109 110 111 112 113 114 |
else:
return {}
# rename fields
return dict(
genre = " ".join(c["slug"] for c in r["categories"]),
title = r["name"],
| | | | | > | > | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
else:
return {}
# rename fields
return dict(
genre = " ".join(c["slug"] for c in r["categories"]),
title = r["name"],
playing = "{} {}".format(r.get("country"), r.get("description", "")),
homepage = ahttp.fix_url(r["website"]),
url = s["stream"],
format = s["content_type"].strip(), # There's a "\r\n" in nearly every entry :?
bitrate = s["bitrate"],
# img = r["image"]["image"]["thumb"]["url"], # CDN HTTPS trip up requests.get
state = self.state_map.get(int(s["status"]), ""),
deleted = s.get("timedout", False),
)
# Streams contain a `status`, here mapped onto arbitrary Gtk icons
state_map = {0:"gtk-media-pause", 1:"gtk-media-next", 2:"gtk-media-rewind"}
# Weighting bitrate and audio format for alternative stream URLs
format_q = {"?":0.75, "audio/mpeg":1.0, "audio/aac":1.25, "audio/aacp":1.35, "audio/ogg":1.50}
# Patch API url together, send request, decode JSON list
def api(self, method, **params):
params["token"] = conf.dirble_api_key or self.key
try:
|
| ︙ | ︙ |
Modified help/channel_dirble.page from [a2c2f64962] to [2cc65a8e71].
| ︙ | ︙ | |||
16 17 18 19 20 21 22 |
<p>It provides a JSON API, which as of v2 has a lot of unneeded meta
information and internal ids. But it's actually nicer to scan, and
contains even station homepages now.</p>
<note><p>The config option for a custom API key is perhaps
redundant. Should streamtuner2 -D however reveal an error, you
| | | 16 17 18 19 20 21 22 23 24 |
<p>It provides a JSON API, which as of v2 has a lot of unneeded meta
information and internal ids. But it's actually nicer to scan, and
contains even station homepages now.</p>
<note><p>The config option for a custom API key is perhaps
redundant. Should streamtuner2 -D however reveal an error, you
can however configure your own account there.</p></note>
</page>
|