Check-in [f48ad79aa1]
Overview
| Comment: | Fix `links` plugin format: attribute; make it understood by channel.play() that a homepage-only row triggers the web browser. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
f48ad79aa146966bc51ed81ffc896fce |
| User & Date: | mario on 2017-01-05 21:33:50 |
| Other Links: | manifest | tags |
Context
|
2017-01-08
| ||
| 12:46 | Check for windows-style paths in specbuttons file lookup check-in: 49f14d5102 user: mario tags: trunk | |
|
2017-01-05
| ||
| 21:33 | Fix `links` plugin format: attribute; make it understood by channel.play() that a homepage-only row triggers the web browser. check-in: f48ad79aa1 user: mario tags: trunk | |
| 21:23 | Introduce FeaturePlugin as new base class for channels and all other plugins. Pre-defines the meta, module attributes and calls init2(). check-in: ea924e3c27 user: mario tags: trunk | |
Changes
Modified channels/__init__.py from [4a4e01489e] to [e9d8c94f99].
| ︙ | ︙ | |||
600 601 602 603 604 605 606 607 608 609 610 611 612 613 |
row = self.row()
if row and "url" in row:
# playlist and audio type
audioformat = row.get("format", self.audioformat)
listformat = row.get("listformat", self.listformat)
# invoke audio player
action.play(row, audioformat, listformat)
else:
self.status("No station selected for playing.")
return row
# Start streamripper/youtube-dl/etc
def record(self):
row = self.row()
| > > | 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 |
row = self.row()
if row and "url" in row:
# playlist and audio type
audioformat = row.get("format", self.audioformat)
listformat = row.get("listformat", self.listformat)
# invoke audio player
action.play(row, audioformat, listformat)
elif row.get("homepage") and row.get("format") == "text/html":
action.browser(row["homepage"])
else:
self.status("No station selected for playing.")
return row
# Start streamripper/youtube-dl/etc
def record(self):
row = self.row()
|
| ︙ | ︙ |
Modified channels/links.py from [2ae7536a04] to [d07c682e01].
1 2 3 4 5 | # api: streamtuner2 # title: Links to directory services # description: Static list of various music directory websites. # type: group # category: web | | | < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# api: streamtuner2
# title: Links to directory services
# description: Static list of various music directory websites.
# type: group
# category: web
# version: 0.3
# priority: standard
# config: -
#
# Simply adds a "links" entry in bookmarks tab, where known services
# are listed with homepage links. Registered plugins automatically
# end up on top of that list.
#
from config import *
from channels import *
import copy
# hooks into main.bookmarks
class links (FeaturePlugin):
# list
streams = [ ]
default = [
("stream", "rad.io", "http://www.rad.io/"),
("stream", "RadioTower", "http://www.radiotower.com/"),
("stream", "8tracks", "http://8tracks.com/"),
("stream", "TuneIn", "http://tunein.com/"),
|
| ︙ | ︙ | |||
59 60 61 62 63 64 65 |
("commercial", "Deezer", "http://www.deezer.com/features/music.html"),
#("stream", "SurfMusik.de", "http://www.surfmusic.de/"),
]
# prepare gui
| | < | > | | | | | | | | | | 55 56 57 58 59 60 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 |
("commercial", "Deezer", "http://www.deezer.com/features/music.html"),
#("stream", "SurfMusik.de", "http://www.surfmusic.de/"),
]
# prepare gui
def init2(self, parent):
if not parent:
return
# prepare target category
bookmarks = parent.bookmarks
if not bookmarks.streams.get(self.module):
bookmarks.streams[self.module] = []
bookmarks.add_category(self.module)
# fill it up later
parent.hooks["init"].append(self.populate)
def populate(self, parent):
# Collect links from channel plugins
for name,channel in parent.channels.items():
try:
self.streams.append({
"favourite": 1,
"genre": "channel",
"title": channel.meta.get("title", channel.module),
"homepage": channel.meta.get("url", ""),
"format": "text/html",
})
except Exception as e:
log.ERR("links: adding entry failed:", e)
# Add built-in link list
for row in self.default:
(genre, title, homepage) = row
|
| ︙ | ︙ |