mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
rely on filekeys for album-art over bluetooth;
will probably fail when some devices (sup iphone) stream to car stereos but at least passwords won't end up somewhere unexpected this way (plus, the js no longer uses the jank url to request waveforms)
This commit is contained in:
parent
35b75c3db1
commit
b7723ac245
|
@ -2161,17 +2161,17 @@ class HttpCli(object):
|
||||||
|
|
||||||
msg = "naw dude"
|
msg = "naw dude"
|
||||||
pwd = "x" # nosec
|
pwd = "x" # nosec
|
||||||
dur = None
|
dur = 0
|
||||||
|
|
||||||
if pwd == "x":
|
if pwd == "x":
|
||||||
# reset both plaintext and tls
|
# reset both plaintext and tls
|
||||||
# (only affects active tls cookies when tls)
|
# (only affects active tls cookies when tls)
|
||||||
for k in ("cppwd", "cppws") if self.is_https else ("cppwd",):
|
for k in ("cppwd", "cppws") if self.is_https else ("cppwd",):
|
||||||
ck = gencookie(k, pwd, self.args.R, False, dur)
|
ck = gencookie(k, pwd, self.args.R, False)
|
||||||
self.out_headerlist.append(("Set-Cookie", ck))
|
self.out_headerlist.append(("Set-Cookie", ck))
|
||||||
else:
|
else:
|
||||||
k = "cppws" if self.is_https else "cppwd"
|
k = "cppws" if self.is_https else "cppwd"
|
||||||
ck = gencookie(k, pwd, self.args.R, self.is_https, dur)
|
ck = gencookie(k, pwd, self.args.R, self.is_https, dur, "; HttpOnly")
|
||||||
self.out_headerlist.append(("Set-Cookie", ck))
|
self.out_headerlist.append(("Set-Cookie", ck))
|
||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
@ -3299,7 +3299,7 @@ class HttpCli(object):
|
||||||
if v == "y":
|
if v == "y":
|
||||||
dur = 86400 * 299
|
dur = 86400 * 299
|
||||||
else:
|
else:
|
||||||
dur = None
|
dur = 0
|
||||||
v = "x"
|
v = "x"
|
||||||
|
|
||||||
ck = gencookie("k304", v, self.args.R, False, dur)
|
ck = gencookie("k304", v, self.args.R, False, dur)
|
||||||
|
@ -3317,7 +3317,7 @@ class HttpCli(object):
|
||||||
|
|
||||||
def set_cfg_reset(self) -> bool:
|
def set_cfg_reset(self) -> bool:
|
||||||
for k in ("k304", "js", "idxh", "cppwd", "cppws"):
|
for k in ("k304", "js", "idxh", "cppwd", "cppws"):
|
||||||
cookie = gencookie(k, "x", self.args.R, False, None)
|
cookie = gencookie(k, "x", self.args.R, False)
|
||||||
self.out_headerlist.append(("Set-Cookie", cookie))
|
self.out_headerlist.append(("Set-Cookie", cookie))
|
||||||
|
|
||||||
self.redirect("", "?h#cc")
|
self.redirect("", "?h#cc")
|
||||||
|
|
|
@ -1647,16 +1647,15 @@ def gen_filekey_dbg(
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
def gencookie(k: str, v: str, r: str, tls: bool, dur: Optional[int]) -> str:
|
def gencookie(k: str, v: str, r: str, tls: bool, dur: int = 0, txt: str = "") -> str:
|
||||||
v = v.replace("%", "%25").replace(";", "%3B")
|
v = v.replace("%", "%25").replace(";", "%3B")
|
||||||
if dur:
|
if dur:
|
||||||
exp = formatdate(time.time() + dur, usegmt=True)
|
exp = formatdate(time.time() + dur, usegmt=True)
|
||||||
else:
|
else:
|
||||||
exp = "Fri, 15 Aug 1997 01:00:00 GMT"
|
exp = "Fri, 15 Aug 1997 01:00:00 GMT"
|
||||||
|
|
||||||
return "{}={}; Path=/{}; Expires={}{}; SameSite=Lax".format(
|
t = "%s=%s; Path=/%s; Expires=%s%s%s; SameSite=Lax"
|
||||||
k, v, r, exp, "; Secure" if tls else ""
|
return t % (k, v, r, exp, "; Secure" if tls else "", txt)
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def humansize(sz: float, terse: bool = False) -> str:
|
def humansize(sz: float, terse: bool = False) -> str:
|
||||||
|
|
|
@ -1506,7 +1506,6 @@ var mpl = (function () {
|
||||||
artist = (np.circle && np.circle != np.artist ? np.circle + ' // ' : '') + (np.artist || (fns.length > 1 ? fns[0] : '')),
|
artist = (np.circle && np.circle != np.artist ? np.circle + ' // ' : '') + (np.artist || (fns.length > 1 ? fns[0] : '')),
|
||||||
title = np.title || fns.pop(),
|
title = np.title || fns.pop(),
|
||||||
cover = '',
|
cover = '',
|
||||||
pcover = '',
|
|
||||||
tags = { title: title };
|
tags = { title: title };
|
||||||
|
|
||||||
if (artist)
|
if (artist)
|
||||||
|
@ -1521,20 +1520,14 @@ var mpl = (function () {
|
||||||
|
|
||||||
for (var a = 0, aa = files.length; a < aa; a++) {
|
for (var a = 0, aa = files.length; a < aa; a++) {
|
||||||
if (/^(cover|folder)\.(jpe?g|png|gif)$/i.test(files[a].textContent)) {
|
if (/^(cover|folder)\.(jpe?g|png|gif)$/i.test(files[a].textContent)) {
|
||||||
cover = noq_href(files[a]);
|
cover = files[a].getAttribute('href');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cover) {
|
if (cover) {
|
||||||
cover += (cover.indexOf('?') === -1 ? '?' : '&') + 'th=j';
|
cover += (cover.indexOf('?') === -1 ? '?' : '&') + 'th=j';
|
||||||
pcover = cover;
|
tags.artwork = [{ "src": cover, type: "image/jpeg" }];
|
||||||
|
|
||||||
var pwd = get_pwd();
|
|
||||||
if (pwd)
|
|
||||||
pcover += '&pw=' + uricom_enc(pwd);
|
|
||||||
|
|
||||||
tags.artwork = [{ "src": pcover, type: "image/jpeg" }];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1546,7 +1539,7 @@ var mpl = (function () {
|
||||||
ebi('np_dur').textContent = np['.dur'] || '';
|
ebi('np_dur').textContent = np['.dur'] || '';
|
||||||
ebi('np_url').textContent = get_vpath() + np.file.split('?')[0];
|
ebi('np_url').textContent = get_vpath() + np.file.split('?')[0];
|
||||||
if (!MOBILE)
|
if (!MOBILE)
|
||||||
ebi('np_img').setAttribute('src', cover || ''); // dont give last.fm the pwd
|
ebi('np_img').setAttribute('src', cover || '');
|
||||||
|
|
||||||
navigator.mediaSession.metadata = new MediaMetadata(tags);
|
navigator.mediaSession.metadata = new MediaMetadata(tags);
|
||||||
navigator.mediaSession.setActionHandler('play', mplay);
|
navigator.mediaSession.setActionHandler('play', mplay);
|
||||||
|
@ -1724,7 +1717,7 @@ function MPlayer() {
|
||||||
var t0 = Date.now();
|
var t0 = Date.now();
|
||||||
|
|
||||||
if (mpl.waves)
|
if (mpl.waves)
|
||||||
fetch(url + '&th=p').then(function (x) {
|
fetch(url.replace(/\bth=opus&/, '') + '&th=p').then(function (x) {
|
||||||
x.body.getReader().read();
|
x.body.getReader().read();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3020,7 +3013,7 @@ function play(tid, is_ev, seek) {
|
||||||
|
|
||||||
pbar.unwave();
|
pbar.unwave();
|
||||||
if (mpl.waves)
|
if (mpl.waves)
|
||||||
pbar.loadwaves(url + '&th=p');
|
pbar.loadwaves(url.replace(/\bth=opus&/, '') + '&th=p');
|
||||||
|
|
||||||
mpui.progress_updater();
|
mpui.progress_updater();
|
||||||
pbar.onresize();
|
pbar.onresize();
|
||||||
|
|
|
@ -754,17 +754,6 @@ function noq_href(el) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function get_pwd() {
|
|
||||||
var k = HTTPS ? 's=' : 'd=',
|
|
||||||
pwd = ('; ' + document.cookie).split('; cppw' + k);
|
|
||||||
|
|
||||||
if (pwd.length < 2)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return decodeURIComponent(pwd[1].split(';')[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function unix2iso(ts) {
|
function unix2iso(ts) {
|
||||||
return new Date(ts * 1000).toISOString().replace("T", " ").slice(0, -5);
|
return new Date(ts * 1000).toISOString().replace("T", " ").slice(0, -5);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue