copyparty 1.19.16__py3-none-any.whl → 1.19.18__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.
Files changed (55) hide show
  1. copyparty/__init__.py +25 -1
  2. copyparty/__main__.py +32 -9
  3. copyparty/__version__.py +2 -2
  4. copyparty/authsrv.py +78 -31
  5. copyparty/bos/bos.py +5 -1
  6. copyparty/cfg.py +20 -0
  7. copyparty/ftpd.py +6 -4
  8. copyparty/httpcli.py +166 -45
  9. copyparty/httpsrv.py +2 -2
  10. copyparty/mtag.py +2 -2
  11. copyparty/smbd.py +1 -1
  12. copyparty/svchub.py +3 -0
  13. copyparty/tftpd.py +1 -1
  14. copyparty/up2k.py +39 -15
  15. copyparty/util.py +15 -5
  16. copyparty/web/a/partyfuse.py.gz +0 -0
  17. copyparty/web/a/u2c.py.gz +0 -0
  18. copyparty/web/a/webdav-cfg.txt.gz +0 -0
  19. copyparty/web/baguettebox.js.gz +0 -0
  20. copyparty/web/browser.css.gz +0 -0
  21. copyparty/web/browser.html +3 -0
  22. copyparty/web/browser.js.gz +0 -0
  23. copyparty/web/splash.html +3 -0
  24. copyparty/web/splash.js.gz +0 -0
  25. copyparty/web/svcs.html +1 -1
  26. copyparty/web/tl/chi.js.gz +0 -0
  27. copyparty/web/tl/cze.js.gz +0 -0
  28. copyparty/web/tl/deu.js.gz +0 -0
  29. copyparty/web/tl/epo.js.gz +0 -0
  30. copyparty/web/tl/fin.js.gz +0 -0
  31. copyparty/web/tl/fra.js.gz +0 -0
  32. copyparty/web/tl/grc.js.gz +0 -0
  33. copyparty/web/tl/ita.js.gz +0 -0
  34. copyparty/web/tl/kor.js.gz +0 -0
  35. copyparty/web/tl/nld.js.gz +0 -0
  36. copyparty/web/tl/nno.js.gz +0 -0
  37. copyparty/web/tl/nor.js.gz +0 -0
  38. copyparty/web/tl/pol.js.gz +0 -0
  39. copyparty/web/tl/por.js.gz +0 -0
  40. copyparty/web/tl/rus.js.gz +0 -0
  41. copyparty/web/tl/spa.js.gz +0 -0
  42. copyparty/web/tl/swe.js.gz +0 -0
  43. copyparty/web/tl/tur.js.gz +0 -0
  44. copyparty/web/tl/ukr.js.gz +0 -0
  45. copyparty/web/up2k.js.gz +0 -0
  46. copyparty/web/util.js.gz +0 -0
  47. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/METADATA +26 -4
  48. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/RECORD +52 -33
  49. copyparty/web/a/partyfuse.py +0 -947
  50. copyparty/web/a/u2c.py +0 -1718
  51. copyparty/web/a/webdav-cfg.bat +0 -45
  52. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/WHEEL +0 -0
  53. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/entry_points.txt +0 -0
  54. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/licenses/LICENSE +0 -0
  55. {copyparty-1.19.16.dist-info → copyparty-1.19.18.dist-info}/top_level.txt +0 -0
copyparty/util.py CHANGED
@@ -129,8 +129,10 @@ try:
129
129
  import fcntl
130
130
 
131
131
  HAVE_FCNTL = True
132
+ HAVE_FICLONE = hasattr(fcntl, "FICLONE")
132
133
  except:
133
134
  HAVE_FCNTL = False
135
+ HAVE_FICLONE = False
134
136
 
135
137
  try:
136
138
  import ctypes
@@ -335,6 +337,8 @@ IMPLICATIONS = [
335
337
  ["hardlink_only", "hardlink"],
336
338
  ["hardlink", "dedup"],
337
339
  ["tftpvv", "tftpv"],
340
+ ["nodupem", "nodupe"],
341
+ ["no_dupe_m", "no_dupe"],
338
342
  ["smbw", "smb"],
339
343
  ["smb1", "smb"],
340
344
  ["smbvvv", "smbvv"],
@@ -1416,20 +1420,24 @@ def trace(*args , **kwargs ) :
1416
1420
  nuprint(msg)
1417
1421
 
1418
1422
 
1419
- def alltrace() :
1423
+ def alltrace(verbose = True) :
1420
1424
  threads = {}
1421
1425
  names = dict([(t.ident, t.name) for t in threading.enumerate()])
1422
1426
  for tid, stack in sys._current_frames().items():
1423
- name = "%s (%x)" % (names.get(tid), tid)
1427
+ if verbose:
1428
+ name = "%s (%x)" % (names.get(tid), tid)
1429
+ else:
1430
+ name = str(names.get(tid))
1424
1431
  threads[name] = stack
1425
1432
 
1426
1433
  rret = []
1427
1434
  bret = []
1435
+ np = -3 if verbose else -2
1428
1436
  for name, stack in sorted(threads.items()):
1429
1437
  ret = ["\n\n# %s" % (name,)]
1430
1438
  pad = None
1431
1439
  for fn, lno, name, line in traceback.extract_stack(stack):
1432
- fn = os.sep.join(fn.split(os.sep)[-3:])
1440
+ fn = os.sep.join(fn.split(os.sep)[np:])
1433
1441
  ret.append('File: "%s", line %d, in %s' % (fn, lno, name))
1434
1442
  if line:
1435
1443
  ret.append(" " + str(line.strip()))
@@ -3814,15 +3822,17 @@ def _runhook(
3814
3822
  "user": uname,
3815
3823
  "perms": perms,
3816
3824
  "src": src,
3817
- "txt": txt,
3818
3825
  }
3826
+ if txt:
3827
+ ja["txt"] = txt[0]
3828
+ ja["body"] = txt[1]
3819
3829
  if imp:
3820
3830
  ja["log"] = log
3821
3831
  mod = loadpy(acmd[0], False)
3822
3832
  return mod.main(ja)
3823
3833
  arg = json.dumps(ja)
3824
3834
  else:
3825
- arg = txt or ap
3835
+ arg = txt[0] if txt else ap
3826
3836
 
3827
3837
  if acmd[0].startswith("zmq:"):
3828
3838
  zi, zs = _zmq_hook(log, verbose, src, acmd[0][4:].lower(), arg, wait, sp_ka)
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -145,6 +145,9 @@
145
145
  document.documentElement.className = (STG && STG.cpp_thm) || dtheme;
146
146
  </script>
147
147
  <script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
148
+ {%- if lang != "eng" %}
149
+ <script src="{{ r }}/.cpr/tl/{{ lang }}.js?_={{ ts }}"></script>
150
+ {%- endif %}
148
151
  <script src="{{ r }}/.cpr/baguettebox.js?_={{ ts }}"></script>
149
152
  <script src="{{ r }}/.cpr/browser.js?_={{ ts }}"></script>
150
153
  <script src="{{ r }}/.cpr/up2k.js?_={{ ts }}"></script>
Binary file
copyparty/web/splash.html CHANGED
@@ -211,6 +211,9 @@ document.documentElement.className = (STG && STG.cpp_thm) || "{{ this.args.theme
211
211
 
212
212
  </script>
213
213
  <script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
214
+ {%- if lang != "eng" %}
215
+ <script src="{{ r }}/.cpr/tl/{{ lang }}.js?_={{ ts }}"></script>
216
+ {%- endif %}
214
217
  <script src="{{ r }}/.cpr/splash.js?_={{ ts }}"></script>
215
218
  {%- if js %}
216
219
  <script src="{{ js }}_={{ ts }}"></script>
Binary file
copyparty/web/svcs.html CHANGED
@@ -64,7 +64,7 @@
64
64
  <li>old version of rclone? replace all <code>=</code> with <code>&nbsp;</code> (space)</li>
65
65
  </ul>
66
66
 
67
- <p>if you want to use the native WebDAV client in windows instead (slow and buggy), first run <a href="{{ r }}/.cpr/a/webdav-cfg.bat">webdav-cfg.bat</a> to remove the 47 MiB filesize limit (also fixes latency and password login), then connect:</p>
67
+ <p>if you want to use the native WebDAV client in windows instead (slow and buggy), first run <a href="{{ r }}/.cpr/a/webdav-cfg.txt?dl=webdav-cfg.bat">webdav-cfg.bat</a> to remove the 47 MiB filesize limit (also fixes latency and password login), then connect:</p>
68
68
  <pre>
69
69
  {%- if un %}
70
70
  net use <b>w:</b> http{{ s }}://{{ ep }}/{{ rvp }}{% if accs %} <b>{{ pw }}</b> /user:{{ b_un }}{% endif %}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
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.4
2
2
  Name: copyparty
3
- Version: 1.19.16
3
+ Version: 1.19.18
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
@@ -86,6 +86,7 @@ made in Norway 🇳🇴
86
86
 
87
87
  * top
88
88
  * [quickstart](#quickstart) - just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py)** -- that's it! 🎉
89
+ * [mirrors](#mirrors) - other places to download copyparty from
89
90
  * [at home](#at-home) - make it accessible over the internet
90
91
  * [on servers](#on-servers) - you may also want these, especially on servers
91
92
  * [features](#features) - also see [comparison to similar software](./docs/versus.md)
@@ -222,7 +223,7 @@ just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/
222
223
 
223
224
  * or install through [pypi](https://pypi.org/project/copyparty/): `python3 -m pip install --user -U copyparty`
224
225
  * or if you cannot install python, you can use [copyparty.exe](#copypartyexe) instead
225
- * or install [on arch](#arch-package) ╱ [on NixOS](#nixos-module) ╱ [through nix](#nix-package)
226
+ * or install [on arch](#arch-package) / [homebrew](#homebrew-formulae) ╱ [on NixOS](#nixos-module) ╱ [through nix](#nix-package)
226
227
  * or if you are on android, [install copyparty in termux](#install-on-android)
227
228
  * or maybe an iPhone or iPad? [install in a-Shell on iOS](#install-on-iOS)
228
229
  * or maybe you have a [synology nas / dsm](./docs/synology-dsm.md)
@@ -260,6 +261,18 @@ some recommended options:
260
261
  * see [accounts and volumes](#accounts-and-volumes) (or `--help-accounts`) for the syntax and other permissions
261
262
 
262
263
 
264
+ ### mirrors
265
+
266
+ other places to download copyparty from (non-github links):
267
+
268
+ * https://copyparty.eu/ (hetzner, finland, official mirror):
269
+ * https://copyparty.eu/py = https://copyparty.eu/copyparty-sfx.py = the sfx
270
+ * https://copyparty.eu/en = https://copyparty.eu/copyparty-en.py = the english-only sfx
271
+ * https://copyparty.eu/pyz = https://copyparty.eu/copyparty.pyz = the zipapp
272
+ * https://copyparty.eu/enz = https://copyparty.eu/copyparty-en.pyz = the enterprise pyz
273
+ * https://copyparty.eu/cli = online cli helptext
274
+
275
+
263
276
  ### at home
264
277
 
265
278
  make it accessible over the internet by starting a [cloudflare quicktunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/do-more-with-tunnels/trycloudflare/) like so:
@@ -588,6 +601,9 @@ examples:
588
601
 
589
602
  if you want to grant access to all users who are logged in, the group `acct` will always contain all known users, so for example `-v /mnt/music:music:r,@acct`
590
603
 
604
+ * to do the opposite, granting access to everyone who is NOT logged in. `*,-@acct` does the trick, for example `-v /srv/welcome:welcome:r,*,-@acct`
605
+ * single users can also be subtracted from a group: `@admins,-james`
606
+
591
607
  anyone trying to bruteforce a password gets banned according to `--ban-pw`; default is 24h ban for 9 failed attempts in 1 hour
592
608
 
593
609
  and if you want to use config files instead of commandline args (good!) then here's the same examples as a configfile; save it as `foobar.conf` and use it like this: `python copyparty-sfx.py -c foobar.conf`
@@ -1558,7 +1574,12 @@ tweaking the ui
1558
1574
  * to sort in music order (album, track, artist, title) with filename as fallback, you could `--sort tags/Circle,tags/.tn,tags/Artist,tags/Title,href`
1559
1575
  * to sort by upload date, first enable showing the upload date in the listing with `-e2d -mte +.up_at` and then `--sort tags/.up_at`
1560
1576
 
1561
- see [./docs/rice](./docs/rice) for more, including how to add stuff (css/`<meta>`/...) to the html `<head>` tag, or to add your own translation
1577
+ see [./docs/rice](./docs/rice) for more, including:
1578
+ * how to [hide ui-elements](./docs/rice/README.md#hide-ui-elements)
1579
+ * [custom fonts](./docs/rice/README.md#custom-fonts)
1580
+ * [custom loading-spinner](./docs/rice/README.md#boring-loader-spinner)
1581
+ * adding stuff (css/`<meta>`/...) [to the html `<head>` tag](./docs/rice/README.md#head)
1582
+ * [adding your own translation](./docs/rice/README.md#translations)
1562
1583
 
1563
1584
 
1564
1585
  ## opengraph
@@ -3123,7 +3144,8 @@ another emergency alternative, [copyparty.pyz](https://github.com/9001/copyparty
3123
3144
  run it by doubleclicking it, or try typing `python copyparty.pyz` in your terminal/console/commandline/telex if that fails
3124
3145
 
3125
3146
  it is a python [zipapp](https://docs.python.org/3/library/zipapp.html) meaning it doesn't have to unpack its own python code anywhere to run, so if the filesystem is busted it has a better chance of getting somewhere
3126
- * but note that it currently still needs to extract the web-resources somewhere (they'll land in the default TEMP-folder of your OS)
3147
+
3148
+ > there is also [copyparty-en.pyz](https://github.com/9001/copyparty/releases/latest/download/copyparty-en.pyz), english-only and without smb support (enterprise-friendly)
3127
3149
 
3128
3150
 
3129
3151
  # install on android
@@ -1,41 +1,41 @@
1
- copyparty/__init__.py,sha256=wmO5wCR1yHdtWbYv1_8LZxLwS4W1s2OxpVYafvLHEBE,2660
2
- copyparty/__main__.py,sha256=ysSQEmxBQ40R5iZIVa9apLfR82LwkHPVtu1W4iU3hP4,147818
3
- copyparty/__version__.py,sha256=oIw4XsjXEqNflXJWZrLPYMKxBdC_Vb3EB-qU1BnCmjQ,252
4
- copyparty/authsrv.py,sha256=bs3Wa06KwyoJ5Dz_SEKkXlei1qbz_Wvc3tXwyICpf-o,134516
1
+ copyparty/__init__.py,sha256=hJUyXlxl7upqxONj_QDCAYhgNtSd9YHTdaCQt-DsEvw,3075
2
+ copyparty/__main__.py,sha256=OwUUZwfvpaOd97o_Sp-G68q3Q_XXKPjbh4D8LCUgNVc,150289
3
+ copyparty/__version__.py,sha256=JGvza0tjwt1CzfmJFfGXoXDMkFSeDpuRHCw-tDgV_rM,253
4
+ copyparty/authsrv.py,sha256=pOglyADjcWXPgPqlZeoS60GTJzH_uKmCXKPTDsoy7H4,136334
5
5
  copyparty/broker_mp.py,sha256=QdOXXvV2Xn6J0CysEqyY3GZbqxQMyWnTpnba-a5lMc0,4987
6
6
  copyparty/broker_mpw.py,sha256=LXQlmxzOvdpqP1aZoiIvWHAYUV_PoewLORLD1BGRs0g,3449
7
7
  copyparty/broker_thr.py,sha256=fjoYtpSscUA7-nMl4r1n2R7UK3J9lrvLS3rUZ-iJzKQ,1721
8
8
  copyparty/broker_util.py,sha256=oZ3dGdJXLYvmdV4KSFdUv_PGErkgU-7kgr1SIglkjCU,1663
9
9
  copyparty/cert.py,sha256=OGTUBxhqPbseG0Bd4cHD6e5T5T8JdGqp3q0KAYqX0Cc,8031
10
- copyparty/cfg.py,sha256=8sW0KXoR1zkn9IrSLpbz8SDL0pGDJ0OS_2gn311RBnc,17035
10
+ copyparty/cfg.py,sha256=MPSVOamweuBhz65UdZQ7PVIzMle8BOyWQVBZBtesoZ4,17782
11
11
  copyparty/dxml.py,sha256=VZADJS9z18LalENSvVfjk29ddnpaDQ-v8AVm_THwS1c,2607
12
12
  copyparty/fsutil.py,sha256=kGvNM9G9YLeqcQjhDGfmT8gV7fn2WU0xye9BulL4h04,6469
13
- copyparty/ftpd.py,sha256=gXErlJgWsL2rw9l6REqE61GtLa8lgIaMShm86U9s05I,18531
14
- copyparty/httpcli.py,sha256=TcnghANMegZL5XMOhVhRvFS2xu0G1YUL5mXBTaTNSoA,246916
13
+ copyparty/ftpd.py,sha256=skC-0LrG36qGFvhr1g1DDuwJLL2o1EJlrmnt71qknUM,18620
14
+ copyparty/httpcli.py,sha256=aNlTLRh6XXRVTizZLKxbGRDpsxWdcCsqmSAoy-Tli6s,251267
15
15
  copyparty/httpconn.py,sha256=IA9fdCjigawZ4kWhgvVN3nSiy5pb3W2qaE6rFqUYdq0,6943
16
- copyparty/httpsrv.py,sha256=6Al4seTbEqARBYkPwx_8YLS6qz6-oJQHwFdO1rqEgd4,19094
16
+ copyparty/httpsrv.py,sha256=0ELg4joFUkfJWTedca4l_3rbZ3G6R9JWEE91K2hymzA,19101
17
17
  copyparty/ico.py,sha256=-7QjF_jIxnPo4Vr0oUPksQ_U_Ef0HRsSPm3s71idOz8,3879
18
18
  copyparty/mdns.py,sha256=OfAms3kqolF5KFkorwwKH7ysd6_DRQzi3Ri62vTdCHA,19293
19
19
  copyparty/metrics.py,sha256=1dim0ShnsD5cfspRbeN9Mt14wOIxPRtxCZY2IScikKw,8974
20
- copyparty/mtag.py,sha256=2mTQiMQOd6465jRpvX12E6cj1djquQb4rwRbGP44ltY,23184
20
+ copyparty/mtag.py,sha256=xfo6dm769Qq9kCGcYt9vyyS6774v0NPjNSXoUq3A3tw,23184
21
21
  copyparty/multicast.py,sha256=aqiY_ufCxcJ_VHn89jmdJFz61UukjEbQmHLGS6L-6JY,12423
22
22
  copyparty/pwhash.py,sha256=58txP8GXIHOtWd__Tni8qkilHEGpOFsKIPuzjdFLc6M,4426
23
23
  copyparty/qrkode.py,sha256=dkjcHDfEdxozFVwVAY8bFFf5P0cqieYmaMdnFixeiuM,2681
24
- copyparty/smbd.py,sha256=53GsMXXsQMHbGCkbUVoeQEo_JU5pV8FEtuJCKZHa93E,14890
24
+ copyparty/smbd.py,sha256=e-IBDEVzFgSHspQjpUm2d5K58koBT109ZOPJup1yBJ0,14892
25
25
  copyparty/ssdp.py,sha256=R1Z61GZOxBMF2Sk4RTxKWMOemogmcjEWG-CvLihd45k,7023
26
26
  copyparty/star.py,sha256=tV5BbX6AiQ7N4UU8DYtSTckNYeoeey4DBqq4LjfymbY,3818
27
27
  copyparty/sutil.py,sha256=E65jAaOzHlJYnqsOKDMPVT8kALPUVexpkSStWBdItkY,3231
28
- copyparty/svchub.py,sha256=jNYXOx5EQ8nJa2c26_zoJTGW7cwHt5gqOd-UMNL7K6Q,54903
28
+ copyparty/svchub.py,sha256=Qvcicxab_Xwy3pA22PIGTM2aIqVbmhRM7YwQDJ8aLpI,54964
29
29
  copyparty/szip.py,sha256=9srQzjsTBrBadf6QMh4YRAL70rkZLevAOHqXWK5jvr8,8846
30
30
  copyparty/tcpsrv.py,sha256=xQEJsDES9cYJnXaxy1GqN_M_8rYeAKM94Fkbg9sZWRI,22305
31
- copyparty/tftpd.py,sha256=Y-RFkwjcVGVYI8aHfvoir6eUz3Ai5uI6zax-M523C-o,14498
31
+ copyparty/tftpd.py,sha256=TA5-8b_JAmSWuN9YiHiRVBw_4Wusnr2ENidr06Uyej8,14500
32
32
  copyparty/th_cli.py,sha256=n3MMbnN7HTVSBHkTI2qLIjgwVvHkGsfTW7-aPJ-2o4s,5545
33
33
  copyparty/th_srv.py,sha256=r4I8PaMfg_eOf7Zo3GZpT22U-DsYnQO_R0fiZjB9R38,38573
34
34
  copyparty/u2idx.py,sha256=9Fcm8cDgLU4DdrH_2Q-lHAbMz4VfzLnANS0s4QgWZzE,14890
35
- copyparty/up2k.py,sha256=3AWXznWPCQVz15YUlciLu5IEmZFvDFwyLTaCyBccn6c,184191
36
- copyparty/util.py,sha256=3pORB5_fY0cTTJfy75HDYRZ620go_OPsXjPhXdYIkM4,110322
35
+ copyparty/up2k.py,sha256=-Cqg7g6iAshI0k-89-1yVOmFhbFNYHnOb83L6z9mFvc,185204
36
+ copyparty/util.py,sha256=b_f1Ff2K4hfjOB6uHyJ3gyr8xX6S2wCA_Vxy4mTaaVE,110639
37
37
  copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- copyparty/bos/bos.py,sha256=aGnph4sLIXe7-SFLo5qo1V67Ab1ZtgiUNbAN8EnHvkA,3371
38
+ copyparty/bos/bos.py,sha256=5Cp0Ob5XnCt8Zmr56QLQmsc9rkdz8Y1UBeB0026TqoE,3388
39
39
  copyparty/bos/path.py,sha256=yEjCq2ki9CvxA5sCT8pS0keEXwugs0ZeUyUhdBziOCI,777
40
40
  copyparty/res/COPYING.txt,sha256=Zfcbw5KN_KJ7PQeLgoXwyWcAXXb0gc41iQiHcnGSNxg,19902
41
41
  copyparty/res/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -55,10 +55,10 @@ copyparty/stolen/ifaddr/__init__.py,sha256=vpREjAyPubr5s1NJi91icXV3q1o4DrKAvHABw
55
55
  copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUuTOrU,2626
56
56
  copyparty/stolen/ifaddr/_shared.py,sha256=uNC4SdEIgdSLKvuUzsf1aM-H1Xrc_9mpLoOT43YukGs,6206
57
57
  copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
58
- copyparty/web/baguettebox.js.gz,sha256=7tJpm9DOxV1HWlRLARI2C8fcZX5IRCLS6vPaqRzAbzM,8714
59
- copyparty/web/browser.css.gz,sha256=MqGQ_VTy7zbXiZ-JoeSTdH7awif-ro7YsRxAaFJW3jM,15841
60
- copyparty/web/browser.html,sha256=EdHq96FJd3GSAvaTlLR8Icflmqby8U_GK1XGoOcGK8c,4760
61
- copyparty/web/browser.js.gz,sha256=3vaGeVUifCfr1CDvXluEgveWMN7pWOHaTwCd-PRGAjw,343024
58
+ copyparty/web/baguettebox.js.gz,sha256=B0gNOVblZWC3dcOektvuqT2jfVK99WY6ThRo9t1iu_A,9499
59
+ copyparty/web/browser.css.gz,sha256=QtHhYhn2MvMUPIL0JSlYHELpznO6DV53Oz41TVMvf20,15886
60
+ copyparty/web/browser.html,sha256=IxHHqvGMlrG8B4hYkoIaH2cX6qCOCCZ6TQbAx9oB8KY,4865
61
+ copyparty/web/browser.js.gz,sha256=vfurFx7CklzzYDs_GDJ_AXkTJHN-O46jO7gx4qr7WfI,72501
62
62
  copyparty/web/browser2.html,sha256=NRUZ08GH-e2YcGXcoz0UjYg6JIVF42u4IMX4HHwWTmg,1587
63
63
  copyparty/web/cf.html,sha256=lJThtNFNAQT1ClCHHlivAkDGE0LutedwopXD62Z8Nys,589
64
64
  copyparty/web/dbg-audio.js.gz,sha256=fNf4wGVGdz5fDtn-97ks3XPIglTKnTKiYo4Dk2m-NoA,688
@@ -81,18 +81,18 @@ copyparty/web/shares.css.gz,sha256=ChgHt-2dPgvPCpwClNeijX39OWJIbwj7NBIZXLLvaT0,5
81
81
  copyparty/web/shares.html,sha256=SWgcgiAXEtV6xFqYDUlgg6WmrjedmgP3hCaVksNk1y4,2582
82
82
  copyparty/web/shares.js.gz,sha256=LGgFdYhtTwBp96x6CtWZpMWrGaZW7vn5LYvIhPQqm8g,942
83
83
  copyparty/web/splash.css.gz,sha256=Ez7MRPtPzYEiSsLsI7S9o8_jGFQxUFvK2j92ow5AoDg,1155
84
- copyparty/web/splash.html,sha256=7Q9rLKJalKWDNmvG60XXlyrUP7RqCJ5IkHgyCU5lPfQ,7476
85
- copyparty/web/splash.js.gz,sha256=xw5NnAsEthN_Yo1KGjlQxpBtw2mPUerVhzvYIBHKXtA,17721
86
- copyparty/web/svcs.html,sha256=eBT6zq130hLHcD7OzYZD4ozFEd_bmU1-hTqDTt09Xs8,17576
84
+ copyparty/web/splash.html,sha256=NOYmsKmPpzJN0UbavTEq5Pfb9993URrOC9rBl6EJOBY,7578
85
+ copyparty/web/splash.js.gz,sha256=QPvYszEB_HAR98nb1pnEYnuuz23zHjH3wUTJGaa_Myo,1182
86
+ copyparty/web/svcs.html,sha256=V5NmGwzO3KKmeigu2BSx78Ukv6aqAGznJZhbHU4FsM0,17594
87
87
  copyparty/web/svcs.js.gz,sha256=DapO-UcJYln4VPyZ6Pwi0Lzhlyx0Hul7y7E2ephu34c,971
88
88
  copyparty/web/ui.css.gz,sha256=Txx36dDbFI7_9I2LPUO40nCFnxLFKVpdkBsHFwI7JoE,2848
89
- copyparty/web/up2k.js.gz,sha256=3-_qOof3UR00_jVDxTGpQFv-DH3gfPS8k1QByHZtd14,25035
90
- copyparty/web/util.js.gz,sha256=UYOO3QCEs7qKeHcbxilQx-g_Q6CNGBHAai5bvZOR0dY,16321
89
+ copyparty/web/up2k.js.gz,sha256=BP3SqLYK0yXcwIwxEDDec-MDs_wpku8BT9dbpCP-V-w,25169
90
+ copyparty/web/util.js.gz,sha256=-GTwa7gd_Qs4qhePihP23JeSr1gBjx0GH6ix904SC4k,16391
91
91
  copyparty/web/w.hash.js.gz,sha256=rI-78PyXCdVjOpULbD9raBRyxxaPls5OjR7wonzXZPE,1193
92
92
  copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- copyparty/web/a/partyfuse.py,sha256=QxBoe0iu4LTedmxWdIsuBUlwdxQ7zQh9LAFtjAFcPpo,28206
94
- copyparty/web/a/u2c.py,sha256=F78m5b7EPODJd1LgsAxWrwj3v_4z1hGsU53UKy-wCYA,53378
95
- copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
93
+ copyparty/web/a/partyfuse.py.gz,sha256=KsJ6UremoVn1OZvkzpHFO_6DdqLEyLRyvgJZzmogCog,7951
94
+ copyparty/web/a/u2c.py.gz,sha256=Tnr6DeROV4A4jOOIRNdRx9Gpr2TAIXQ6rEPQpq9BmF4,14366
95
+ copyparty/web/a/webdav-cfg.txt.gz,sha256=4fgQ587uE3s-U07MrybTPqlfVK0IBIHxpvBQB_5xuKU,720
96
96
  copyparty/web/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  copyparty/web/deps/busy.mp3.gz,sha256=ySTZiSMbGLJLioVUzUR2eEVemZQ-ACSgawJmw7lFvms,106
98
98
  copyparty/web/deps/easymde.css.gz,sha256=s4eN1eVggiAyuK_LZjvHPTBFizw7TRuMU8DvMwB9_aA,3053
@@ -107,9 +107,28 @@ copyparty/web/deps/prismd.css.gz,sha256=VPKuZhPmVyhTKHo2xN6IBX-C2A8Eo313vIPxQ2Hx
107
107
  copyparty/web/deps/scp.woff2,sha256=mmjmsoLDBPKa5VHcEdxZiJcDR1S1TOvCjIg5Cf1iL0s,8684
108
108
  copyparty/web/deps/sha512.ac.js.gz,sha256=OLk7EjA5e-DtJGlV0IQbvokpmoyE5v7djezx9kZBabE,7046
109
109
  copyparty/web/deps/sha512.hw.js.gz,sha256=UAed2_ocklZCnIzcSYz2h4P1ycztlCLj-ewsRTud2lU,7939
110
- copyparty-1.19.16.dist-info/licenses/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
111
- copyparty-1.19.16.dist-info/METADATA,sha256=4YNU_PlVT3alzEpmP-iPvDTryxv9imesLQfF57DnxJM,181533
112
- copyparty-1.19.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
113
- copyparty-1.19.16.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
114
- copyparty-1.19.16.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
115
- copyparty-1.19.16.dist-info/RECORD,,
110
+ copyparty/web/tl/chi.js.gz,sha256=TMOdOsT5e6g5JkJSNfxMBj8j9Lcgp5CPAPSU_TBrWI4,14686
111
+ copyparty/web/tl/cze.js.gz,sha256=tWbPL2LyQj95z1THu0oIhKZT0xDW3nC3QqqyBUsSmEo,15424
112
+ copyparty/web/tl/deu.js.gz,sha256=Xw-PejKnh8VNEMkS9yh7FUgZYn_pj7G9iqgWlhpLbPM,15567
113
+ copyparty/web/tl/epo.js.gz,sha256=_hVzbnd2EqZV8LIS5RPB1web7Y2-tWFPI9WmmTx-IJQ,14216
114
+ copyparty/web/tl/fin.js.gz,sha256=7SUK-xUwBe8aq49gPxdEX2GbjNCVzN4v_rJC7zZHgac,15168
115
+ copyparty/web/tl/fra.js.gz,sha256=9Jhn3878w-7BiMI9fRqZDJcWjs-8DJuLCza4LTC9bOU,15825
116
+ copyparty/web/tl/grc.js.gz,sha256=Q6vsE2hX8O7hv05AIjRXI46ozgHvsuifcz9S3Pse-e0,17752
117
+ copyparty/web/tl/ita.js.gz,sha256=IYjg4KqMayWSVr_jUaprRHf93Vvmpi64ZgGTaoXbisY,14661
118
+ copyparty/web/tl/kor.js.gz,sha256=XWlZvsX1nDVA_s-9vZXJh5gZpiScu4vcRkudmM0vXvg,15326
119
+ copyparty/web/tl/nld.js.gz,sha256=6d9tDZDK44IpUiEQqU7XLrzv4fKqakOBQzuoh-eyHdI,15430
120
+ copyparty/web/tl/nno.js.gz,sha256=i-bzHEOBfqyRV9fT5UmSZKZfNX_7XkU66E7mkBd-M00,14817
121
+ copyparty/web/tl/nor.js.gz,sha256=RADjEOWqkzm7JSZbGMZhoXhbw21ks8Df1DDPBe_f2Io,14598
122
+ copyparty/web/tl/pol.js.gz,sha256=IIhRwrdmJ29HWCQXO0aLQKT7K4Tql4KJnRw5rOG7Nx4,15694
123
+ copyparty/web/tl/por.js.gz,sha256=rwBCgtgdL24r-oNCPyODhA0ldv0dJnLTg273YHEDI5E,14886
124
+ copyparty/web/tl/rus.js.gz,sha256=SoH7G1VcAUnbv-yhYJB1x-ZSRiHCwwZ-xQ7ImykryaM,16909
125
+ copyparty/web/tl/spa.js.gz,sha256=pEqdC_qfbF1JNJQg5UX7bj6XXVZoLWzWCLkeT_oVNFk,14956
126
+ copyparty/web/tl/swe.js.gz,sha256=JAz_p2ceHLxsu-lBfc3zcukszbnCDkcvE4IU4nzW2Kk,14393
127
+ copyparty/web/tl/tur.js.gz,sha256=yOgKEuZ8zpGJo7E-wPXIKjwVcQMAoDLDiJow_B3yomo,14977
128
+ copyparty/web/tl/ukr.js.gz,sha256=3ZUR27PBTI_QyhEcoX0yo6_KawvehTRzqbJ0q1pc_bo,17243
129
+ copyparty-1.19.18.dist-info/licenses/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
130
+ copyparty-1.19.18.dist-info/METADATA,sha256=Bk56Pc2lOPYT7tFd_v93D3c-qyrbbdB9MailgD1LdEM,182680
131
+ copyparty-1.19.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
132
+ copyparty-1.19.18.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
133
+ copyparty-1.19.18.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
134
+ copyparty-1.19.18.dist-info/RECORD,,