copyparty 1.10.2__py3-none-any.whl → 1.11.1__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 (45) hide show
  1. copyparty/__main__.py +16 -6
  2. copyparty/__version__.py +3 -3
  3. copyparty/authsrv.py +365 -66
  4. copyparty/cfg.py +3 -0
  5. copyparty/ftpd.py +2 -2
  6. copyparty/httpcli.py +113 -48
  7. copyparty/httpconn.py +4 -1
  8. copyparty/httpsrv.py +8 -3
  9. copyparty/metrics.py +3 -0
  10. copyparty/multicast.py +1 -1
  11. copyparty/smbd.py +1 -1
  12. copyparty/svchub.py +55 -14
  13. copyparty/tftpd.py +11 -9
  14. copyparty/up2k.py +143 -49
  15. copyparty/util.py +52 -8
  16. copyparty/web/baguettebox.js.gz +0 -0
  17. copyparty/web/browser.css.gz +0 -0
  18. copyparty/web/browser.html +1 -1
  19. copyparty/web/browser.js.gz +0 -0
  20. copyparty/web/browser2.html +1 -1
  21. copyparty/web/deps/easymde.css.gz +0 -0
  22. copyparty/web/deps/easymde.js.gz +0 -0
  23. copyparty/web/md.css.gz +0 -0
  24. copyparty/web/md.html +1 -1
  25. copyparty/web/md.js.gz +0 -0
  26. copyparty/web/md2.css.gz +0 -0
  27. copyparty/web/md2.js.gz +0 -0
  28. copyparty/web/mde.css.gz +0 -0
  29. copyparty/web/mde.html +1 -1
  30. copyparty/web/mde.js.gz +0 -0
  31. copyparty/web/msg.css.gz +0 -0
  32. copyparty/web/msg.html +1 -1
  33. copyparty/web/splash.css.gz +0 -0
  34. copyparty/web/splash.html +4 -2
  35. copyparty/web/splash.js.gz +0 -0
  36. copyparty/web/svcs.html +1 -1
  37. copyparty/web/ui.css.gz +0 -0
  38. copyparty/web/up2k.js.gz +0 -0
  39. copyparty/web/util.js.gz +0 -0
  40. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/METADATA +62 -20
  41. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/RECORD +45 -43
  42. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/WHEEL +1 -1
  43. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/LICENSE +0 -0
  44. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/entry_points.txt +0 -0
  45. {copyparty-1.10.2.dist-info → copyparty-1.11.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: copyparty
3
- Version: 1.10.2
3
+ Version: 1.11.1
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
@@ -46,7 +46,7 @@ Requires-Dist: pyopenssl ; extra == 'ftps'
46
46
  Provides-Extra: pwhash
47
47
  Requires-Dist: argon2-cffi ; extra == 'pwhash'
48
48
  Provides-Extra: tftpd
49
- Requires-Dist: partftpy >=0.3.0 ; extra == 'tftpd'
49
+ Requires-Dist: partftpy >=0.3.1 ; extra == 'tftpd'
50
50
  Provides-Extra: thumbnails
51
51
  Requires-Dist: Pillow ; extra == 'thumbnails'
52
52
  Provides-Extra: thumbnails2
@@ -124,14 +124,16 @@ turn almost any device into a file server with resumable uploads/downloads using
124
124
  * [upload events](#upload-events) - the older, more powerful approach ([examples](./bin/mtag/))
125
125
  * [handlers](#handlers) - redefine behavior with plugins ([examples](./bin/handlers/))
126
126
  * [identity providers](#identity-providers) - replace copyparty passwords with oauth and such
127
+ * [using the cloud as storage](#using-the-cloud-as-storage) - connecting to an aws s3 bucket and similar
127
128
  * [hiding from google](#hiding-from-google) - tell search engines you dont wanna be indexed
128
129
  * [themes](#themes)
129
130
  * [complete examples](#complete-examples)
130
131
  * [reverse-proxy](#reverse-proxy) - running copyparty next to other websites
132
+ * [real-ip](#real-ip) - teaching copyparty how to see client IPs
131
133
  * [prometheus](#prometheus) - metrics/stats can be enabled
132
134
  * [packages](#packages) - the party might be closer than you think
133
135
  * [arch package](#arch-package) - now [available on aur](https://aur.archlinux.org/packages/copyparty) maintained by [@icxes](https://github.com/icxes)
134
- * [fedora package](#fedora-package) - currently **NOT** available on [copr-pypi](https://copr.fedorainfracloud.org/coprs/g/copr/PyPI/)
136
+ * [fedora package](#fedora-package) - does not exist yet
135
137
  * [nix package](#nix-package) - `nix profile install github:9001/copyparty`
136
138
  * [nixos module](#nixos-module)
137
139
  * [browser support](#browser-support) - TLDR: yes
@@ -158,7 +160,7 @@ turn almost any device into a file server with resumable uploads/downloads using
158
160
  * [sfx](#sfx) - the self-contained "binary"
159
161
  * [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+)
160
162
  * [install on android](#install-on-android)
161
- * [reporting bugs](#reporting-bugs) - ideas for context to include in bug reports
163
+ * [reporting bugs](#reporting-bugs) - ideas for context to include, and where to submit them
162
164
  * [devnotes](#devnotes) - for build instructions etc, see [./docs/devnotes.md](./docs/devnotes.md)
163
165
 
164
166
 
@@ -340,6 +342,9 @@ roughly sorted by chance of encounter
340
342
  * cannot index non-ascii filenames with `-e2d`
341
343
  * cannot handle filenames with mojibake
342
344
 
345
+ if you have a new exciting bug to share, see [reporting bugs](#reporting-bugs)
346
+
347
+
343
348
  ## not my bugs
344
349
 
345
350
  same order here too
@@ -395,9 +400,24 @@ upgrade notes
395
400
  * yes, using the [`g` permission](#accounts-and-volumes), see the examples there
396
401
  * you can also do this with linux filesystem permissions; `chmod 111 music` will make it possible to access files and folders inside the `music` folder but not list the immediate contents -- also works with other software, not just copyparty
397
402
 
403
+ * can I link someone to a password-protected volume/file by including the password in the URL?
404
+ * yes, by adding `?pw=hunter2` to the end; replace `?` with `&` if there are parameters in the URL already, meaning it contains a `?` near the end
405
+
406
+ * how do I stop `.hist` folders from appearing everywhere on my HDD?
407
+ * by default, a `.hist` folder is created inside each volume for the filesystem index, thumbnails, audio transcodes, and markdown document history. Use the `--hist` global-option or the `hist` volflag to move it somewhere else; see [database location](#database-location)
408
+
398
409
  * can I make copyparty download a file to my server if I give it a URL?
399
410
  * yes, using [hooks](https://github.com/9001/copyparty/blob/hovudstraum/bin/hooks/wget.py)
400
411
 
412
+ * firefox refuses to connect over https, saying "Secure Connection Failed" or "SEC_ERROR_BAD_SIGNATURE", but the usual button to "Accept the Risk and Continue" is not shown
413
+ * firefox has corrupted its certstore; fix this by exiting firefox, then find and delete the file named `cert9.db` somewhere in your firefox profile folder
414
+
415
+ * the server keeps saying `thank you for playing` when I try to access the website
416
+ * you've gotten banned for malicious traffic! if this happens by mistake, and you're running a reverse-proxy and/or something like cloudflare, see [real-ip](#real-ip) on how to fix this
417
+
418
+ * copyparty seems to think I am using http, even though the URL is https
419
+ * your reverse-proxy is not sending the `X-Forwarded-Proto: https` header; this could be because your reverse-proxy itself is confused. Ensure that none of the intermediates (such as cloudflare) are terminating https before the traffic hits your entrypoint
420
+
401
421
  * i want to learn python and/or programming and am considering looking at the copyparty source code in that occasion
402
422
  * ```bash
403
423
  _| _ __ _ _|_
@@ -635,7 +655,7 @@ this initiates an upload using `up2k`; there are two uploaders available:
635
655
  * `[🎈] bup`, the basic uploader, supports almost every browser since netscape 4.0
636
656
  * `[🚀] up2k`, the good / fancy one
637
657
 
638
- NB: you can undo/delete your own uploads with `[🧯]` [unpost](#unpost)
658
+ NB: you can undo/delete your own uploads with `[🧯]` [unpost](#unpost) (and this is also where you abort unfinished uploads, but you have to refresh the page first)
639
659
 
640
660
  up2k has several advantages:
641
661
  * you can drop folders into the browser (files are added recursively)
@@ -1306,11 +1326,24 @@ replace 404 and 403 errors with something completely different (that's it for no
1306
1326
 
1307
1327
  replace copyparty passwords with oauth and such
1308
1328
 
1309
- work is [ongoing](https://github.com/9001/copyparty/issues/62) to support authenticating / authorizing users based on a separate authentication proxy, which makes it possible to support oauth, single-sign-on, etc.
1329
+ you can disable the built-in password-based login sysem, and instead replace it with a separate piece of software (an identity provider) which will then handle authenticating / authorizing of users; this makes it possible to login with passkeys / fido2 / webauthn / yubikey / ldap / active directory / oauth / many other single-sign-on contraptions
1330
+
1331
+ a popular choice is [Authelia](https://www.authelia.com/) (config-file based), another one is [authentik](https://goauthentik.io/) (GUI-based, more complex)
1332
+
1333
+ there is a [docker-compose example](./docs/examples/docker/idp-authelia-traefik) which is hopefully a good starting point (alternatively see [./docs/idp.md](./docs/idp.md) if you're the DIY type)
1334
+
1335
+ a more complete example of the copyparty configuration options [look like this](./docs/examples/docker/idp/copyparty.conf)
1336
+
1337
+
1338
+ ## using the cloud as storage
1339
+
1340
+ connecting to an aws s3 bucket and similar
1341
+
1342
+ there is no built-in support for this, but you can use FUSE-software such as [rclone](https://rclone.org/) / [geesefs](https://github.com/yandex-cloud/geesefs) / [JuiceFS](https://juicefs.com/en/) to first mount your cloud storage as a local disk, and then let copyparty use (a folder in) that disk as a volume
1310
1343
 
1311
- it is currently possible to specify `--idp-h-usr x-username`; copyparty will then skip password validation and blindly trust the username specified in the `X-Username` request header
1344
+ you may experience poor upload performance this way, but that can sometimes be fixed by specifying the volflag `sparse` to force the use of sparse files; this has improved the upload speeds from `1.5 MiB/s` to over `80 MiB/s` in one case, but note that you are also more likely to discover funny bugs in your FUSE software this way, so buckle up
1312
1345
 
1313
- the remaining stuff (accepting user groups through another header, creating volumes on the fly) are still to-do; configuration will probably [look like this](./docs/examples/docker/idp/copyparty.conf)
1346
+ someone has also tested geesefs in combination with [gocryptfs](https://nuetzlich.net/gocryptfs/) with surprisingly good results, getting 60 MiB/s upload speeds on a gbit line, but JuiceFS won with 80 MiB/s using its built-in encryption
1314
1347
 
1315
1348
 
1316
1349
  ## hiding from google
@@ -1346,6 +1379,8 @@ the classname of the HTML tag is set according to the selected theme, which is u
1346
1379
 
1347
1380
  see the top of [./copyparty/web/browser.css](./copyparty/web/browser.css) where the color variables are set, and there's layout-specific stuff near the bottom
1348
1381
 
1382
+ if you want to change the fonts, see [./docs/rice/](./docs/rice/)
1383
+
1349
1384
 
1350
1385
  ## complete examples
1351
1386
 
@@ -1406,6 +1441,15 @@ example webserver configs:
1406
1441
  * [apache2 config](contrib/apache/copyparty.conf) -- location-based
1407
1442
 
1408
1443
 
1444
+ ### real-ip
1445
+
1446
+ teaching copyparty how to see client IPs when running behind a reverse-proxy, or a WAF, or another protection service such as cloudflare
1447
+
1448
+ if you (and maybe everybody else) keep getting a message that says `thank you for playing`, then you've gotten banned for malicious traffic. This ban applies to the IP address that copyparty *thinks* identifies the shady client -- so, depending on your setup, you might have to tell copyparty where to find the correct IP
1449
+
1450
+ for most common setups, there should be a helpful message in the server-log explaining what to do, but see [docs/xff.md](docs/xff.md) if you want to learn more, including a quick hack to **just make it work** (which is **not** recommended, but hey...)
1451
+
1452
+
1409
1453
  ## prometheus
1410
1454
 
1411
1455
  metrics/stats can be enabled at URL `/.cpr/metrics` for grafana / prometheus / etc (openmetrics 1.0.0)
@@ -1485,17 +1529,7 @@ it comes with a [systemd service](./contrib/package/arch/copyparty.service) and
1485
1529
 
1486
1530
  ## fedora package
1487
1531
 
1488
- currently **NOT** available on [copr-pypi](https://copr.fedorainfracloud.org/coprs/g/copr/PyPI/) , fedora is having issues with their build servers and won't be fixed for several months
1489
-
1490
- if you previously installed copyparty from copr, you may run one of the following commands to upgrade to a more recent version:
1491
-
1492
- ```bash
1493
- dnf install https://ocv.me/copyparty/fedora/37/python3-copyparty.fc37.noarch.rpm
1494
- dnf install https://ocv.me/copyparty/fedora/38/python3-copyparty.fc38.noarch.rpm
1495
- dnf install https://ocv.me/copyparty/fedora/39/python3-copyparty.fc39.noarch.rpm
1496
- ```
1497
-
1498
- to run copyparty as a service, use the [systemd service scripts](https://github.com/9001/copyparty/tree/hovudstraum/contrib/systemd), just replace `/usr/bin/python3 /usr/local/bin/copyparty-sfx.py` with `/usr/bin/copyparty`
1532
+ does not exist yet; using the [copr-pypi](https://copr.fedorainfracloud.org/coprs/g/copr/PyPI/) builds is **NOT recommended** because updates can be delayed by [several months](https://github.com/fedora-copr/copr/issues/3056)
1499
1533
 
1500
1534
 
1501
1535
  ## nix package
@@ -1997,7 +2031,12 @@ if you want thumbnails (photos+videos) and you're okay with spending another 132
1997
2031
 
1998
2032
  # reporting bugs
1999
2033
 
2000
- ideas for context to include in bug reports
2034
+ ideas for context to include, and where to submit them
2035
+
2036
+ please get in touch using any of the following URLs:
2037
+ * https://github.com/9001/copyparty/ **(primary)**
2038
+ * https://gitlab.com/9001/copyparty/ *(mirror)*
2039
+ * https://codeberg.org/9001/copyparty *(mirror)*
2001
2040
 
2002
2041
  in general, commandline arguments (and config file if any)
2003
2042
 
@@ -2012,3 +2051,6 @@ if there's a wall of base64 in the log (thread stacks) then please include that,
2012
2051
  # devnotes
2013
2052
 
2014
2053
  for build instructions etc, see [./docs/devnotes.md](./docs/devnotes.md)
2054
+
2055
+ see [./docs/TODO.md](./docs/TODO.md) for planned features / fixes / changes
2056
+
@@ -1,38 +1,38 @@
1
1
  copyparty/__init__.py,sha256=34xcU8AoRRQscgVSx2gC6DeUyu7ZLmEVlXjttdQgXnI,1752
2
- copyparty/__main__.py,sha256=wK7Fop32aq7LUKmBCQcp3A6bJ2abdpj3em9IigFyniI,91595
3
- copyparty/__version__.py,sha256=z7G2R3a_jwf2rpKu1PpKRwOFSv86M6MOa1nRTzu_t9I,246
4
- copyparty/authsrv.py,sha256=BzJwPbYhTr9etW50DMY0UXRHBdNOKdnSdTuZ4qXlNvs,73470
2
+ copyparty/__main__.py,sha256=g7Bc8ULfcXm-VdklVrnhaFP8bXXQrO4dgN5z7joEnEI,93648
3
+ copyparty/__version__.py,sha256=t7CMwcd2WnYMbd2jiG9kC5xZ3t08Ojcs-zat5rSuRDw,263
4
+ copyparty/authsrv.py,sha256=cP9egYM142f4x4WiwssF8YVFkOlARy4hvQjibzhcD0I,83737
5
5
  copyparty/broker_mp.py,sha256=4mEZC5tiHUazJMgYuwInNo2dxS7jrbzrGb1qs2UBt9k,3948
6
6
  copyparty/broker_mpw.py,sha256=4ZI7bJYOwUibeAJVv9_FPGNmHrr9eOtkj_Kz0JEppTU,3197
7
7
  copyparty/broker_thr.py,sha256=eKr--HJGig5zqvNGwH9UoBG9Nvi9mT2axrRmJwknd0s,1759
8
8
  copyparty/broker_util.py,sha256=CnX_LAhQQqouONcDLtVkVlcBX3Z6pWuKDQDmmbHGEg4,1489
9
9
  copyparty/cert.py,sha256=bt1n-629-Gtez1C_CroXq53gXEmUsVjkTbkQ6Gu2Zfc,7323
10
- copyparty/cfg.py,sha256=XMqgS5JMcTe4vCmAnUkSXrKBPTzn0zHYsBenXcZNK_s,9000
10
+ copyparty/cfg.py,sha256=CQKSyixyhxeM2narwbOfjUsjn0DZ_VYXbdMSa_tv4gw,9189
11
11
  copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
12
12
  copyparty/fsutil.py,sha256=c4fTvmclKbVABNsjU4rGddsjCgRwi9YExAyo-06ATc8,3932
13
- copyparty/ftpd.py,sha256=BqxH4j-mLrjRvxW3Lnz-qrR4_ETv3OnmIRNifSf_3Fk,15939
14
- copyparty/httpcli.py,sha256=YoumInsa3mzoJXQHjznsPpDYuKuzx0DoLXgx6vy8Oew,142323
15
- copyparty/httpconn.py,sha256=XyFv6yIsyq0InrqulwovsmAcqziEq_O2zsI41K8bJWs,6698
16
- copyparty/httpsrv.py,sha256=q0z4RuoTMiZz_QbUSCFikIDbKHm9_JT1uGTGuDvOdO0,16218
13
+ copyparty/ftpd.py,sha256=sNfoGZnO7KxnIovbnSBOt8jiPecUtRK-_izrlZjAtt8,15944
14
+ copyparty/httpcli.py,sha256=AVjbUNDAti3OMDDdsEEYeSV25swuy-jQrbuSNc7vbX4,145586
15
+ copyparty/httpconn.py,sha256=gLOURB2Nb1w6n2ihGBspEnzEfUND9Osa4klzYuAbgzI,6829
16
+ copyparty/httpsrv.py,sha256=af6LdApfj-Q4mWC5mVQjhnyrFzNy8_bXK3VUe0xKkeY,16368
17
17
  copyparty/ico.py,sha256=AYHdK6NlYBfBgafVYXia3jHQ9XHZdUL1D8WftLMAzIU,3545
18
18
  copyparty/mdns.py,sha256=CcraggbDxTT1ntYzD8Ebgqmw5Q4HkyZcfh5ymtCV_ak,17469
19
- copyparty/metrics.py,sha256=glBeNYGWMF4zEK9__aKks7qKnSwwJuWAzPx6ljRYt4k,8754
19
+ copyparty/metrics.py,sha256=OqXFkAuoVhayGAGd_Sv-OQ9SVmdXYV8M7CxitkzE3lo,8854
20
20
  copyparty/mtag.py,sha256=OZM6cVJafOe_LZ4bPJzVJbORA_omzewwJh-N11u3nak,16855
21
- copyparty/multicast.py,sha256=KZVNNtNW6uFHY7z9zZ94RWL3_3xZ4hJCUC55rWRtc_0,12285
21
+ copyparty/multicast.py,sha256=4N_NQVIrGSF5ZNWYdpAfYHoZefkSowN3w1GfWAxhTL0,12291
22
22
  copyparty/pwhash.py,sha256=D82y8emnwpHDQq7Cr8lNuppHshbNA9ptcR2XsGOOk6E,3937
23
- copyparty/smbd.py,sha256=yuCB8xstCiAp7zwQvQ5LO44DSUh-hXUGcftRGbm5mv4,14047
23
+ copyparty/smbd.py,sha256=iACj5pbiKsX7bVu20BK3ebPQLB_qA7WS2l-ytrSfT3Y,14054
24
24
  copyparty/ssdp.py,sha256=H6ZftXttydcnBxcg2-Prm4P-XiybgT3xiJRUXU1pbrE,6343
25
25
  copyparty/star.py,sha256=IqKPEjSxMoQsPQaIPhixMZN9nNyO4oMAJq_PzmZXhMM,3748
26
26
  copyparty/sutil.py,sha256=dZhDAzVAp02i6YmGqcedy4LaYVffnJCSp3F6WEwfz7c,2967
27
- copyparty/svchub.py,sha256=LyhbfI4pYga-X7VSsbyzx3xM5kn2e4Z6bSObU4cRU0w,29036
27
+ copyparty/svchub.py,sha256=aG8T0ZoW12sswYOoFYvlgLVtDRLAjsyC7WP3lC2lDzU,30458
28
28
  copyparty/szip.py,sha256=SJg5nzN_5oaIsIYXlRvcLHVTqngLAOPfe4_WVsuhSkw,8520
29
29
  copyparty/tcpsrv.py,sha256=2LGUqOBAIrsmL-1pwrbsPXR71gutHccqRp-hjzt91Us,17289
30
- copyparty/tftpd.py,sha256=yM_byDfFI2c7TwgDbTtw9xt3LWJ3PBBHfIsMsB6MDow,13028
30
+ copyparty/tftpd.py,sha256=5ONxspbOyyaBCUmo1GCfYILRVc2B3uHYGIuHM7HreXE,13104
31
31
  copyparty/th_cli.py,sha256=e2FF-wVY4qcwAO8hrtTlwn3EJIOHyZt5sYhl0N8eudk,4378
32
32
  copyparty/th_srv.py,sha256=HBw6mq0RrJkAJupJpwFAjCMNS67Y9hda6sv7gFSzRwk,25764
33
33
  copyparty/u2idx.py,sha256=JBEqKX1ZM8GIvQrDYb5VQ_5QiFNFsjWF6H9drHlPVEY,12709
34
- copyparty/up2k.py,sha256=zWPrcddZyxwy2rEfjJEOm-bQgt6ydzDSSOtVcYCnWYA,137144
35
- copyparty/util.py,sha256=9WQ9itm24ZP1n5qB9lsWpiQqSB2IKdHPxl3y6RIgQAM,79683
34
+ copyparty/up2k.py,sha256=NhOq-4IzwLDAWAzTGG2lUX3gKDg8HvPjvE7U_dIXVfw,140718
35
+ copyparty/util.py,sha256=62c16lzJ-tTn13Q8v231Vqf53riNrWKo_06RP0sNCTI,80901
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
@@ -54,31 +54,31 @@ copyparty/stolen/ifaddr/__init__.py,sha256=_BUN7eM5oD2Jgib6B22tEFSb20fD9urNPPaAl
54
54
  copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUuTOrU,2626
55
55
  copyparty/stolen/ifaddr/_shared.py,sha256=cJACl8cOxQ-HSYphZTzKMAjAx_TAFyJwUPjfD102Xqw,6111
56
56
  copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
57
- copyparty/web/baguettebox.js.gz,sha256=BxwvSjky72hZprWofueRrlskiIeRrgGERUpKiZXQ5C8,7671
58
- copyparty/web/browser.css.gz,sha256=_C5z5xYMkKGnwT_y_dmQzbQBkXbYn6h0KWGdiMv_7yQ,11380
59
- copyparty/web/browser.html,sha256=72E2Q6grz_MtkmFVIXE_0rOVzliyQo-XwuawkJsB-qY,4873
60
- copyparty/web/browser.js.gz,sha256=NdOb9VBrO_ETpDt6LBhoUPPhiehYEckDCzVZndfpmG0,66579
61
- copyparty/web/browser2.html,sha256=AtGRGtb_rsyu-gWXEuXDMg9WqbjJFcDDJXel3ScG-4c,1605
57
+ copyparty/web/baguettebox.js.gz,sha256=63fwdFjmxwu4uLxfex7S6XHSoBBxwSCDv871TFXJ5i8,7671
58
+ copyparty/web/browser.css.gz,sha256=qNsSKexPMkT5uTC6ADVuE2Z_oKVCbHyfzzIznQcOdvc,11434
59
+ copyparty/web/browser.html,sha256=uAejLJd11rV_tQx3h2nHnJ1XY6zn1JV-meIAv74Lc8o,4873
60
+ copyparty/web/browser.js.gz,sha256=LM_3CYIowvCedz0klqRG-JvcFY7PzFZHoFuhPoepfS8,66357
61
+ copyparty/web/browser2.html,sha256=ciQlgr9GWuIapdsRBFNRvRFvN5T_5n920LqDMbsj5-g,1605
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
- copyparty/web/md.css.gz,sha256=DadSn01UeCBE47AKqCjmrc7x2ZLZMwl4f__RhGCDzS4,2011
65
- copyparty/web/md.html,sha256=QdrN1-58IgdXj6QnT9w3_nbT825A6UWknj6WOKxn69I,4110
66
- copyparty/web/md.js.gz,sha256=7uNDAB8ctTLm4vr3ui-hfqusn7rORDOJfydonOFEWCU,4277
67
- copyparty/web/md2.css.gz,sha256=bM_1hsegXnEig1b6OQ28yWWUlMPje6u9M58VZ1Z-C9g,681
68
- copyparty/web/md2.js.gz,sha256=P47IdvqfOaDSnAxKk-0K8au9yUkH3be6t4YZ8AosDtI,8343
69
- copyparty/web/mde.css.gz,sha256=L6YhxnYBoqT5bSwD99rx8ALXDh8d_1-sCvbc_p3MoAU,929
70
- copyparty/web/mde.html,sha256=1KPTKGFxTTuJ9Zp9OBdmm1DREtSvijqnlsZoNTpv7q0,1678
71
- copyparty/web/mde.js.gz,sha256=eo-UjMKIbRcPL6LR8BDl4IkCGcpJyFK0mhYte7WgqLc,2219
72
- copyparty/web/msg.css.gz,sha256=-wOmwxU0_Xg2W53rIAjKA2TeFAVQNJeT8ZMtmiJiviY,252
73
- copyparty/web/msg.html,sha256=-MPzXZnHzQNuX04-aSn_fA7L15GASOHnCyeS1eVCYUI,896
74
- copyparty/web/splash.css.gz,sha256=ZJ1E7wWGYBVl50ytkxdYkLsLDhRJtGwP2-YdMUo7MgI,927
75
- copyparty/web/splash.html,sha256=4ZgHc7v1C9ABwzde4UvlsyTCtkmIwKVMXm-3rHcFXsM,3782
76
- copyparty/web/splash.js.gz,sha256=3PMKsMLwEsHP8eonBmtvonm9yeNq69xjMi8ZqnVeKcA,1255
77
- copyparty/web/svcs.html,sha256=Jn-G2QMF09oc01C_tmJwGZAdjFzbeu4unLSs6dowluM,11702
64
+ copyparty/web/md.css.gz,sha256=t7qPxsL-ETVc-yZhdh8vR1e69vI0f1DX85YLMpNlga4,2032
65
+ copyparty/web/md.html,sha256=qnJpj_5-MoVYr9j5Rhy7dS40wctqdWbjELmNa-J9cUY,4110
66
+ copyparty/web/md.js.gz,sha256=OMecpy-UHxn8rWM9Bj6BIq0jpjXNHri1A2NLe8de4_E,4179
67
+ copyparty/web/md2.css.gz,sha256=NfHqy77R1TfKn6ZXfthdLb74v1dgcwrDH0dhoH0rbgA,699
68
+ copyparty/web/md2.js.gz,sha256=LI1dxu7-IaF1DMb6_vgqV-5_AiUvGlAq2tkYNYNs6X0,8350
69
+ copyparty/web/mde.css.gz,sha256=QgC399DmXxcCL285jnsbeJH0fKJx-bWhS_PhNjHkMtM,942
70
+ copyparty/web/mde.html,sha256=FMMq4ySXoOrQV5E836KmQCry3COOhMu0DSstAdJZL_g,1678
71
+ copyparty/web/mde.js.gz,sha256=WkK28WXGGwWuhzeoV0MedaHaHtuXCPnzEx3MMa4qgJ4,2224
72
+ copyparty/web/msg.css.gz,sha256=RHvNHYTne6HuYkS8i6rlJu6jleVUVQut4zgRa--EKbI,300
73
+ copyparty/web/msg.html,sha256=XDg51WLO7RruZnoFnKpeJ33k47-tBHP3bR7l55Jwre4,896
74
+ copyparty/web/splash.css.gz,sha256=ImOPcJ4KvuMYYesHvEyKAjMTOrybWNvWtjyMUDOIETU,949
75
+ copyparty/web/splash.html,sha256=KFAvTnofyVURBQyTnrYwuDdEKN_iGtvdjicn5b33tL8,3822
76
+ copyparty/web/splash.js.gz,sha256=J8d5JEzEe7absMjw2_5RprS6mc0yduqfUD9aqlbhb5Q,1420
77
+ copyparty/web/svcs.html,sha256=s7vUSrCrELC3iTemksodRBhQpssO7s4xW1vA-CX6vU8,11702
78
78
  copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
79
- copyparty/web/ui.css.gz,sha256=oyrc_sf0u-KycOUV7FoRI7uF6oK6ruQ13Qzyz-7rad8,2567
80
- copyparty/web/up2k.js.gz,sha256=mT9u6jZFWjTTVgNodHrMvmuQ-sp7N4S6AtJHlrbOqoE,22027
81
- copyparty/web/util.js.gz,sha256=ig-Cs_fMqw4yZ0psAPTagr_0GkKQNXH2iCEprmfB9W4,14283
79
+ copyparty/web/ui.css.gz,sha256=dm7bH5LWyqxHDdLo5azIRdN1P9pULYtJ9a-_iBM4qOM,2616
80
+ copyparty/web/up2k.js.gz,sha256=G2O-0EUj81mmWSMbQ-nnj4UxnQD4X1TskCH9ypAVnSM,22120
81
+ copyparty/web/util.js.gz,sha256=-eCegkkPnAsoj33Rspwy93nyvWeYldon1DMgFoiG_1A,14368
82
82
  copyparty/web/w.hash.js.gz,sha256=__hBMd5oZWfTrb8ZCJNT21isoSqyrxKE6qdaKGQVAhc,1060
83
83
  copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  copyparty/web/a/partyfuse.py,sha256=MuRkaSuYsdfWfBFMOkbPwDXqSvNTw3sd7QhhlKCDZ8I,32311
@@ -90,6 +90,8 @@ copyparty/web/dd/4.png,sha256=fIwEVmtZNZtloZuVEKPKnkx3SELwRJmB3US61y7t2lI,248
90
90
  copyparty/web/dd/5.png,sha256=Lfpu8-yOlhONuoMbygloKqQVPXSm9gjxH2gUYn5QQAE,250
91
91
  copyparty/web/dd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  copyparty/web/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ copyparty/web/deps/easymde.css.gz,sha256=vWxfueI64rPikuqFj69wJBtGisqf93AheQtOZqgUI_c,3041
94
+ copyparty/web/deps/easymde.js.gz,sha256=1FykpDM7_FiL4EeZAg4Qcggjoo4PE_MBTgRcBWvjD90,77000
93
95
  copyparty/web/deps/marked.js.gz,sha256=WhUw0LPWs5cxqORQmW-zajQiUc5rSRkcvf3eT3-XSZc,22372
94
96
  copyparty/web/deps/mini-fa.css.gz,sha256=CTPrNaH8OTVmxajrGP88E2MkjadY9_81TBVnd9sw9Y8,572
95
97
  copyparty/web/deps/mini-fa.woff,sha256=L9DNncV2TIyvsrspMbJouvnnt7F068Hbn7YZYvN76AU,2784
@@ -99,9 +101,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
99
101
  copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
100
102
  copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
101
103
  copyparty/web/deps/sha512.hw.js.gz,sha256=vqoXeracj-99Z5MfY3jK2N4WiSzYQdfjy0RnUlQDhSU,8110
102
- copyparty-1.10.2.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
103
- copyparty-1.10.2.dist-info/METADATA,sha256=VztHHVGSLDK0ZRVxlGhBN2WuBCO3fpz6rbK0iVROAYY,112378
104
- copyparty-1.10.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
105
- copyparty-1.10.2.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
106
- copyparty-1.10.2.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
107
- copyparty-1.10.2.dist-info/RECORD,,
104
+ copyparty-1.11.1.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
105
+ copyparty-1.11.1.dist-info/METADATA,sha256=_nQ2ixAFewk545RfFxWaJ1WZP9IsYoDjh1qbT0hqClA,115911
106
+ copyparty-1.11.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
107
+ copyparty-1.11.1.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
108
+ copyparty-1.11.1.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
109
+ copyparty-1.11.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5