Check-in [5994cb76a9]
Overview
Comment: | Support for %% escaping. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5994cb76a9e983cd49997ba24408bd76 |
User & Date: | mario on 2016-12-09 18:37:51 |
Other Links: | manifest | tags |
Context
2016-12-09
| ||
18:38 | New Windows install/uninstall versions. check-in: a36496ebbc user: mario tags: trunk | |
18:37 | Support for %% escaping. check-in: 5994cb76a9 user: mario tags: trunk | |
18:37 | Typo fix and deleting old html pages exportcat/extending/live365 check-in: 32d14f2031 user: mario tags: trunk | |
Changes
Modified action.py from [21a471fadf] to [24f167ca4e].
︙ | ︙ | |||
83 84 85 86 87 88 89 | "audio/it+zip": "mod", "audio/s3+zip": "mod", "audio/xm+zip": "mod", } # Player command placeholders for playlist formats placeholder_map = dict( | | | | | | | | | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | "audio/it+zip": "mod", "audio/s3+zip": "mod", "audio/xm+zip": "mod", } # Player command placeholders for playlist formats placeholder_map = dict( pls = "(%url | %pls | %u | %l | %r)", m3u = "(%m3u | %f | %g | %m)", xspf= "(%xspf | %xpsf | %x)", jspf= "(%jspf | %j)", asx = "(%asx)", smil= "(%smil)", srv = "(%srv | %d | %s)", ) # Playlist format content probing (assert type) playlist_content_map = [ ("pls", r""" (?i)\[playlist\].*NumberOfEntries """), ("xspf", r""" <\?xml .* <playlist .* ((?i)http://xspf\.org)/ns/0/ """), ("m3u", r""" ^ \s* \#(EXT)?M3U """), |
︙ | ︙ | |||
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 | # Add default %pls if cmd has no %url placeholder if add_default and cmd.find("%") < 0: cmd = cmd + " %pls" # "pls" as default requires no conversion for most channels, and seems broadly supported by players # Playlist type placeholders (%pls, %m3u, %xspf, etc.) for dest, rx in placeholder_map.items(): if re.search(rx, cmd, re.X): # no conversion if conf.playlist_asis: url = row["url"] # e.g. from .m3u to .pls else: url = convert_playlist(row["url"], listfmt(source), listfmt(dest), local_file=True, row=row) # insert quoted URL/filepath | > | | 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | # Add default %pls if cmd has no %url placeholder if add_default and cmd.find("%") < 0: cmd = cmd + " %pls" # "pls" as default requires no conversion for most channels, and seems broadly supported by players # Playlist type placeholders (%pls, %m3u, %xspf, etc.) for dest, rx in placeholder_map.items(): rx = "(?<!%%)%s\\b" % rx if re.search(rx, cmd, re.X): # no conversion if conf.playlist_asis: url = row["url"] # e.g. from .m3u to .pls else: url = convert_playlist(row["url"], listfmt(source), listfmt(dest), local_file=True, row=row) # insert quoted URL/filepath return re.sub(rx, quote(url), cmd.replace("%%", "%"), 2, re.X) if not add_default: return cmd else: return "/bin/false" |
︙ | ︙ |