160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177 | def record(row={}, audioformat="audio/mpeg", source="href", append=None):
run_fmt_url(row, audioformat, source, conf.record, append=append)
# OS shell command escaping
#
def quote(ins):
if type(ins) is list:
return " ".join(["%r" % str(s) for s in ins])
else:
return "%r" % str(ins)
# Convert e.g. "text/x-scpls" MIME types to just "pls" monikers
#
def listfmt(t = "pls"):
return listfmt_t.get(t, t) # e.g. "pls" or still "text/x-unknown"
|
>
>
>
>
|
|
| 160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181 | def record(row={}, audioformat="audio/mpeg", source="href", append=None):
run_fmt_url(row, audioformat, source, conf.record, append=append)
# OS shell command escaping
#
def quote(ins):
if conf.windows:
Q = '"%s%"'
else:
Q = "%r"
if type(ins) is list:
return " ".join([Q % str(s) for s in ins])
else:
return Q % str(ins)
# Convert e.g. "text/x-scpls" MIME types to just "pls" monikers
#
def listfmt(t = "pls"):
return listfmt_t.get(t, t) # e.g. "pls" or still "text/x-unknown"
|
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208 | # · Replace .pls URL with local .m3u file depending on map.
#
def interpol(cmd, source="pls", row={}, add_default=True):
row = copy.copy(row)
# Inject other meta fields (%title, %genre, %playing, %format, etc.)
rx_keys = "[\$\%](" + "|".join(row.keys()) + ")\\b"
cmd = re.sub(rx_keys, lambda m: "%r" % str(row.get(m.group(1))), cmd)
# 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.) |
|
| 198
199
200
201
202
203
204
205
206
207
208
209
210
211
212 | # · Replace .pls URL with local .m3u file depending on map.
#
def interpol(cmd, source="pls", row={}, add_default=True):
row = copy.copy(row)
# Inject other meta fields (%title, %genre, %playing, %format, etc.)
rx_keys = "[\$\%](" + "|".join(row.keys()) + ")\\b"
cmd = re.sub(rx_keys, lambda m: quote(str(row.get(m.group(1)))), cmd)
# 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.) |