Check-in [36c234a70b]
Overview
| Comment: | Fix strโbytes saving for Py3. Tmplement tmp_files[] cleanup. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | action-mapfmts |
| Files: | files | file ages | folders |
| SHA1: |
36c234a70bce4dd76d63abc4141ccee2 |
| User & Date: | mario on 2015-04-10 17:34:38 |
| Other Links: | branch diff | manifest | tags |
Context
|
2015-04-10
| ||
| 17:35 | Rewritten action module and playlist conversion/export works okay enough. Merged into trunk. check-in: 60f5238dc8 user: mario tags: trunk | |
| 17:34 | Fix strโbytes saving for Py3. Tmplement tmp_files[] cleanup. Leaf check-in: 36c234a70b user: mario tags: action-mapfmts | |
| 16:40 | Finalize allowed filename extensions for exporting. Normalize Python3 string decoding (errors='ignore' per default). Update XSPF and SMIL export. Use row={} template now, instead of just carrying over title= to rewritten playlists. check-in: e136a78c73 user: mario tags: action-mapfmts | |
Changes
Modified action.py from [42bec82228] to [097271c366].
| ︙ | ︙ | |||
39 40 41 42 43 44 45 | # Coupling to main window # main = None | < | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# Coupling to main window
#
main = None
# Streamlink/listformat mapping
listfmt_t = {
"audio/x-scpls": "pls",
"audio/x-mpegurl": "m3u",
"audio/mpegurl": "m3u",
"application/vnd.apple.mpegurl": "m3u",
"video/x-ms-asf": "asx",
|
| ︙ | ︙ | |||
246 247 248 249 250 251 252 |
return [url]
elif dest in ("srv", "href"):
return urls
# Otherwise convert to local file
if local_file:
fn, is_unique = tmp_fn(cnt, dest)
| | | 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
return [url]
elif dest in ("srv", "href"):
return urls
# Otherwise convert to local file
if local_file:
fn, is_unique = tmp_fn(cnt, dest)
with open(fn, "w") as f:
debug(dbg.DATA, "exporting with format:", dest, " into filename:", fn)
f.write( save_playlist(source="srv", multiply=True).export(urls, row, dest) )
return [fn]
else:
return urls
|
| ︙ | ︙ | |||
372 373 374 375 376 377 378 |
# call conversion schemes
converter = getattr(self, dest) or self.pls
return converter(rows)
# save directly
def file(self, rows, dest, fn):
| | | 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 |
# call conversion schemes
converter = getattr(self, dest) or self.pls
return converter(rows)
# save directly
def file(self, rows, dest, fn):
with open(fn, "w") as f:
f.write(self.store(rows, dest))
# M3U
def m3u(self, rows):
txt = "#EXTM3U\n"
|
| ︙ | ︙ | |||
449 450 451 452 453 454 455 |
def xmlentities(s):
global xmlentities
from xml.sax.saxutils import escape as xmlentities
return xmlentities(s)
| | > > | > > > > | > > > > | 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 |
def xmlentities(s):
global xmlentities
from xml.sax.saxutils import escape as xmlentities
return xmlentities(s)
# Generate filename for temporary .m3u, if possible with unique id
def tmp_fn(pls, ext="m3u"):
# use shoutcast unique stream id if available
stream_id = re.search("http://.+?/.*?(\d+)", pls, re.M)
stream_id = stream_id and stream_id.group(1) or "XXXXXX"
try:
channelname = main.current_channel
except:
channelname = "unknown"
# return temp filename
fn = "%s/streamtuner2.%s.%s.%s" % (str(conf.tmp), channelname, stream_id, ext)
is_unique = len(stream_id) > 3 and stream_id != "XXXXXX"
tmp_files.append(fn)
return fn, is_unique
# Collect generated filenames
tmp_files = []
# Callback from main / after gtk_main_quit
def cleanup_tmp_files():
if not int(conf.reuse_m3u):
[os.remove(fn) for fn in set(tmp_files)]
|