Check-in [cda3504633]
Overview
| Comment: | catmap{} cache handling now by _generic module |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
cda3504633ec7144f75c08a0bb59e832 |
| User & Date: | mario on 2014-08-01 01:34:20 |
| Other Links: | manifest | tags |
Context
|
2014-08-01
| ||
| 01:35 | Initial support for Dirble.com, provides grouped categories and search feature. check-in: 7965619312 user: mario tags: trunk | |
| 01:34 | catmap{} cache handling now by _generic module check-in: cda3504633 user: mario tags: trunk | |
|
2014-07-31
| ||
| 17:22 | Adapted Live365 channel plugin for /cgi-bin/play.pls?stationid=123457&direct=1 stream URLs instead of extraction, works again check-in: 8b3cd06ff7 user: mario tags: trunk | |
Changes
Modified channels/_generic.py from [530431fbe1] to [e9222413a9].
| ︙ | ︙ | |||
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
listformat = "audio/x-scpls"
audioformat = "audio/mpeg" # fallback value
config = []
has_search = False
# categories
categories = ["empty", ]
current = ""
default = "empty"
shown = None # last selected entry in stream list, also indicator if notebook tab has been selected once / stream list of current category been displayed yet
# gui + data
streams = {} #meta information dicts
liststore = {} #gtk data structure
| > | 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
listformat = "audio/x-scpls"
audioformat = "audio/mpeg" # fallback value
config = []
has_search = False
# categories
categories = ["empty", ]
catmap = {}
current = ""
default = "empty"
shown = None # last selected entry in stream list, also indicator if notebook tab has been selected once / stream list of current category been displayed yet
# gui + data
streams = {} #meta information dicts
liststore = {} #gtk data structure
|
| ︙ | ︙ | |||
129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
cache = conf.load("cache/" + self.module)
if (cache):
self.streams = cache
# categories
cache = conf.load("cache/categories_" + self.module)
if (cache):
self.categories = cache
pass
# initialize Gtk widgets / data objects
def gui(self, parent):
#print(self.module + ".gui()")
| > > > > | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
cache = conf.load("cache/" + self.module)
if (cache):
self.streams = cache
# categories
cache = conf.load("cache/categories_" + self.module)
if (cache):
self.categories = cache
# catmap (optional)
cache = conf.load("cache/catmap_" + self.module)
if (cache):
self.catmap = cache
pass
# initialize Gtk widgets / data objects
def gui(self, parent):
#print(self.module + ".gui()")
|
| ︙ | ︙ | |||
372 373 374 375 376 377 378 |
# update categories, save, and display
def reload_categories(self):
# get data and save
self.update_categories()
| > | > > | 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 |
# update categories, save, and display
def reload_categories(self):
# get data and save
self.update_categories()
if self.categories:
conf.save("cache/categories_"+self.module, self.categories)
if self.catmap:
conf.save("cache/catmap_" + self.module, self.catmap);
# display outside of this non-main thread
mygtk.do(self.display_categories)
# insert content into gtk category list
def display_categories(self):
|
| ︙ | ︙ | |||
460 461 462 463 464 465 466 467 468 469 470 471 472 473 |
# remove SGML/XML entities
def entity_decode(self, s):
return xml.sax.saxutils.unescape(s)
# convert special characters to &xx; escapes
def xmlentities(self, s):
return xml.sax.saxutils.escape(s)
| > > > > > | 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 |
# remove SGML/XML entities
def entity_decode(self, s):
return xml.sax.saxutils.unescape(s)
# convert special characters to &xx; escapes
def xmlentities(self, s):
return xml.sax.saxutils.escape(s)
# Extracts integer from string
def to_int(self, s):
i = re.findall("\d+", s) or [0]
return int(i[0])
|
| ︙ | ︙ |