copyparty 1.16.5__py3-none-any.whl → 1.16.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
copyparty/util.py CHANGED
@@ -943,7 +943,7 @@ class ProgressPrinter(threading.Thread):
943
943
  now = time.time()
944
944
  if msg and now - tp > 10:
945
945
  tp = now
946
- self.log("progress: %s" % (msg,), 6)
946
+ self.log("progress: %r" % (msg,), 6)
947
947
 
948
948
  if no_stdout:
949
949
  continue
@@ -1543,7 +1543,7 @@ class MultipartParser(object):
1543
1543
  (only the fallback non-js uploader relies on these filenames)
1544
1544
  """
1545
1545
  for ln in read_header(self.sr, 2, 2592000):
1546
- self.log(ln)
1546
+ self.log(repr(ln))
1547
1547
 
1548
1548
  m = self.re_ctype.match(ln)
1549
1549
  if m:
@@ -1831,11 +1831,11 @@ def gen_filekey_dbg(
1831
1831
  if p2 != fspath:
1832
1832
  raise Exception()
1833
1833
  except:
1834
- t = "maybe wrong abspath for filekey;\norig: {}\nreal: {}"
1835
- log(t.format(fspath, p2), 1)
1834
+ t = "maybe wrong abspath for filekey;\norig: %r\nreal: %r"
1835
+ log(t % (fspath, p2), 1)
1836
1836
 
1837
- t = "fk({}) salt({}) size({}) inode({}) fspath({}) at({})"
1838
- log(t.format(ret[:8], salt, fsize, inode, fspath, ctx), 5)
1837
+ t = "fk(%s) salt(%s) size(%d) inode(%d) fspath(%r) at(%s)"
1838
+ log(t % (ret[:8], salt, fsize, inode, fspath, ctx), 5)
1839
1839
 
1840
1840
  return ret
1841
1841
 
@@ -2191,7 +2191,7 @@ def log_reloc(
2191
2191
  rem ,
2192
2192
  ) :
2193
2193
  nap, nvp, nfn, (nvn, nrem) = pm
2194
- t = "reloc %s:\nold ap [%s]\nnew ap [%s\033[36m/%s\033[0m]\nold vp [%s]\nnew vp [%s\033[36m/%s\033[0m]\nold fn [%s]\nnew fn [%s]\nold vfs [%s]\nnew vfs [%s]\nold rem [%s]\nnew rem [%s]"
2194
+ t = "reloc %s:\nold ap %r\nnew ap %r\033[36m/%r\033[0m\nold vp %r\nnew vp %r\033[36m/%r\033[0m\nold fn %r\nnew fn %r\nold vfs %r\nnew vfs %r\nold rem %r\nnew rem %r"
2195
2195
  log(t % (re, ap, nap, nfn, vp, nvp, nfn, fn, nfn, vn.vpath, nvn.vpath, rem, nrem))
2196
2196
 
2197
2197
 
@@ -2362,7 +2362,7 @@ def lsof(log , abspath ) :
2362
2362
  try:
2363
2363
  rc, so, se = runcmd([b"lsof", b"-R", fsenc(abspath)], timeout=45)
2364
2364
  zs = (so.strip() + "\n" + se.strip()).strip()
2365
- log("lsof {} = {}\n{}".format(abspath, rc, zs), 3)
2365
+ log("lsof %r = %s\n%s" % (abspath, rc, zs), 3)
2366
2366
  except:
2367
2367
  log("lsof failed; " + min_ex(), 3)
2368
2368
 
@@ -2398,17 +2398,17 @@ def _fs_mvrm(
2398
2398
  for attempt in range(90210):
2399
2399
  try:
2400
2400
  if ino and os.stat(bsrc).st_ino != ino:
2401
- t = "src inode changed; aborting %s %s"
2401
+ t = "src inode changed; aborting %s %r"
2402
2402
  log(t % (act, src), 1)
2403
2403
  return False
2404
2404
  if (dst and not atomic) and os.path.exists(bdst):
2405
- t = "something appeared at dst; aborting rename [%s] ==> [%s]"
2405
+ t = "something appeared at dst; aborting rename %r ==> %r"
2406
2406
  log(t % (src, dst), 1)
2407
2407
  return False
2408
2408
  osfun(*args)
2409
2409
  if attempt:
2410
2410
  now = time.time()
2411
- t = "%sd in %.2f sec, attempt %d: %s"
2411
+ t = "%sd in %.2f sec, attempt %d: %r"
2412
2412
  log(t % (act, now - t0, attempt + 1, src))
2413
2413
  return True
2414
2414
  except OSError as ex:
@@ -2420,7 +2420,7 @@ def _fs_mvrm(
2420
2420
  if not attempt:
2421
2421
  if not PY2:
2422
2422
  ino = os.stat(bsrc).st_ino
2423
- t = "%s failed (err.%d); retrying for %d sec: [%s]"
2423
+ t = "%s failed (err.%d); retrying for %d sec: %r"
2424
2424
  log(t % (act, ex.errno, maxtime + 0.99, src))
2425
2425
 
2426
2426
  time.sleep(chill)
@@ -3445,7 +3445,7 @@ def runhook(
3445
3445
  log, src, cmd, ap, vp, host, uname, perms, mt, sz, ip, at, txt
3446
3446
  )
3447
3447
  if log and args.hook_v:
3448
- log("hook(%s) [%s] => \033[32m%s" % (src, cmd, hr), 6)
3448
+ log("hook(%s) %r => \033[32m%s" % (src, cmd, hr), 6)
3449
3449
  if not hr:
3450
3450
  return {}
3451
3451
  for k, v in hr.items():
copyparty/web/a/u2c.py CHANGED
@@ -1101,7 +1101,7 @@ class Ctl(object):
1101
1101
  nleft = self.nfiles - self.up_f
1102
1102
  tail = "\033[K\033[u" if VT100 and not self.ar.ns else "\r"
1103
1103
 
1104
- t = "%s eta @ %s/s, %s, %d# left\033[K" % (self.eta, spd, sleft, nleft)
1104
+ t = "%s eta @ %s/s, %s, %d# left" % (self.eta, spd, sleft, nleft)
1105
1105
  if not self.hash_b:
1106
1106
  t = " now hashing..."
1107
1107
  eprint(txt + "\033]0;{0}\033\\\r{0}{1}".format(t, tail))
@@ -131,7 +131,7 @@
131
131
  <div id="widget"></div>
132
132
 
133
133
  <script>
134
- var SR = {{ r|tojson }},
134
+ var SR = "{{ r }}",
135
135
  CGV1 = {{ cgv1 }},
136
136
  CGV = {{ cgv|tojson }},
137
137
  TS = "{{ ts }}",
Binary file
copyparty/web/md.html CHANGED
@@ -128,9 +128,9 @@ write markdown (most html is 🙆 too)
128
128
 
129
129
  <script>
130
130
 
131
- var SR = {{ r|tojson }},
131
+ var SR = "{{ r }}",
132
132
  last_modified = {{ lastmod }},
133
- have_emp = {{ have_emp|tojson }},
133
+ have_emp = {{ "true" if have_emp else "false" }},
134
134
  dfavico = "{{ favico }}";
135
135
 
136
136
  var md_opt = {
copyparty/web/mde.html CHANGED
@@ -26,9 +26,9 @@
26
26
  <a href="#" id="repl">π</a>
27
27
  <script>
28
28
 
29
- var SR = {{ r|tojson }},
29
+ var SR = "{{ r }}",
30
30
  last_modified = {{ lastmod }},
31
- have_emp = {{ have_emp|tojson }},
31
+ have_emp = {{ "true" if have_emp else "false" }},
32
32
  dfavico = "{{ favico }}";
33
33
 
34
34
  var md_opt = {
Binary file
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>{{ s_doctitle }}</title>
7
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+ <meta name="viewport" content="width=device-width, initial-scale=0.8">
9
+ <meta name="robots" content="noindex, nofollow">
10
+ <meta name="theme-color" content="#{{ tcolor }}">
11
+ <link rel="stylesheet" media="screen" href="{{ r }}/.cpr/rups.css?_={{ ts }}">
12
+ <link rel="stylesheet" media="screen" href="{{ r }}/.cpr/ui.css?_={{ ts }}">
13
+ {{ html_head }}
14
+ </head>
15
+
16
+ <body>
17
+ <div id="wrap">
18
+ <a href="#" id="re">refresh</a>
19
+ <a href="{{ r }}/?h">control-panel</a>
20
+ &nbsp; Filter: <input type="text" id="filter" size="20" placeholder="documents/passwords" />
21
+ &nbsp; <span id="hits"></span>
22
+ <table id="tab"><thead><tr>
23
+ <th>size</th>
24
+ <th>who</th>
25
+ <th>when</th>
26
+ <th>age</th>
27
+ <th>dir</th>
28
+ <th>file</th>
29
+ </tr></thead><tbody id="tb"></tbody></table>
30
+ </div>
31
+ <a href="#" id="repl">π</a>
32
+ <script>
33
+
34
+ var SR="{{ r }}",
35
+ lang="{{ lang }}",
36
+ dfavico="{{ favico }}";
37
+
38
+ var STG = window.localStorage;
39
+ document.documentElement.className = (STG && STG.cpp_thm) || "{{ this.args.theme }}";
40
+
41
+ </script>
42
+ <script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
43
+ <script>var V={{ v }};</script>
44
+ <script src="{{ r }}/.cpr/rups.js?_={{ ts }}"></script>
45
+ {%- if js %}
46
+ <script src="{{ js }}_={{ ts }}"></script>
47
+ {%- endif %}
48
+ </body>
49
+ </html>
50
+
Binary file
Binary file
copyparty/web/shares.html CHANGED
@@ -6,6 +6,7 @@
6
6
  <title>{{ s_doctitle }}</title>
7
7
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
8
  <meta name="viewport" content="width=device-width, initial-scale=0.8">
9
+ <meta name="robots" content="noindex, nofollow">
9
10
  <meta name="theme-color" content="#{{ tcolor }}">
10
11
  <link rel="stylesheet" media="screen" href="{{ r }}/.cpr/shares.css?_={{ ts }}">
11
12
  <link rel="stylesheet" media="screen" href="{{ r }}/.cpr/ui.css?_={{ ts }}">
@@ -14,8 +15,8 @@
14
15
 
15
16
  <body>
16
17
  <div id="wrap">
17
- <a id="a" href="{{ r }}/?shares" class="af">refresh</a>
18
- <a id="a" href="{{ r }}/?h" class="af">control-panel</a>
18
+ <a href="{{ r }}/?shares">refresh</a>
19
+ <a href="{{ r }}/?h">control-panel</a>
19
20
 
20
21
  <span>axs = perms (read,write,move,delet)</span>
21
22
  <span>nf = numFiles (0=dir)</span>
@@ -58,9 +59,11 @@
58
59
  {% if not rows %}
59
60
  (you don't have any active shares btw)
60
61
  {% endif %}
62
+ </div>
63
+ <a href="#" id="repl">π</a>
61
64
  <script>
62
65
 
63
- var SR = {{ r|tojson }},
66
+ var SR="{{ r }}",
64
67
  shr="{{ shr }}",
65
68
  lang="{{ lang }}",
66
69
  dfavico="{{ favico }}";
copyparty/web/splash.html CHANGED
@@ -157,6 +157,7 @@
157
157
  <blockquote id="ad">enabling no304 will disable all caching; try this if k304 wasn't enough. This will waste a huge amount of network traffic!</blockquote></li>
158
158
  {% endif %}
159
159
 
160
+ <li><a id="af" href="{{ r }}/?ru">show recent uploads</a></li>
160
161
  <li><a id="k" href="{{ r }}/?reset" class="r" onclick="localStorage.clear();return true">reset client settings</a></li>
161
162
  </ul>
162
163
 
@@ -167,7 +168,7 @@
167
168
  {%- endif %}
168
169
  <script>
169
170
 
170
- var SR = {{ r|tojson }},
171
+ var SR="{{ r }}",
171
172
  lang="{{ lang }}",
172
173
  dfavico="{{ favico }}";
173
174
 
Binary file
copyparty/web/svcs.html CHANGED
@@ -233,7 +233,7 @@
233
233
  <a href="#" id="repl">π</a>
234
234
  <script>
235
235
 
236
- var SR = {{ r|tojson }},
236
+ var SR="{{ r }}",
237
237
  lang="{{ lang }}",
238
238
  dfavico="{{ favico }}";
239
239
 
copyparty/web/up2k.js.gz CHANGED
Binary file
copyparty/web/util.js.gz CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: copyparty
3
- Version: 1.16.5
3
+ Version: 1.16.7
4
4
  Summary: Portable file server with accelerated resumable uploads, deduplication, WebDAV, FTP, zeroconf, media indexer, video thumbnails, audio transcoding, and write-only folders
5
5
  Author-email: ed <copyparty@ocv.me>
6
6
  License: MIT
@@ -103,6 +103,7 @@ turn almost any device into a file server with resumable uploads/downloads using
103
103
  * [shares](#shares) - share a file or folder by creating a temporary link
104
104
  * [batch rename](#batch-rename) - select some files and press `F2` to bring up the rename UI
105
105
  * [rss feeds](#rss-feeds) - monitor a folder with your RSS reader
106
+ * [recent uploads](#recent-uploads) - list all recent uploads
106
107
  * [media player](#media-player) - plays almost every audio format there is
107
108
  * [audio equalizer](#audio-equalizer) - and [dynamic range compressor](https://en.wikipedia.org/wiki/Dynamic_range_compression)
108
109
  * [fix unreliable playback on android](#fix-unreliable-playback-on-android) - due to phone / app settings
@@ -772,7 +773,7 @@ files go into `[ok]` if they exist (and you get a link to where it is), otherwis
772
773
 
773
774
  ### unpost
774
775
 
775
- undo/delete accidental uploads
776
+ undo/delete accidental uploads using the `[🧯]` tab in the UI
776
777
 
777
778
  ![copyparty-unpost-fs8](https://user-images.githubusercontent.com/241032/129635368-3afa6634-c20f-418c-90dc-ec411f3b3897.png)
778
779
 
@@ -931,6 +932,17 @@ url parameters:
931
932
  * uppercase = reverse-sort; `M` = oldest file first
932
933
 
933
934
 
935
+ ## recent uploads
936
+
937
+ list all recent uploads by clicking "show recent uploads" in the controlpanel
938
+
939
+ will show uploader IP and upload-time if the visitor has the admin permission
940
+
941
+ * global-option `--ups-when` makes upload-time visible to all users, and not just admins
942
+
943
+ note that the [🧯 unpost](#unpost) feature is better suited for viewing *your own* recent uploads, as it includes the option to undo/delete them
944
+
945
+
934
946
  ## media player
935
947
 
936
948
  plays almost every audio format there is (if the server has FFmpeg installed for on-demand transcoding)
@@ -1,7 +1,7 @@
1
- copyparty/__init__.py,sha256=iRCNvMPg6k9WG_O2uCtlkD4vWogH8EgP9elp9XwSIJs,2610
2
- copyparty/__main__.py,sha256=QMgJweEFGzSHpKE54CcJe2sIHwwa8Kf3NRQqch58h0Q,113241
3
- copyparty/__version__.py,sha256=qn_oNmlkJlFLhCQtoyBt5ojEXnzjKAyGucJ0Y9SRkSU,252
4
- copyparty/authsrv.py,sha256=CIK5OKl38LehdAt4hidCMpsATdJhPABJPkJStpQpp9U,103405
1
+ copyparty/__init__.py,sha256=VR6ZZhB9IxaK5TDXDTBM_OIP5ydkrdbaEnstktLM__s,2649
2
+ copyparty/__main__.py,sha256=acjihZUEvEwFp6d6BnT35oFqminMZBruDUfVU76YijA,113564
3
+ copyparty/__version__.py,sha256=1Wa9fHXGyIQdk3lnare95TArCCnFp0OA4JizO5IAN20,252
4
+ copyparty/authsrv.py,sha256=h1OhdMR_hrqZA9NH2pMRZ-Axc_GSoUajioCZhimVVsQ,104109
5
5
  copyparty/broker_mp.py,sha256=QdOXXvV2Xn6J0CysEqyY3GZbqxQMyWnTpnba-a5lMc0,4987
6
6
  copyparty/broker_mpw.py,sha256=PpSS4SK3pItlpfD8OwVr3QmJEPKlUgaf2nuMOozixgU,3347
7
7
  copyparty/broker_thr.py,sha256=fjoYtpSscUA7-nMl4r1n2R7UK3J9lrvLS3rUZ-iJzKQ,1721
@@ -9,30 +9,30 @@ copyparty/broker_util.py,sha256=76mfnFOpX1gUUvtjm8UQI7jpTIaVINX10QonM-B7ggc,1680
9
9
  copyparty/cert.py,sha256=0ZAPeXeMR164vWn9GQU3JDKooYXEq_NOQkDeg543ivg,8009
10
10
  copyparty/cfg.py,sha256=UUmFpFbTm750Nv9RnofS80-FTpWT37EggEtmkE1wbxE,10374
11
11
  copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
12
- copyparty/fsutil.py,sha256=5CshJWO7CflfaRRNOb3JxghUH7W5rmS_HWNmKfx42MM,4538
12
+ copyparty/fsutil.py,sha256=IVOFG8zBQPMQDDv7RIStSJHwHiAnVNROZS37O5k465A,4524
13
13
  copyparty/ftpd.py,sha256=T97SFS7JFtvRLbJX8C4fJSYwe13vhN3-E6emtlVmqLA,17608
14
- copyparty/httpcli.py,sha256=DRE8V3YxUk7YIBGSnmuH0px1ZSqtJciY15k1Rk8ThBI,207587
14
+ copyparty/httpcli.py,sha256=cgeVci6xAUUp79z982xTL27v9XcWEzC5ymbmtj3v66M,214475
15
15
  copyparty/httpconn.py,sha256=mQSgljh0Q-jyWjF4tQLrHbRKRe9WKl19kGqsGMsJpWo,6880
16
- copyparty/httpsrv.py,sha256=PXLZlT6iuJZYG9ajNsAaNgRK3UtS4CrOGFGXOpkRtOk,18235
16
+ copyparty/httpsrv.py,sha256=pxH_Eh8ElBLvOEDejgpP9Bvk65HNEou-03aYIcgXhrs,18090
17
17
  copyparty/ico.py,sha256=eWSxEae4wOCfheHl-m-wchYvFRAR_97kJDb4NGaB-Z8,3561
18
18
  copyparty/mdns.py,sha256=G73OWWg1copda47LgayCRK7qjVrk6cnUGpMR5ugmi7o,18315
19
19
  copyparty/metrics.py,sha256=EOIiPOItEQmdK9YgNb75l0kCzanWb6RtJGwMI7ufifY,8966
20
- copyparty/mtag.py,sha256=o-rxu4LajWF4H3HFmfCbXnKfs0GCQh1FQ0XywuW6wOc,19934
20
+ copyparty/mtag.py,sha256=wWWc3BHMRP0u85KvdZpX3Dp4djDgAbXVrL9Pvab4nPQ,19925
21
21
  copyparty/multicast.py,sha256=Ha27l2oATEa-Qo2WOzkeRgjAm6G_YDCfbVJWR-ao2UE,12319
22
22
  copyparty/pwhash.py,sha256=X87RWeay8IhzGVZLDKE5LctF9YVUcYxPAJ1BX6r_9CU,4248
23
- copyparty/smbd.py,sha256=Or7RF13cl1r3ncnpVh8BqyAGqH2Oa04O9iPZWCoB0Bo,14609
23
+ copyparty/smbd.py,sha256=dixFl2wlWymq_Cycc8a4cVB4gY8RSg2e3tE7Xr-aDa0,14614
24
24
  copyparty/ssdp.py,sha256=R1Z61GZOxBMF2Sk4RTxKWMOemogmcjEWG-CvLihd45k,7023
25
25
  copyparty/star.py,sha256=tV5BbX6AiQ7N4UU8DYtSTckNYeoeey4DBqq4LjfymbY,3818
26
- copyparty/sutil.py,sha256=JTMrQwcWH85hXB_cKG206eDZ967WZDGaP00AWvl_gB0,3214
26
+ copyparty/sutil.py,sha256=6zEEGl4hRe6bTB83Y_RtnBGxr2JcUa__GdiAMqNJZnY,3208
27
27
  copyparty/svchub.py,sha256=sAHkiPGzzKACLqKlem2V-bps9Xh-wHlcfwaNywxcd5A,40877
28
28
  copyparty/szip.py,sha256=HFtnwOiBgx0HMLUf-h_T84zSlRijPxmhRo5PM613kRA,8602
29
- copyparty/tcpsrv.py,sha256=H7z9tzYRCm-kZwktnm_wP-v2MXaIOygx9yfdk1xkqRo,19889
30
- copyparty/tftpd.py,sha256=FRCALO3PigoBlwUrqxoKHM_xk7wT2O0GPG1TvNRtjOY,13606
31
- copyparty/th_cli.py,sha256=o6FMkerYvAXS455z3DUossVztu_nzFlYSQhs6qN6Jt8,4636
32
- copyparty/th_srv.py,sha256=LBcB4LpsF-H7L52Z0Dhn9LogRjJVPp1GKa8MeIMIBnw,29596
33
- copyparty/u2idx.py,sha256=kF4TE-j78Faq_f4vGh5So5raYDYLt2UDpza6yBA3f54,13687
34
- copyparty/up2k.py,sha256=KQZcpqWRwjvmJLFEo3ejVWDroQi10jQdvgxuASDpUlY,174476
35
- copyparty/util.py,sha256=UyaYXfVO4nOkqhSMi9SZn2zK2W9texb9CL9rsqMak8I,95135
29
+ copyparty/tcpsrv.py,sha256=2q18dGR8jnezA4SMfUXa-wrGRGX3nHIwkxkWvkTzF2A,19889
30
+ copyparty/tftpd.py,sha256=PXgG4rTmiaU_TavSyZWD5cFphdfChs9YvNY21qfExt8,13611
31
+ copyparty/th_cli.py,sha256=1B8el4NNs5cNyJyjOPiAdvLOX2HQXaebsHn6VLdZ_gU,4630
32
+ copyparty/th_srv.py,sha256=uAcz-wZJQEG5KavcZDkwToONZujyoOeC4oCxxKTD5us,29575
33
+ copyparty/u2idx.py,sha256=G6MDbD4I_sJSOwaNFZ6XLTQhnEDrB12pVKuKhzQ_leE,13676
34
+ copyparty/up2k.py,sha256=Uo_-zmJ9Bv8An0ph4w6Nh1883LWAsbH_H9mrX35OrpU,174570
35
+ copyparty/util.py,sha256=qhNakLtygJveVbZUuPvDY7Tm1E48E67CS9XBmosu5i4,95101
36
36
  copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  copyparty/bos/bos.py,sha256=Wb7eWsXJgR5AFlBR9ZOyKrLTwy-Kct9RrGiOu4Jo37Y,1622
38
38
  copyparty/bos/path.py,sha256=yEjCq2ki9CvxA5sCT8pS0keEXwugs0ZeUyUhdBziOCI,777
@@ -56,36 +56,39 @@ copyparty/stolen/ifaddr/_shared.py,sha256=uNC4SdEIgdSLKvuUzsf1aM-H1Xrc_9mpLoOT43
56
56
  copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
57
57
  copyparty/web/baguettebox.js.gz,sha256=_amC3ipOrXKEFz8DsVP-JEl49VjMQYiKyF78eWfG-uk,7965
58
58
  copyparty/web/browser.css.gz,sha256=kurx_iA-KxLYx8PqJsn0bJVjkAxP-0YTOHSV9l_oouo,11645
59
- copyparty/web/browser.html,sha256=KCkZ_LwzQnj9xhXKYptAxp6W3nVGiDoSJ4ioZDo7rQ0,4827
60
- copyparty/web/browser.js.gz,sha256=7YbcHLByMAc71j3nKKUrCEExAzfenYnHPBSrnJ8iJFA,89833
59
+ copyparty/web/browser.html,sha256=dekrZQ6w8ciB-QPlp-mjcuzUVKlsCYcvvi6efmXRfQE,4822
60
+ copyparty/web/browser.js.gz,sha256=HejO4Brwmw-NmLVmqbK1I31LPP9arf7G9JaHOUpNcfY,89876
61
61
  copyparty/web/browser2.html,sha256=NRUZ08GH-e2YcGXcoz0UjYg6JIVF42u4IMX4HHwWTmg,1587
62
62
  copyparty/web/cf.html,sha256=lJThtNFNAQT1ClCHHlivAkDGE0LutedwopXD62Z8Nys,589
63
63
  copyparty/web/dbg-audio.js.gz,sha256=Ma-KZtK8LnmiwNvNKFKXMPYl_Nn_3U7GsJ6-DRWC2HE,688
64
64
  copyparty/web/md.css.gz,sha256=UZpN0J7ubVM05CZkbZYkQRJeGgJt_GNDEzKTGSQd8h4,2032
65
- copyparty/web/md.html,sha256=isNbIzWbp_oqkhQSXm0uf3st3h4uB3LLTXFcHHcvgPQ,4189
65
+ copyparty/web/md.html,sha256=hz-xJVfKtaeTUQn3tGh7ebIMvLbOjVKkrMhsCTr3lGM,4200
66
66
  copyparty/web/md.js.gz,sha256=tw9vS9yZzyVW4FNOTv0MMHBdBEedfahZRZ8WhVJDu4A,4180
67
67
  copyparty/web/md2.css.gz,sha256=uIVHKScThdbcfhXNSHgKZnALYpxbnXC-WuEzOJ20Lpc,699
68
68
  copyparty/web/md2.js.gz,sha256=w0Ve06BUcyZfcWR8DAPpCj-kI-uL_wTL2aX_0PsNc-I,8363
69
69
  copyparty/web/mde.css.gz,sha256=2SkAEDKIRPqywNJ8t_heQaeBQ_R73Rf-pQI_bDoKF6o,942
70
- copyparty/web/mde.html,sha256=ImBhQAaEUCke2M85QU_fl4X2XQExRLcEzgCEN8RNe9o,1759
70
+ copyparty/web/mde.html,sha256=fRGUlnNhK6ra8P4jskQLUw6Aaef6g6Heh4EEgYhJkxU,1770
71
71
  copyparty/web/mde.js.gz,sha256=kN2eUSvr4mFuksfK4-4LimJmWdwsao39Sea2lWtu8L0,2224
72
72
  copyparty/web/msg.css.gz,sha256=u90fXYAVrMD-jqwf5XFVC1ptSpSHZUe8Mez6PX101P8,300
73
73
  copyparty/web/msg.html,sha256=w9CM3hkLLGJX9fWEaG4gSbTOPe2GcPqW8BpSCDiFzOI,977
74
- copyparty/web/shares.css.gz,sha256=T2fSezuluDVIiNIERAuUREByhHFlIwwNyx7EBOAVVyQ,499
75
- copyparty/web/shares.html,sha256=ZNHtLBM-Y4BX2qa9AGTrZzZp_IP5PLM3QvFMYKolFfM,2494
74
+ copyparty/web/rups.css.gz,sha256=pWklsym27oGGr-8tYQR7WnZvGZElAgCwLzlwTDErNAM,647
75
+ copyparty/web/rups.html,sha256=iPuz53jBT_mIWIfl1yrjjg5-P7oO2ada6fTFq8PgjGk,1479
76
+ copyparty/web/rups.js.gz,sha256=nvvcG8L-fkm7zkhjnlTGhBp_KD0j08mtHEW0sB7zy-Y,854
77
+ copyparty/web/shares.css.gz,sha256=SdPlZCBwz9tkPkgEo5pSPDOZSI079njxEfkJ64-iW3c,547
78
+ copyparty/web/shares.html,sha256=YctvUrKuBYu42kxVylyW2_DEHm7Ik6uHqzfzVZ4N0ac,2545
76
79
  copyparty/web/shares.js.gz,sha256=emeY2-wjkh8x1JgaW6ny5fcC7XpZzZzfE1f-sEyntQ4,940
77
80
  copyparty/web/splash.css.gz,sha256=VxFqPvNdZtWb0u1C_GW2yYwrHq0lqPMitft9GYcv56k,1087
78
- copyparty/web/splash.html,sha256=wc8El8_5BR3EMuVik8WYAkkEQ4S6-VepR1B1F8qAYgI,6190
79
- copyparty/web/splash.js.gz,sha256=EEfsi9YGtPTYRB6MPX8Dfg4YyfqncI9ldJS7_MGVOhs,2710
80
- copyparty/web/svcs.html,sha256=5cAp6RAkvqfDAbO9kxuDgXcmuDH20ZN2fse0uzCXb5s,11564
81
+ copyparty/web/splash.html,sha256=QEnTH9QZXFmAuyVtgqOuuHKBtIdi7uclpRqe0ZMewj4,6249
82
+ copyparty/web/splash.js.gz,sha256=4VqNznN10-bT33IJm3VWzBEJ1s08XZyxFB1TYPUkuAo,2739
83
+ copyparty/web/svcs.html,sha256=S-YiS7DF5ndsy4MZXStdpIkCqSjKA9V5kIViCUQhMvw,11557
81
84
  copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
82
85
  copyparty/web/ui.css.gz,sha256=v8U-1tetZzuzTpITjq8NWj1gg3jEiYDIIE8aE0dx63k,2800
83
- copyparty/web/up2k.js.gz,sha256=0keU0ljh9B41VsoVMpi-NtuYjtGl00xUgNH20CIbz8Y,23449
84
- copyparty/web/util.js.gz,sha256=MMDIZbxzBwBYE5eYLzhGGpC7h257oEFZaBKZwJ4uhc8,15077
86
+ copyparty/web/up2k.js.gz,sha256=CC1MM_FBfxpsjgtNWupzCdnlVNI3hBbWbNSCnOSpCTY,23460
87
+ copyparty/web/util.js.gz,sha256=aXgf3U-0TL9Sc7uMQhA_sMyTXLsZCH3YDe8qLJ4hpEM,15082
85
88
  copyparty/web/w.hash.js.gz,sha256=l3GpSJD6mcU-1CRWkIj7PybgbjlfSr8oeO3vortIrQk,1105
86
89
  copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
90
  copyparty/web/a/partyfuse.py,sha256=9p5Hpg_IBiSimv7j9kmPhCGpy-FLXSRUOYnLjJ5JifU,28049
88
- copyparty/web/a/u2c.py,sha256=1XcH5XfC2UuGrpTnLVHCe4KFU0Vl6uC02CZz04rvKOc,51612
91
+ copyparty/web/a/u2c.py,sha256=OuA0UMtPDSrMHgd4ebANJXoLeIa1RKxzbBXUV3H8jIw,51606
89
92
  copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
90
93
  copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
91
94
  copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
@@ -106,9 +109,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
106
109
  copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
107
110
  copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
108
111
  copyparty/web/deps/sha512.hw.js.gz,sha256=UAed2_ocklZCnIzcSYz2h4P1ycztlCLj-ewsRTud2lU,7939
109
- copyparty-1.16.5.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
110
- copyparty-1.16.5.dist-info/METADATA,sha256=GZhzGQ_TCgJ9upH18-bjepyQPkFI5pK7EL64w7SWSD0,140992
111
- copyparty-1.16.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
112
- copyparty-1.16.5.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
113
- copyparty-1.16.5.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
114
- copyparty-1.16.5.dist-info/RECORD,,
112
+ copyparty-1.16.7.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
113
+ copyparty-1.16.7.dist-info/METADATA,sha256=olG_plZH52nO0-2ebV8squbAOF_3h66Y8_8Bs_by6Zk,141509
114
+ copyparty-1.16.7.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
115
+ copyparty-1.16.7.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
116
+ copyparty-1.16.7.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
117
+ copyparty-1.16.7.dist-info/RECORD,,