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"
|
| ︙ | ︙ |