copyparty 1.13.5__py3-none-any.whl → 1.13.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.
Files changed (46) hide show
  1. copyparty/__main__.py +25 -7
  2. copyparty/__version__.py +2 -2
  3. copyparty/authsrv.py +9 -6
  4. copyparty/cert.py +1 -1
  5. copyparty/fsutil.py +3 -3
  6. copyparty/ftpd.py +15 -2
  7. copyparty/httpcli.py +221 -81
  8. copyparty/httpconn.py +3 -0
  9. copyparty/httpsrv.py +35 -11
  10. copyparty/ico.py +1 -1
  11. copyparty/mtag.py +15 -6
  12. copyparty/pwhash.py +10 -0
  13. copyparty/smbd.py +20 -2
  14. copyparty/ssdp.py +3 -3
  15. copyparty/stolen/dnslib/dns.py +6 -0
  16. copyparty/stolen/ifaddr/__init__.py +15 -1
  17. copyparty/stolen/ifaddr/_shared.py +1 -0
  18. copyparty/stolen/qrcodegen.py +6 -0
  19. copyparty/sutil.py +1 -1
  20. copyparty/svchub.py +72 -3
  21. copyparty/szip.py +1 -3
  22. copyparty/tcpsrv.py +60 -8
  23. copyparty/tftpd.py +30 -4
  24. copyparty/th_srv.py +22 -1
  25. copyparty/u2idx.py +4 -1
  26. copyparty/up2k.py +222 -94
  27. copyparty/util.py +166 -31
  28. copyparty/web/a/u2c.py +22 -9
  29. copyparty/web/baguettebox.js.gz +0 -0
  30. copyparty/web/browser.css.gz +0 -0
  31. copyparty/web/browser.js.gz +0 -0
  32. copyparty/web/browser2.html +0 -1
  33. copyparty/web/md.html +3 -0
  34. copyparty/web/mde.html +3 -0
  35. copyparty/web/msg.html +3 -0
  36. copyparty/web/splash.html +3 -0
  37. copyparty/web/svcs.html +5 -2
  38. copyparty/web/ui.css.gz +0 -0
  39. copyparty/web/up2k.js.gz +0 -0
  40. copyparty/web/util.js.gz +0 -0
  41. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/METADATA +66 -14
  42. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/RECORD +46 -46
  43. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/WHEEL +1 -1
  44. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/LICENSE +0 -0
  45. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/entry_points.txt +0 -0
  46. {copyparty-1.13.5.dist-info → copyparty-1.13.7.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: copyparty
3
- Version: 1.13.5
3
+ Version: 1.13.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
@@ -37,20 +37,20 @@ Description-Content-Type: text/markdown
37
37
  License-File: LICENSE
38
38
  Requires-Dist: Jinja2
39
39
  Provides-Extra: audiotags
40
- Requires-Dist: mutagen ; extra == 'audiotags'
40
+ Requires-Dist: mutagen; extra == "audiotags"
41
41
  Provides-Extra: ftpd
42
- Requires-Dist: pyftpdlib ; extra == 'ftpd'
42
+ Requires-Dist: pyftpdlib; extra == "ftpd"
43
43
  Provides-Extra: ftps
44
- Requires-Dist: pyftpdlib ; extra == 'ftps'
45
- Requires-Dist: pyopenssl ; extra == 'ftps'
44
+ Requires-Dist: pyftpdlib; extra == "ftps"
45
+ Requires-Dist: pyopenssl; extra == "ftps"
46
46
  Provides-Extra: pwhash
47
- Requires-Dist: argon2-cffi ; extra == 'pwhash'
47
+ Requires-Dist: argon2-cffi; extra == "pwhash"
48
48
  Provides-Extra: tftpd
49
- Requires-Dist: partftpy >=0.4.0 ; extra == 'tftpd'
49
+ Requires-Dist: partftpy>=0.4.0; extra == "tftpd"
50
50
  Provides-Extra: thumbnails
51
- Requires-Dist: Pillow ; extra == 'thumbnails'
51
+ Requires-Dist: Pillow; extra == "thumbnails"
52
52
  Provides-Extra: thumbnails2
53
- Requires-Dist: pyvips ; extra == 'thumbnails2'
53
+ Requires-Dist: pyvips; extra == "thumbnails2"
54
54
 
55
55
  # 💾🎉 copyparty
56
56
 
@@ -139,6 +139,7 @@ turn almost any device into a file server with resumable uploads/downloads using
139
139
  * [prometheus](#prometheus) - metrics/stats can be enabled
140
140
  * [other extremely specific features](#other-extremely-specific-features) - you'll never find a use for these
141
141
  * [custom mimetypes](#custom-mimetypes) - change the association of a file extension
142
+ * [feature chickenbits](#feature-chickenbits) - buggy feature? rip it out
142
143
  * [packages](#packages) - the party might be closer than you think
143
144
  * [arch package](#arch-package) - now [available on aur](https://aur.archlinux.org/packages/copyparty) maintained by [@icxes](https://github.com/icxes)
144
145
  * [fedora package](#fedora-package) - does not exist yet
@@ -165,6 +166,7 @@ turn almost any device into a file server with resumable uploads/downloads using
165
166
  * [HTTP API](#HTTP-API) - see [devnotes](./docs/devnotes.md#http-api)
166
167
  * [dependencies](#dependencies) - mandatory deps
167
168
  * [optional dependencies](#optional-dependencies) - install these to enable bonus features
169
+ * [dependency chickenbits](#dependency-chickenbits) - prevent loading an optional dependency
168
170
  * [optional gpl stuff](#optional-gpl-stuff)
169
171
  * [sfx](#sfx) - the self-contained "binary" (recommended!)
170
172
  * [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+)
@@ -178,7 +180,7 @@ turn almost any device into a file server with resumable uploads/downloads using
178
180
 
179
181
  just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py)** -- that's it! 🎉
180
182
 
181
- * or install through pypi: `python3 -m pip install --user -U copyparty`
183
+ * or install through [pypi](https://pypi.org/project/copyparty/): `python3 -m pip install --user -U copyparty`
182
184
  * or if you cannot install python, you can use [copyparty.exe](#copypartyexe) instead
183
185
  * or install [on arch](#arch-package) ╱ [on NixOS](#nixos-module) ╱ [through nix](#nix-package)
184
186
  * or if you are on android, [install copyparty in termux](#install-on-android)
@@ -248,7 +250,7 @@ firewall-cmd --reload
248
250
  also see [comparison to similar software](./docs/versus.md)
249
251
 
250
252
  * backend stuff
251
- * ☑ IPv6
253
+ * ☑ IPv6 + unix-sockets
252
254
  * ☑ [multiprocessing](#performance) (actual multithreading)
253
255
  * ☑ volumes (mountpoints)
254
256
  * ☑ [accounts](#accounts-and-volumes)
@@ -633,9 +635,6 @@ images with the following names (see `--th-covers`) become the thumbnail of the
633
635
  * the order is significant, so if both `cover.png` and `folder.jpg` exist in a folder, it will pick the first matching `--th-covers` entry (`folder.jpg`)
634
636
  * and, if you enable [file indexing](#file-indexing), it will also try those names as dotfiles (`.folder.jpg` and so), and then fallback on the first picture in the folder (if it has any pictures at all)
635
637
 
636
- in the grid/thumbnail view, if the audio player panel is open, songs will start playing when clicked
637
- * indicated by the audio files having the ▶ icon instead of 💾
638
-
639
638
  enabling `multiselect` lets you click files to select them, and then shift-click another file for range-select
640
639
  * `multiselect` is mostly intended for phones/tablets, but the `sel` option in the `[⚙️] settings` tab is better suited for desktop use, allowing selection by CTRL-clicking and range-selection with SHIFT-click, all without affecting regular clicking
641
640
  * the `sel` option can be made default globally with `--gsel` or per-volume with volflag `gsel`
@@ -1368,6 +1367,8 @@ you can set hooks before and/or after an event happens, and currently you can ho
1368
1367
 
1369
1368
  there's a bunch of flags and stuff, see `--help-hooks`
1370
1369
 
1370
+ if you want to write your own hooks, see [devnotes](./docs/devnotes.md#event-hooks)
1371
+
1371
1372
 
1372
1373
  ### upload events
1373
1374
 
@@ -1512,6 +1513,8 @@ some reverse proxies (such as [Caddy](https://caddyserver.com/)) can automatical
1512
1513
  * **warning:** nginx-QUIC (HTTP/3) is still experimental and can make uploads much slower, so HTTP/1.1 is recommended for now
1513
1514
  * depending on server/client, HTTP/1.1 can also be 5x faster than HTTP/2
1514
1515
 
1516
+ for improved security (and a tiny performance boost) consider listening on a unix-socket with `-i /tmp/party.sock` instead of `-i 127.0.0.1`
1517
+
1515
1518
  example webserver configs:
1516
1519
 
1517
1520
  * [nginx config](contrib/nginx/copyparty.conf) -- entire domain/subdomain
@@ -1612,6 +1615,23 @@ in a config-file, this is the same as:
1612
1615
  run copyparty with `--mimes` to list all the default mappings
1613
1616
 
1614
1617
 
1618
+ ### feature chickenbits
1619
+
1620
+ buggy feature? rip it out by setting any of the following environment variables to disable its associated bell or whistle,
1621
+
1622
+ | env-var | what it does |
1623
+ | -------------------- | ------------ |
1624
+ | `PRTY_NO_IFADDR` | disable ip/nic discovery by poking into your OS with ctypes |
1625
+ | `PRTY_NO_IPV6` | disable some ipv6 support (should not be necessary since windows 2000) |
1626
+ | `PRTY_NO_LZMA` | disable streaming xz compression of incoming uploads |
1627
+ | `PRTY_NO_MP` | disable all use of the python `multiprocessing` module (actual multithreading, cpu-count for parsers/thumbnailers) |
1628
+ | `PRTY_NO_SQLITE` | disable all database-related functionality (file indexing, metadata indexing, most file deduplication logic) |
1629
+ | `PRTY_NO_TLS` | disable native HTTPS support; if you still want to accept HTTPS connections then TLS must now be terminated by a reverse-proxy |
1630
+ | `PRTY_NO_TPOKE` | disable systemd-tmpfilesd avoider |
1631
+
1632
+ example: `PRTY_NO_IFADDR=1 python3 copyparty-sfx.py`
1633
+
1634
+
1615
1635
  # packages
1616
1636
 
1617
1637
  the party might be closer than you think
@@ -1934,6 +1954,7 @@ some notes on hardening
1934
1954
  * cors doesn't work right otherwise
1935
1955
  * if you allow anonymous uploads or otherwise don't trust the contents of a volume, you can prevent XSS with volflag `nohtml`
1936
1956
  * this returns html documents as plaintext, and also disables markdown rendering
1957
+ * when running behind a reverse-proxy, listen on a unix-socket with `-i /tmp/party.sock` instead of `-i 127.0.0.1` for tighter access control (plus you get a tiny performance boost for free)
1937
1958
 
1938
1959
  safety profiles:
1939
1960
 
@@ -2098,6 +2119,37 @@ enable [smb](#smb-server) support (**not** recommended):
2098
2119
  `pyvips` gives higher quality thumbnails than `Pillow` and is 320% faster, using 270% more ram: `sudo apt install libvips42 && python3 -m pip install --user -U pyvips`
2099
2120
 
2100
2121
 
2122
+ ### dependency chickenbits
2123
+
2124
+ prevent loading an optional dependency , for example if:
2125
+
2126
+ * you have an incompatible version installed and it causes problems
2127
+ * you just don't want copyparty to use it, maybe to save ram
2128
+
2129
+ set any of the following environment variables to disable its associated optional feature,
2130
+
2131
+ | env-var | what it does |
2132
+ | -------------------- | ------------ |
2133
+ | `PRTY_NO_ARGON2` | disable argon2-cffi password hashing |
2134
+ | `PRTY_NO_CFSSL` | never attempt to generate self-signed certificates using [cfssl](https://github.com/cloudflare/cfssl) |
2135
+ | `PRTY_NO_FFMPEG` | **audio transcoding** goes byebye, **thumbnailing** must be handled by Pillow/libvips |
2136
+ | `PRTY_NO_FFPROBE` | **audio transcoding** goes byebye, **thumbnailing** must be handled by Pillow/libvips, **metadata-scanning** must be handled by mutagen |
2137
+ | `PRTY_NO_MUTAGEN` | do not use [mutagen](https://pypi.org/project/mutagen/) for reading metadata from media files; will fallback to ffprobe |
2138
+ | `PRTY_NO_PIL` | disable all [Pillow](https://pypi.org/project/pillow/)-based thumbnail support; will fallback to libvips or ffmpeg |
2139
+ | `PRTY_NO_PILF` | disable Pillow `ImageFont` text rendering, used for folder thumbnails |
2140
+ | `PRTY_NO_PIL_AVIF` | disable 3rd-party Pillow plugin for [AVIF support](https://pypi.org/project/pillow-avif-plugin/) |
2141
+ | `PRTY_NO_PIL_HEIF` | disable 3rd-party Pillow plugin for [HEIF support](https://pypi.org/project/pyheif-pillow-opener/) |
2142
+ | `PRTY_NO_PIL_WEBP` | disable use of native webp support in Pillow |
2143
+ | `PRTY_NO_PSUTIL` | do not use [psutil](https://pypi.org/project/psutil/) for reaping stuck hooks and plugins on Windows |
2144
+ | `PRTY_NO_VIPS` | disable all [libvips](https://pypi.org/project/pyvips/)-based thumbnail support; will fallback to Pillow or ffmpeg |
2145
+
2146
+ example: `PRTY_NO_PIL=1 python3 copyparty-sfx.py`
2147
+
2148
+ * `PRTY_NO_PIL` saves ram
2149
+ * `PRTY_NO_VIPS` saves ram and startup time
2150
+ * python2.7 on windows: `PRTY_NO_FFMPEG` + `PRTY_NO_FFPROBE` saves startup time
2151
+
2152
+
2101
2153
  ## optional gpl stuff
2102
2154
 
2103
2155
  some bundled tools have copyleft dependencies, see [./bin/#mtag](bin/#mtag)
@@ -1,38 +1,38 @@
1
1
  copyparty/__init__.py,sha256=fUINM1abqDGzCCH_JcXdOnLdKOV-SrTI2Xo2QgQW2P4,1703
2
- copyparty/__main__.py,sha256=3fS9elMSksgji7chNwRitbHfgtLWRmV15JD_BvaKmTk,103492
3
- copyparty/__version__.py,sha256=xo8WPsXGQwnZTSAMnEADQw0Vs4ro_V_JIfo-ilhViT0,255
4
- copyparty/authsrv.py,sha256=zCo1-CmE2UhsnSRFqALTu1GBO6FVlo1l7Ex7PCv52Xg,87191
2
+ copyparty/__main__.py,sha256=-bNgNkASImj8_qwQybMROWYOG8weMhW_97CvSrk493E,104553
3
+ copyparty/__version__.py,sha256=EgoCneQAZlhKgcqdzhToR-lpfaiTxVNFy5oamvRXiNo,255
4
+ copyparty/authsrv.py,sha256=TQSpXc2meEcC4FTkHfLYaF0JwR6subinZTlGrhItTLM,87266
5
5
  copyparty/broker_mp.py,sha256=YFe1S6Zziht8Qc__dCLj_ff8z0DDny9lqk_Mi5ajsJk,3868
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=w0E-GhoOgq8ow7mEWi3GOyqraux6VG9yk1tif1yo0jc,1474
9
- copyparty/cert.py,sha256=BVMXKRzr1du0WgGifh_HrM-NEuezlgPDejaY3UaQUQ0,7728
9
+ copyparty/cert.py,sha256=kRFkMwBUCV_Vo7BYweD-yJ7Hpp5BCpaXneyBWxlu1PM,7759
10
10
  copyparty/cfg.py,sha256=i8-bjWgbguQooxiA172RcptqR_SEOwDHJ4cqldrZ8oQ,9792
11
11
  copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
12
- copyparty/fsutil.py,sha256=NEdhYYgQxDQ7MmgTbtjMKorikCjDls2AXVX16EH2JfQ,4613
13
- copyparty/ftpd.py,sha256=g9FDgoIV5DncmkovIo9C2jowtS6SmGX4Wgw44rWqM5g,17192
14
- copyparty/httpcli.py,sha256=7TospSu2141aWo0BnKQN3k5Ue5Y75KDA6WFmoYovYFI,169183
15
- copyparty/httpconn.py,sha256=6MOQgBtOGrlVRr6ZiHBKYzkzcls-YWwaWEtqE6DweM0,6873
16
- copyparty/httpsrv.py,sha256=U9CYy_5eK-VO1QZPeiybHUm9MD7-FZXAo22IZsEUErA,16369
17
- copyparty/ico.py,sha256=AYHdK6NlYBfBgafVYXia3jHQ9XHZdUL1D8WftLMAzIU,3545
12
+ copyparty/fsutil.py,sha256=hnEHgySI43-XJJKbI8n6t1A6oVHzR_nYdsBcAwtreBk,4610
13
+ copyparty/ftpd.py,sha256=1vD-KTy07xfEEEk1dx37pUYModpNO2gIhVXvFUr205M,17497
14
+ copyparty/httpcli.py,sha256=MrYiVBTJOllcx1uuqrkZM_pohp4PeUUxFnqfW4wKm0Q,174925
15
+ copyparty/httpconn.py,sha256=mwIDup85cBowIfJOse8rla5bqTz7nf-ChgfR-5-V0JM,6938
16
+ copyparty/httpsrv.py,sha256=Q0UscMXbzgslwTSj8pJiyWTqy9NrRi0lc4PU3KyJFZw,17030
17
+ copyparty/ico.py,sha256=eWSxEae4wOCfheHl-m-wchYvFRAR_97kJDb4NGaB-Z8,3561
18
18
  copyparty/mdns.py,sha256=vC078llnL1v0pvL3mnwacuStFHPJUQuxo9Opj-IbHL4,18155
19
19
  copyparty/metrics.py,sha256=O8qiPNDxNjub_PI8C8Qu9rBQ_z0J1mnKonqkcTeAtf4,8845
20
- copyparty/mtag.py,sha256=cgreqKD_VwP0Gw94gqlmSHE0gZqjJw3NGx3nfFu5UiU,18676
20
+ copyparty/mtag.py,sha256=0UIti7JyB6j8rPJ1SlC7JmwlqDfBMjQhXgncxscJGPg,18893
21
21
  copyparty/multicast.py,sha256=Ha27l2oATEa-Qo2WOzkeRgjAm6G_YDCfbVJWR-ao2UE,12319
22
- copyparty/pwhash.py,sha256=D82y8emnwpHDQq7Cr8lNuppHshbNA9ptcR2XsGOOk6E,3937
23
- copyparty/smbd.py,sha256=RW-8xoKlrR3PbNdd1q72uYGwI7USMl93eVPqC0HYCic,14066
24
- copyparty/ssdp.py,sha256=SiIGQ0FMFa0RM40GIEvkOTT0DMnKwZIy51a-ZDzLNxM,7045
22
+ copyparty/pwhash.py,sha256=AdLMLyIi2IDhGtbKIQOswKUxWvO7ARYYRF_ThsryOoc,4124
23
+ copyparty/smbd.py,sha256=8zkC9BjVtGiKXMLajbdakxoKeFzACdM75SW0_SvqXJA,14490
24
+ copyparty/ssdp.py,sha256=8iyF5sqIjATJLWcAtnJa8eadHosOn0CP4ywltzJ7bVY,7023
25
25
  copyparty/star.py,sha256=tV5BbX6AiQ7N4UU8DYtSTckNYeoeey4DBqq4LjfymbY,3818
26
- copyparty/sutil.py,sha256=xTw2jTrF3m3EXeh6E5Th810Axx5xVeMBNElkSwGb-Bo,3214
27
- copyparty/svchub.py,sha256=JbWbypa7OyYkJgsUTo0SRhgvb4WT4B1zDNi110Fuvl0,32743
28
- copyparty/szip.py,sha256=5xbfbnTKt97c59pZD_nAzWEYpMel7xFDuGUjj60VjOs,8619
29
- copyparty/tcpsrv.py,sha256=ssomz8MUjX62Yf6oDovH-Fzxi-9rZF6JFvsdDgGEho0,17680
30
- copyparty/tftpd.py,sha256=GkO1jN08ufPDcO2dri1VfvcDKcMW7x1RtL2Rj0SrN3o,12983
26
+ copyparty/sutil.py,sha256=JTMrQwcWH85hXB_cKG206eDZ967WZDGaP00AWvl_gB0,3214
27
+ copyparty/svchub.py,sha256=r7tht72fjl4HrrScTgXrIKGJHIzaB9pmnXSIs6c7wxA,34952
28
+ copyparty/szip.py,sha256=tor4yjdHhEL4Ox-Xg7-cuUFrMO0IwQD29aRX5Cp8MYs,8605
29
+ copyparty/tcpsrv.py,sha256=HzPN2K3VIDY-tXFBo1Twkzmm-K9aDk57IXBWE8P79Ck,19223
30
+ copyparty/tftpd.py,sha256=i1-oZ05DJq2_nDOW3g3PfTkMoUCr2lAcDYFMWArwtKA,13568
31
31
  copyparty/th_cli.py,sha256=o6FMkerYvAXS455z3DUossVztu_nzFlYSQhs6qN6Jt8,4636
32
- copyparty/th_srv.py,sha256=M5bYynDed1FR-UyuyOnsCCQP2IUxV_O3kONtH0n5Z8E,28729
33
- copyparty/u2idx.py,sha256=uEUcEbye1jzGlQfEJkLtD060XA6Rv_6lXLgeg6oAU5M,13033
34
- copyparty/up2k.py,sha256=MsbhKDYCIVDRp_f8abJOiRgeOxjcopOP2DC4eQ4CJtM,146118
35
- copyparty/util.py,sha256=eLumq1eaFZKxMV3xwWsCCIGMp2IS2k5ijaO83oNr0zc,84958
32
+ copyparty/th_srv.py,sha256=27IftjIXUQzRRiUytt-CgXkybEoP3HHHoXaDAvxEmLo,29217
33
+ copyparty/u2idx.py,sha256=NSlY-3Wo-jjzkOWNjnrKXf40LlTCssiy7j5iP2UoUXA,13082
34
+ copyparty/up2k.py,sha256=6WR2mwFSMrCMLp2WbkvwcsVWBr9OnrSMkhJT5odStC0,150956
35
+ copyparty/util.py,sha256=ftOsJD9ofoZGywvNT5xgT8t33E9CPYVDbENz9JSWwe4,88625
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
@@ -40,49 +40,49 @@ copyparty/res/COPYING.txt,sha256=c1ZODkz9gwQsQ1nDHGHs0i4Nq0zBx_pRGITzPNtCYSY,105
40
40
  copyparty/res/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  copyparty/res/insecure.pem,sha256=FEt7jgrn6ZHTlFopq_LFAN027YIoaHi0HQFBbzYnEwc,2876
42
42
  copyparty/stolen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- copyparty/stolen/qrcodegen.py,sha256=5zB2a23aW3H0Y-yTENJOgor9hw5jgyD1LKTzIBEkO6s,21469
43
+ copyparty/stolen/qrcodegen.py,sha256=vs7EaFOFCWFMBbB5peea75c6duXKg1MVQZiZuoDElF0,21512
44
44
  copyparty/stolen/surrogateescape.py,sha256=-ZfRWrbgJrh74dXfXLNMvo_iiCVUhXbFs_anHIrWPts,5573
45
45
  copyparty/stolen/dnslib/__init__.py,sha256=SmYdaHdL5czxKxrOFGvzbfmojOthRky1GXKgmWj4QeM,159
46
46
  copyparty/stolen/dnslib/bimap.py,sha256=j_ah40P3kOw0AQT5vvMcv7XbMtS0jV6Oe9YGCh7J57s,1182
47
47
  copyparty/stolen/dnslib/bit.py,sha256=uDECHT5wM-QObxxRgc4lJq9CUcd7hglRLgs0K1X8mnU,348
48
48
  copyparty/stolen/dnslib/buffer.py,sha256=bvj9rTn4EcccVuMWe1b5j57ex6elba3NCDBdevsnoSc,1407
49
- copyparty/stolen/dnslib/dns.py,sha256=dRVXygfhyX9oiu9qRUvQb7-lYgN2y7Lgi1fZrAJKAO0,20956
49
+ copyparty/stolen/dnslib/dns.py,sha256=D7Csp3Vryf8IVjpDmVxyFKNDiPKklajNnnZ3lj-3VVc,20999
50
50
  copyparty/stolen/dnslib/label.py,sha256=ohFQJAqbA806g7jDeTEUtmhan1e7Exyb5j2D7Bg2V-Q,4893
51
51
  copyparty/stolen/dnslib/lex.py,sha256=XuXvz4PHzSaEdRRl8xnYaM8cAupzns0QW3oeFn-4isM,2615
52
52
  copyparty/stolen/dnslib/ranges.py,sha256=XqR6NaRMm0xiEht590KhOjKjIuUFgW4I9_zPmPsGV0c,1810
53
- copyparty/stolen/ifaddr/__init__.py,sha256=_BUN7eM5oD2Jgib6B22tEFSb20fD9urNPPaAluUYx9U,463
53
+ copyparty/stolen/ifaddr/__init__.py,sha256=vpREjAyPubr5s1NJi91icXV3q1o4DrKAvHABwkoeJB0,706
54
54
  copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUuTOrU,2626
55
- copyparty/stolen/ifaddr/_shared.py,sha256=cJACl8cOxQ-HSYphZTzKMAjAx_TAFyJwUPjfD102Xqw,6111
55
+ copyparty/stolen/ifaddr/_shared.py,sha256=uNC4SdEIgdSLKvuUzsf1aM-H1Xrc_9mpLoOT43YukGs,6206
56
56
  copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
57
- copyparty/web/baguettebox.js.gz,sha256=L8eDsZkK6SAJr8Tlw7D67ZCsvXhO3DC-W23lHqhC0gc,7965
58
- copyparty/web/browser.css.gz,sha256=8AZ53KZ-fWInji7m-eGNrwdZbWEeLmyjwg1V23ON6Mc,11539
57
+ copyparty/web/baguettebox.js.gz,sha256=4dS8-r4si84ca71l98672ahnRI86Aq95MU-bc5knykk,7962
58
+ copyparty/web/browser.css.gz,sha256=Pm5mArar_T87v9ji1SMkWEHzeKRtYq2roV_bAxXMIP0,11525
59
59
  copyparty/web/browser.html,sha256=-tLasq2GKe9mUceqXG4PczQ7odBMrX0qlWuyaA9SjPI,4882
60
- copyparty/web/browser.js.gz,sha256=rwW4MyDTLvwmrP03EKaZH4m4JLMuhi1px5B65u5RNrk,69342
61
- copyparty/web/browser2.html,sha256=ciQlgr9GWuIapdsRBFNRvRFvN5T_5n920LqDMbsj5-g,1605
60
+ copyparty/web/browser.js.gz,sha256=-FlIylCcVX7aQvOInLDdSNZAqsVzs6RKczzvNBSFQ50,69593
61
+ copyparty/web/browser2.html,sha256=XU8fD9fFbS4koraRz1Ok4z9OEV5EBoH4vT2Vc1mNWPc,1589
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=35oLUnDYsAdiW7Zg-iKFEXzEl_bGbnoAxUrNgJL46_o,4119
65
+ copyparty/web/md.html,sha256=PZtHGVQ1mtppfpgqG3qjehu3KnRIs9QPsnv7yUXqB8k,4191
66
66
  copyparty/web/md.js.gz,sha256=AHRQ3a-PZq_UiGh4CjNwXRllJCvA0IqqYmeHhFWhCig,4179
67
67
  copyparty/web/md2.css.gz,sha256=uIVHKScThdbcfhXNSHgKZnALYpxbnXC-WuEzOJ20Lpc,699
68
68
  copyparty/web/md2.js.gz,sha256=0fTA3lahQ1iDvJR4Q3W9v8dX5hc5VP8nunTtoDwFySs,8363
69
69
  copyparty/web/mde.css.gz,sha256=2SkAEDKIRPqywNJ8t_heQaeBQ_R73Rf-pQI_bDoKF6o,942
70
- copyparty/web/mde.html,sha256=v0MsEinom5LmZzUM-Ht26IEUkrFzMX57XpCyIQXctAg,1687
70
+ copyparty/web/mde.html,sha256=ImBhQAaEUCke2M85QU_fl4X2XQExRLcEzgCEN8RNe9o,1759
71
71
  copyparty/web/mde.js.gz,sha256=kN2eUSvr4mFuksfK4-4LimJmWdwsao39Sea2lWtu8L0,2224
72
72
  copyparty/web/msg.css.gz,sha256=u90fXYAVrMD-jqwf5XFVC1ptSpSHZUe8Mez6PX101P8,300
73
- copyparty/web/msg.html,sha256=HcBeXXpcF2JKwcj8KD3dGCvONMnTZ6lXYmm4SYgBMlA,905
73
+ copyparty/web/msg.html,sha256=w9CM3hkLLGJX9fWEaG4gSbTOPe2GcPqW8BpSCDiFzOI,977
74
74
  copyparty/web/splash.css.gz,sha256=zgDs-SY3VrInsXeARRPcGHziVOUs-1hUtSObzybwD1g,1006
75
- copyparty/web/splash.html,sha256=z5OrfZqA5RBxeY86BJiQ5NZNHIIDHDvPlTuht-Q0v64,3917
75
+ copyparty/web/splash.html,sha256=noOLEb8NVsFkkWp7njl_KvpUdjOlAFoOam6XW4lnD-Q,3986
76
76
  copyparty/web/splash.js.gz,sha256=P4BLL_SBqfqWniq_gzUD-opVAkblAPgKDwmfxyfDB7o,1469
77
- copyparty/web/svcs.html,sha256=U4CY8orN939JIqXqm6KT1aeWROyhyYHRjVQrFuGJsiQ,11752
77
+ copyparty/web/svcs.html,sha256=v0C3cOFWXYlvp3GEifz1Qj0W3MD8JANT3WTON05GZ9o,11797
78
78
  copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
79
- copyparty/web/ui.css.gz,sha256=u9GiLVb1q5qY3CytUNVNXcieDBtkkHsJ0kgfELcE0Jc,2619
80
- copyparty/web/up2k.js.gz,sha256=y0XXTRlNjGFGTZ_VjDQ6Y3Vh3jC_vKILeuuTwuRUWu0,22631
81
- copyparty/web/util.js.gz,sha256=WxPv8l_rYkSopcn-gfJb_OrgcpTD4JzY7IMSGBI4GAI,14435
79
+ copyparty/web/ui.css.gz,sha256=GnR_PxnZGcNs2IJnb5hFffnhlW3cUHkPad3tNIm-7DQ,2637
80
+ copyparty/web/up2k.js.gz,sha256=KufMtRViAZQo2rVj67iEWbdPxlVeXW85emRYVJoY3aA,22946
81
+ copyparty/web/util.js.gz,sha256=uZDsKkwTcEiFv-GTfy-zmArqirjhxGBLKjAhtLvj72s,14524
82
82
  copyparty/web/w.hash.js.gz,sha256=7wP9EZQNXQxwZnCCFUVsi_-6TM9PLZJeZ9krutXRRj8,1060
83
83
  copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  copyparty/web/a/partyfuse.py,sha256=MuRkaSuYsdfWfBFMOkbPwDXqSvNTw3sd7QhhlKCDZ8I,32311
85
- copyparty/web/a/u2c.py,sha256=IzeCoSsdJ6KZYiJ7fpnVs8yguHj6lT7LYaVZOCKWi64,41906
85
+ copyparty/web/a/u2c.py,sha256=eJlcAN70lKeh46eNq9ae7CO-kgA8oGrMfiOBJivzCXk,42419
86
86
  copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
87
87
  copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
88
88
  copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
@@ -102,9 +102,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
102
102
  copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
103
103
  copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
104
104
  copyparty/web/deps/sha512.hw.js.gz,sha256=vqoXeracj-99Z5MfY3jK2N4WiSzYQdfjy0RnUlQDhSU,8110
105
- copyparty-1.13.5.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
106
- copyparty-1.13.5.dist-info/METADATA,sha256=J-QQkQ9xkPwDb-JnAC_g7qDn2pHeh8if43O4xCRpHF4,124341
107
- copyparty-1.13.5.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
108
- copyparty-1.13.5.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
109
- copyparty-1.13.5.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
110
- copyparty-1.13.5.dist-info/RECORD,,
105
+ copyparty-1.13.7.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
106
+ copyparty-1.13.7.dist-info/METADATA,sha256=yEDujjEnYVM3ubTVC9qg6DxX64yPBW3eriejcJuBudI,127902
107
+ copyparty-1.13.7.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
108
+ copyparty-1.13.7.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
109
+ copyparty-1.13.7.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
110
+ copyparty-1.13.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.1.0)
2
+ Generator: setuptools (72.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5