copyparty 1.16.8__py3-none-any.whl → 1.16.10__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/__main__.py +34 -13
 - copyparty/__version__.py +2 -2
 - copyparty/authsrv.py +8 -1
 - copyparty/cfg.py +6 -0
 - copyparty/dxml.py +48 -3
 - copyparty/httpcli.py +40 -9
 - copyparty/svchub.py +13 -0
 - copyparty/th_cli.py +6 -2
 - copyparty/th_srv.py +100 -41
 - copyparty/up2k.py +11 -5
 - copyparty/util.py +163 -8
 - copyparty/web/a/u2c.py +3 -3
 - copyparty/web/browser.css.gz +0 -0
 - copyparty/web/browser.js.gz +0 -0
 - copyparty/web/md.js.gz +0 -0
 - copyparty/web/md2.js.gz +0 -0
 - copyparty/web/svcs.html +1 -1
 - copyparty/web/svcs.js.gz +0 -0
 - copyparty/web/up2k.js.gz +0 -0
 - copyparty/web/util.js.gz +0 -0
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/METADATA +51 -10
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/RECORD +26 -26
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/LICENSE +0 -0
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/WHEEL +0 -0
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/entry_points.txt +0 -0
 - {copyparty-1.16.8.dist-info → copyparty-1.16.10.dist-info}/top_level.txt +0 -0
 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Metadata-Version: 2.2
         
     | 
| 
       2 
2 
     | 
    
         
             
            Name: copyparty
         
     | 
| 
       3 
     | 
    
         
            -
            Version: 1.16. 
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 1.16.10
         
     | 
| 
       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
         
     | 
| 
         @@ -52,6 +52,8 @@ Provides-Extra: tftpd 
     | 
|
| 
       52 
52 
     | 
    
         
             
            Requires-Dist: partftpy>=0.4.0; extra == "tftpd"
         
     | 
| 
       53 
53 
     | 
    
         
             
            Provides-Extra: pwhash
         
     | 
| 
       54 
54 
     | 
    
         
             
            Requires-Dist: argon2-cffi; extra == "pwhash"
         
     | 
| 
      
 55 
     | 
    
         
            +
            Provides-Extra: zeromq
         
     | 
| 
      
 56 
     | 
    
         
            +
            Requires-Dist: pyzmq; extra == "zeromq"
         
     | 
| 
       55 
57 
     | 
    
         | 
| 
       56 
58 
     | 
    
         
             
            <img src="https://github.com/9001/copyparty/raw/hovudstraum/docs/logo.svg" width="250" align="right"/>
         
     | 
| 
       57 
59 
     | 
    
         | 
| 
         @@ -135,6 +137,7 @@ turn almost any device into a file server with resumable uploads/downloads using 
     | 
|
| 
       135 
137 
     | 
    
         
             
                * [metadata from audio files](#metadata-from-audio-files) - set `-e2t` to index tags on upload
         
     | 
| 
       136 
138 
     | 
    
         
             
                * [file parser plugins](#file-parser-plugins) - provide custom parsers to index additional tags
         
     | 
| 
       137 
139 
     | 
    
         
             
                * [event hooks](#event-hooks) - trigger a program on uploads, renames etc ([examples](./bin/hooks/))
         
     | 
| 
      
 140 
     | 
    
         
            +
                    * [zeromq](#zeromq) - event-hooks can send zeromq messages
         
     | 
| 
       138 
141 
     | 
    
         
             
                    * [upload events](#upload-events) - the older, more powerful approach ([examples](./bin/mtag/))
         
     | 
| 
       139 
142 
     | 
    
         
             
                * [handlers](#handlers) - redefine behavior with plugins ([examples](./bin/handlers/))
         
     | 
| 
       140 
143 
     | 
    
         
             
                * [ip auth](#ip-auth) - autologin based on IP range (CIDR)
         
     | 
| 
         @@ -407,10 +410,19 @@ same order here too 
     | 
|
| 
       407 
410 
     | 
    
         
             
            * iPhones: the volume control doesn't work because [apple doesn't want it to](https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW11)
         
     | 
| 
       408 
411 
     | 
    
         
             
              * `AudioContext` will probably never be a viable workaround as apple introduces new issues faster than they fix current ones
         
     | 
| 
       409 
412 
     | 
    
         | 
| 
      
 413 
     | 
    
         
            +
            * iPhones: music volume goes on a rollercoaster during song changes
         
     | 
| 
      
 414 
     | 
    
         
            +
              * nothing I can do about it because `AudioContext` is still broken in safari
         
     | 
| 
      
 415 
     | 
    
         
            +
             
     | 
| 
       410 
416 
     | 
    
         
             
            * iPhones: the preload feature (in the media-player-options tab) can cause a tiny audio glitch 20sec before the end of each song, but disabling it may cause worse iOS bugs to appear instead
         
     | 
| 
       411 
417 
     | 
    
         
             
              * just a hunch, but disabling preloading may cause playback to stop entirely, or possibly mess with bluetooth speakers
         
     | 
| 
       412 
418 
     | 
    
         
             
              * tried to add a tooltip regarding this but looks like apple broke my tooltips
         
     | 
| 
       413 
419 
     | 
    
         | 
| 
      
 420 
     | 
    
         
            +
            * iPhones: preloaded awo files make safari log MEDIA_ERR_NETWORK errors as playback starts, but the song plays just fine so eh whatever
         
     | 
| 
      
 421 
     | 
    
         
            +
              * awo, opus-weba, is apple's new take on opus support, replacing opus-caf which was technically limited to cbr opus
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
      
 423 
     | 
    
         
            +
            * iPhones: preloading another awo file may cause playback to stop
         
     | 
| 
      
 424 
     | 
    
         
            +
              * can be somewhat mitigated with `mp.au.play()` in `mp.onpreload` but that can hit a race condition in safari that starts playing the same audio object twice in parallel...
         
     | 
| 
      
 425 
     | 
    
         
            +
             
     | 
| 
       414 
426 
     | 
    
         
             
            * Windows: folders cannot be accessed if the name ends with `.`
         
     | 
| 
       415 
427 
     | 
    
         
             
              * python or windows bug
         
     | 
| 
       416 
428 
     | 
    
         | 
| 
         @@ -670,8 +682,8 @@ select which type of archive you want in the `[⚙️] config` tab: 
     | 
|
| 
       670 
682 
     | 
    
         
             
            | `pax` | `?tar=pax` | pax-format tar, futureproof, not as fast |
         
     | 
| 
       671 
683 
     | 
    
         
             
            | `tgz` | `?tar=gz` | gzip compressed gnu-tar (slow), for `curl \| tar -xvz` |
         
     | 
| 
       672 
684 
     | 
    
         
             
            | `txz` | `?tar=xz` | gnu-tar with xz / lzma compression (v.slow) |
         
     | 
| 
       673 
     | 
    
         
            -
            | `zip` | `?zip 
     | 
| 
       674 
     | 
    
         
            -
            | `zip_dos` | `?zip` | traditional cp437 (no unicode) to fix glitchy filenames |
         
     | 
| 
      
 685 
     | 
    
         
            +
            | `zip` | `?zip` | works everywhere, glitchy filenames on win7 and older |
         
     | 
| 
      
 686 
     | 
    
         
            +
            | `zip_dos` | `?zip=dos` | traditional cp437 (no unicode) to fix glitchy filenames |
         
     | 
| 
       675 
687 
     | 
    
         
             
            | `zip_crc` | `?zip=crc` | cp437 with crc32 computed early for truly ancient software |
         
     | 
| 
       676 
688 
     | 
    
         | 
| 
       677 
689 
     | 
    
         
             
            * gzip default level is `3` (0=fast, 9=best), change with `?tar=gz:9`
         
     | 
| 
         @@ -679,7 +691,7 @@ select which type of archive you want in the `[⚙️] config` tab: 
     | 
|
| 
       679 
691 
     | 
    
         
             
            * bz2 default level is `2` (1=fast, 9=best), change with `?tar=bz2:9`
         
     | 
| 
       680 
692 
     | 
    
         
             
            * hidden files ([dotfiles](#dotfiles)) are excluded unless account is allowed to list them
         
     | 
| 
       681 
693 
     | 
    
         
             
              * `up2k.db` and `dir.txt` is always excluded
         
     | 
| 
       682 
     | 
    
         
            -
            * bsdtar supports streaming unzipping: `curl foo?zip 
     | 
| 
      
 694 
     | 
    
         
            +
            * bsdtar supports streaming unzipping: `curl foo?zip | bsdtar -xv`
         
     | 
| 
       683 
695 
     | 
    
         
             
              * good, because copyparty's zip is faster than tar on small files
         
     | 
| 
       684 
696 
     | 
    
         
             
            * `zip_crc` will take longer to download since the server has to read each file twice
         
     | 
| 
       685 
697 
     | 
    
         
             
              * this is only to support MS-DOS PKZIP v2.04g (october 1993) and older
         
     | 
| 
         @@ -942,6 +954,8 @@ will show uploader IP and upload-time if the visitor has the admin permission 
     | 
|
| 
       942 
954 
     | 
    
         | 
| 
       943 
955 
     | 
    
         
             
            * global-option `--ups-when` makes upload-time visible to all users, and not just admins
         
     | 
| 
       944 
956 
     | 
    
         | 
| 
      
 957 
     | 
    
         
            +
            * global-option `--ups-who` (volflag `ups_who`) specifies who gets access (0=nobody, 1=admins, 2=everyone), default=2
         
     | 
| 
      
 958 
     | 
    
         
            +
             
     | 
| 
       945 
959 
     | 
    
         
             
            note that the [🧯 unpost](#unpost) feature is better suited for viewing *your own* recent uploads, as it includes the option to undo/delete them
         
     | 
| 
       946 
960 
     | 
    
         | 
| 
       947 
961 
     | 
    
         | 
| 
         @@ -981,6 +995,11 @@ open the `[🎺]` media-player-settings tab to configure it, 
     | 
|
| 
       981 
995 
     | 
    
         
             
              * `[aac]` converts `aac` and `m4a` files into opus (if supported by browser) or mp3
         
     | 
| 
       982 
996 
     | 
    
         
             
              * `[oth]` converts all other known formats into opus (if supported by browser) or mp3
         
     | 
| 
       983 
997 
     | 
    
         
             
                * `aac|ac3|aif|aiff|alac|alaw|amr|ape|au|dfpwm|dts|flac|gsm|it|m4a|mo3|mod|mp2|mp3|mpc|mptm|mt2|mulaw|ogg|okt|opus|ra|s3m|tak|tta|ulaw|wav|wma|wv|xm|xpk`
         
     | 
| 
      
 998 
     | 
    
         
            +
            * "transcode to":
         
     | 
| 
      
 999 
     | 
    
         
            +
              * `[opus]` produces an `opus` whenever transcoding is necessary (the best choice on Android and PCs)
         
     | 
| 
      
 1000 
     | 
    
         
            +
              * `[awo]` is `opus` in a `weba` file, good for iPhones (iOS 17.5 and newer) but Apple is still fixing some state-confusion bugs as of iOS 18.2.1
         
     | 
| 
      
 1001 
     | 
    
         
            +
              * `[caf]` is `opus` in a `caf` file, good for iPhones (iOS 11 through 17), technically unsupported by Apple but works for the mos tpart
         
     | 
| 
      
 1002 
     | 
    
         
            +
              * `[mp3]` -- the myth, the legend, the undying master of mediocre sound quality that definitely works everywhere
         
     | 
| 
       984 
1003 
     | 
    
         
             
            * "tint" reduces the contrast of the playback bar
         
     | 
| 
       985 
1004 
     | 
    
         | 
| 
       986 
1005 
     | 
    
         | 
| 
         @@ -1513,6 +1532,23 @@ there's a bunch of flags and stuff, see `--help-hooks` 
     | 
|
| 
       1513 
1532 
     | 
    
         
             
            if you want to write your own hooks, see [devnotes](./docs/devnotes.md#event-hooks)
         
     | 
| 
       1514 
1533 
     | 
    
         | 
| 
       1515 
1534 
     | 
    
         | 
| 
      
 1535 
     | 
    
         
            +
            ### zeromq
         
     | 
| 
      
 1536 
     | 
    
         
            +
             
     | 
| 
      
 1537 
     | 
    
         
            +
            event-hooks can send zeromq messages  instead of running programs
         
     | 
| 
      
 1538 
     | 
    
         
            +
             
     | 
| 
      
 1539 
     | 
    
         
            +
            to send a 0mq message every time a file is uploaded,
         
     | 
| 
      
 1540 
     | 
    
         
            +
             
     | 
| 
      
 1541 
     | 
    
         
            +
            * `--xau zmq:pub:tcp://*:5556` sends a PUB to any/all connected SUB clients
         
     | 
| 
      
 1542 
     | 
    
         
            +
            * `--xau t3,zmq:push:tcp://*:5557` sends a PUSH to exactly one connected PULL client
         
     | 
| 
      
 1543 
     | 
    
         
            +
            * `--xau t3,j,zmq:req:tcp://localhost:5555` sends a REQ to the connected REP client
         
     | 
| 
      
 1544 
     | 
    
         
            +
             
     | 
| 
      
 1545 
     | 
    
         
            +
            the PUSH and REQ examples have `t3` (timeout after 3 seconds) because they block if there's no clients to talk to
         
     | 
| 
      
 1546 
     | 
    
         
            +
             
     | 
| 
      
 1547 
     | 
    
         
            +
            * the REQ example does `t3,j` to send extended upload-info as json instead of just the filesystem-path
         
     | 
| 
      
 1548 
     | 
    
         
            +
             
     | 
| 
      
 1549 
     | 
    
         
            +
            see [zmq-recv.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/zmq-recv.py) if you need something to receive the messages with
         
     | 
| 
      
 1550 
     | 
    
         
            +
             
     | 
| 
      
 1551 
     | 
    
         
            +
             
     | 
| 
       1516 
1552 
     | 
    
         
             
            ### upload events
         
     | 
| 
       1517 
1553 
     | 
    
         | 
| 
       1518 
1554 
     | 
    
         
             
            the older, more powerful approach ([examples](./bin/mtag/)):
         
     | 
| 
         @@ -1600,12 +1636,16 @@ connecting to an aws s3 bucket and similar 
     | 
|
| 
       1600 
1636 
     | 
    
         | 
| 
       1601 
1637 
     | 
    
         
             
            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
         
     | 
| 
       1602 
1638 
     | 
    
         | 
| 
       1603 
     | 
    
         
            -
            you  
     | 
| 
      
 1639 
     | 
    
         
            +
            you will probably get decent speeds with the default config, however most likely restricted to using one TCP connection per file, so the upload-client won't be able to send multiple chunks in parallel
         
     | 
| 
      
 1640 
     | 
    
         
            +
             
     | 
| 
      
 1641 
     | 
    
         
            +
            > before [v1.13.5](https://github.com/9001/copyparty/releases/tag/v1.13.5) it was recommended to use the volflag `sparse` to force-allow multiple chunks in parallel; this would improve the upload-speed from `1.5 MiB/s` to over `80 MiB/s` at the risk of provoking latent bugs in S3 or JuiceFS. But v1.13.5 added chunk-stitching, so this is now probably much less important. On the contrary, `nosparse` *may* now increase performance in some cases. Please try all three options (default, `sparse`, `nosparse`) as the optimal choice depends on your network conditions and software stack (both the FUSE-driver and cloud-server)
         
     | 
| 
       1604 
1642 
     | 
    
         | 
| 
       1605 
1643 
     | 
    
         
             
            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
         
     | 
| 
       1606 
1644 
     | 
    
         | 
| 
       1607 
1645 
     | 
    
         
             
            you may improve performance by specifying larger values for `--iobuf` / `--s-rd-sz` / `--s-wr-sz`
         
     | 
| 
       1608 
1646 
     | 
    
         | 
| 
      
 1647 
     | 
    
         
            +
            > if you've experimented with this and made interesting observations, please share your findings so we can add a section with specific recommendations :-)
         
     | 
| 
      
 1648 
     | 
    
         
            +
             
     | 
| 
       1609 
1649 
     | 
    
         | 
| 
       1610 
1650 
     | 
    
         
             
            ## hiding from google
         
     | 
| 
       1611 
1651 
     | 
    
         | 
| 
         @@ -2359,13 +2399,13 @@ mandatory deps: 
     | 
|
| 
       2359 
2399 
     | 
    
         | 
| 
       2360 
2400 
     | 
    
         
             
            install these to enable bonus features
         
     | 
| 
       2361 
2401 
     | 
    
         | 
| 
       2362 
     | 
    
         
            -
            enable hashed passwords in config: `argon2-cffi`
         
     | 
| 
      
 2402 
     | 
    
         
            +
            enable [hashed passwords](#password-hashing) in config: `argon2-cffi`
         
     | 
| 
       2363 
2403 
     | 
    
         | 
| 
       2364 
     | 
    
         
            -
            enable ftp-server:
         
     | 
| 
      
 2404 
     | 
    
         
            +
            enable [ftp-server](#ftp-server):
         
     | 
| 
       2365 
2405 
     | 
    
         
             
            * for just plaintext FTP, `pyftpdlib` (is built into the SFX)
         
     | 
| 
       2366 
2406 
     | 
    
         
             
            * with TLS encryption, `pyftpdlib pyopenssl`
         
     | 
| 
       2367 
2407 
     | 
    
         | 
| 
       2368 
     | 
    
         
            -
            enable music tags:
         
     | 
| 
      
 2408 
     | 
    
         
            +
            enable [music tags](#metadata-from-audio-files):
         
     | 
| 
       2369 
2409 
     | 
    
         
             
            * either `mutagen` (fast, pure-python, skips a few tags, makes copyparty GPL? idk)
         
     | 
| 
       2370 
2410 
     | 
    
         
             
            * or `ffprobe` (20x slower, more accurate, possibly dangerous depending on your distro and users)
         
     | 
| 
       2371 
2411 
     | 
    
         | 
| 
         @@ -2376,8 +2416,9 @@ enable [thumbnails](#thumbnails) of... 
     | 
|
| 
       2376 
2416 
     | 
    
         
             
            * **AVIF pictures:** `pyvips` or `ffmpeg` or `pillow-avif-plugin`
         
     | 
| 
       2377 
2417 
     | 
    
         
             
            * **JPEG XL pictures:** `pyvips` or `ffmpeg`
         
     | 
| 
       2378 
2418 
     | 
    
         | 
| 
       2379 
     | 
    
         
            -
            enable [ 
     | 
| 
       2380 
     | 
    
         
            -
             
     | 
| 
      
 2419 
     | 
    
         
            +
            enable sending [zeromq messages](#zeromq) from event-hooks: `pyzmq`
         
     | 
| 
      
 2420 
     | 
    
         
            +
             
     | 
| 
      
 2421 
     | 
    
         
            +
            enable [smb](#smb-server) support (**not** recommended): `impacket==0.12.0`
         
     | 
| 
       2381 
2422 
     | 
    
         | 
| 
       2382 
2423 
     | 
    
         
             
            `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`
         
     | 
| 
       2383 
2424 
     | 
    
         | 
| 
         @@ -1,17 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            copyparty/__init__.py,sha256=VR6ZZhB9IxaK5TDXDTBM_OIP5ydkrdbaEnstktLM__s,2649
         
     | 
| 
       2 
     | 
    
         
            -
            copyparty/__main__.py,sha256= 
     | 
| 
       3 
     | 
    
         
            -
            copyparty/__version__.py,sha256= 
     | 
| 
       4 
     | 
    
         
            -
            copyparty/authsrv.py,sha256= 
     | 
| 
      
 2 
     | 
    
         
            +
            copyparty/__main__.py,sha256=5igJxZ_H08z51qaF_YrWsRp1SNzV810RHvVq38lHrtI,115336
         
     | 
| 
      
 3 
     | 
    
         
            +
            copyparty/__version__.py,sha256=w6JPCGAR6OVAC2wHWSHdSa490DyST1yza7fcVbwUFCs,252
         
     | 
| 
      
 4 
     | 
    
         
            +
            copyparty/authsrv.py,sha256=uADnPkHiTH0UcBUr-w5hdUare6p-74O7cJQaL9lkpws,104513
         
     | 
| 
       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
         
     | 
| 
       8 
8 
     | 
    
         
             
            copyparty/broker_util.py,sha256=76mfnFOpX1gUUvtjm8UQI7jpTIaVINX10QonM-B7ggc,1680
         
     | 
| 
       9 
9 
     | 
    
         
             
            copyparty/cert.py,sha256=0ZAPeXeMR164vWn9GQU3JDKooYXEq_NOQkDeg543ivg,8009
         
     | 
| 
       10 
     | 
    
         
            -
            copyparty/cfg.py,sha256= 
     | 
| 
       11 
     | 
    
         
            -
            copyparty/dxml.py,sha256= 
     | 
| 
      
 10 
     | 
    
         
            +
            copyparty/cfg.py,sha256=5QJPyuCUoQn2svd-4zzFmC0As13b08qenNJhPF5YkOU,10638
         
     | 
| 
      
 11 
     | 
    
         
            +
            copyparty/dxml.py,sha256=vu5uZQtwvwoqnFHbULs2Zh_y2DETu0T-ENpMZ1i2CV4,2505
         
     | 
| 
       12 
12 
     | 
    
         
             
            copyparty/fsutil.py,sha256=IVOFG8zBQPMQDDv7RIStSJHwHiAnVNROZS37O5k465A,4524
         
     | 
| 
       13 
13 
     | 
    
         
             
            copyparty/ftpd.py,sha256=T97SFS7JFtvRLbJX8C4fJSYwe13vhN3-E6emtlVmqLA,17608
         
     | 
| 
       14 
     | 
    
         
            -
            copyparty/httpcli.py,sha256= 
     | 
| 
      
 14 
     | 
    
         
            +
            copyparty/httpcli.py,sha256=yXpUvHcU3AKwQLEyvC-p-8mWdcuDJSueWg7J2gHzMCs,216276
         
     | 
| 
       15 
15 
     | 
    
         
             
            copyparty/httpconn.py,sha256=mQSgljh0Q-jyWjF4tQLrHbRKRe9WKl19kGqsGMsJpWo,6880
         
     | 
| 
       16 
16 
     | 
    
         
             
            copyparty/httpsrv.py,sha256=pxH_Eh8ElBLvOEDejgpP9Bvk65HNEou-03aYIcgXhrs,18090
         
     | 
| 
       17 
17 
     | 
    
         
             
            copyparty/ico.py,sha256=eWSxEae4wOCfheHl-m-wchYvFRAR_97kJDb4NGaB-Z8,3561
         
     | 
| 
         @@ -24,15 +24,15 @@ 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 
26 
     | 
    
         
             
            copyparty/sutil.py,sha256=6zEEGl4hRe6bTB83Y_RtnBGxr2JcUa__GdiAMqNJZnY,3208
         
     | 
| 
       27 
     | 
    
         
            -
            copyparty/svchub.py,sha256= 
     | 
| 
      
 27 
     | 
    
         
            +
            copyparty/svchub.py,sha256=mgZ2UndrMqWuUywecsCgVz488WoS0EFHR94VvWZjeT0,41454
         
     | 
| 
       28 
28 
     | 
    
         
             
            copyparty/szip.py,sha256=HFtnwOiBgx0HMLUf-h_T84zSlRijPxmhRo5PM613kRA,8602
         
     | 
| 
       29 
29 
     | 
    
         
             
            copyparty/tcpsrv.py,sha256=2q18dGR8jnezA4SMfUXa-wrGRGX3nHIwkxkWvkTzF2A,19889
         
     | 
| 
       30 
30 
     | 
    
         
             
            copyparty/tftpd.py,sha256=PXgG4rTmiaU_TavSyZWD5cFphdfChs9YvNY21qfExt8,13611
         
     | 
| 
       31 
     | 
    
         
            -
            copyparty/th_cli.py,sha256= 
     | 
| 
       32 
     | 
    
         
            -
            copyparty/th_srv.py,sha256= 
     | 
| 
      
 31 
     | 
    
         
            +
            copyparty/th_cli.py,sha256=PxDAmUvO_8Vm5edXiWtsCft0Fw69QL9rCHf9zLmUNeA,4800
         
     | 
| 
      
 32 
     | 
    
         
            +
            copyparty/th_srv.py,sha256=tHbh_Ve3v8tYclWH2thLs5oFufeXgJi1duUMveKIx9k,30725
         
     | 
| 
       33 
33 
     | 
    
         
             
            copyparty/u2idx.py,sha256=G6MDbD4I_sJSOwaNFZ6XLTQhnEDrB12pVKuKhzQ_leE,13676
         
     | 
| 
       34 
     | 
    
         
            -
            copyparty/up2k.py,sha256= 
     | 
| 
       35 
     | 
    
         
            -
            copyparty/util.py,sha256= 
     | 
| 
      
 34 
     | 
    
         
            +
            copyparty/up2k.py,sha256=alObSL1EVyPedi_24s7DBFlBzA0ZMkr9_jOtzdRV3vk,175427
         
     | 
| 
      
 35 
     | 
    
         
            +
            copyparty/util.py,sha256=Y_znSn3hBNYaaduwcCB7mmBYsi6vv9CYC1zJ9rq9yeQ,99435
         
     | 
| 
       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
         
     | 
| 
         @@ -55,17 +55,17 @@ copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUu 
     | 
|
| 
       55 
55 
     | 
    
         
             
            copyparty/stolen/ifaddr/_shared.py,sha256=uNC4SdEIgdSLKvuUzsf1aM-H1Xrc_9mpLoOT43YukGs,6206
         
     | 
| 
       56 
56 
     | 
    
         
             
            copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
         
     | 
| 
       57 
57 
     | 
    
         
             
            copyparty/web/baguettebox.js.gz,sha256=_amC3ipOrXKEFz8DsVP-JEl49VjMQYiKyF78eWfG-uk,7965
         
     | 
| 
       58 
     | 
    
         
            -
            copyparty/web/browser.css.gz,sha256= 
     | 
| 
      
 58 
     | 
    
         
            +
            copyparty/web/browser.css.gz,sha256=fs6dyfIin4XNWlw3d6dOInZaW0U33-hZKMwRCB3ge-Y,11645
         
     | 
| 
       59 
59 
     | 
    
         
             
            copyparty/web/browser.html,sha256=dekrZQ6w8ciB-QPlp-mjcuzUVKlsCYcvvi6efmXRfQE,4822
         
     | 
| 
       60 
     | 
    
         
            -
            copyparty/web/browser.js.gz,sha256= 
     | 
| 
      
 60 
     | 
    
         
            +
            copyparty/web/browser.js.gz,sha256=fWJQDCxwSl9QcEWablUus5C62S2ZsKHqIKzyLZvbbZM,91162
         
     | 
| 
       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 
65 
     | 
    
         
             
            copyparty/web/md.html,sha256=hz-xJVfKtaeTUQn3tGh7ebIMvLbOjVKkrMhsCTr3lGM,4200
         
     | 
| 
       66 
     | 
    
         
            -
            copyparty/web/md.js.gz,sha256= 
     | 
| 
      
 66 
     | 
    
         
            +
            copyparty/web/md.js.gz,sha256=m5dpIskZZ8FD9X-L0EWpoZP-yLOo-PCWJ7j4AFtHVRI,4163
         
     | 
| 
       67 
67 
     | 
    
         
             
            copyparty/web/md2.css.gz,sha256=uIVHKScThdbcfhXNSHgKZnALYpxbnXC-WuEzOJ20Lpc,699
         
     | 
| 
       68 
     | 
    
         
            -
            copyparty/web/md2.js.gz,sha256= 
     | 
| 
      
 68 
     | 
    
         
            +
            copyparty/web/md2.js.gz,sha256=z3JASmIT5PVEWgTpHpc4uBkZsbqgtSF4Nt0w2b_8Mek,8355
         
     | 
| 
       69 
69 
     | 
    
         
             
            copyparty/web/mde.css.gz,sha256=2SkAEDKIRPqywNJ8t_heQaeBQ_R73Rf-pQI_bDoKF6o,942
         
     | 
| 
       70 
70 
     | 
    
         
             
            copyparty/web/mde.html,sha256=fRGUlnNhK6ra8P4jskQLUw6Aaef6g6Heh4EEgYhJkxU,1770
         
     | 
| 
       71 
71 
     | 
    
         
             
            copyparty/web/mde.js.gz,sha256=kN2eUSvr4mFuksfK4-4LimJmWdwsao39Sea2lWtu8L0,2224
         
     | 
| 
         @@ -80,15 +80,15 @@ copyparty/web/shares.js.gz,sha256=emeY2-wjkh8x1JgaW6ny5fcC7XpZzZzfE1f-sEyntQ4,94 
     | 
|
| 
       80 
80 
     | 
    
         
             
            copyparty/web/splash.css.gz,sha256=S8_A7JJl71xACRBYGzafeaD82OacW6Fa7oKPiNyrhAs,1087
         
     | 
| 
       81 
81 
     | 
    
         
             
            copyparty/web/splash.html,sha256=QEnTH9QZXFmAuyVtgqOuuHKBtIdi7uclpRqe0ZMewj4,6249
         
     | 
| 
       82 
82 
     | 
    
         
             
            copyparty/web/splash.js.gz,sha256=4VqNznN10-bT33IJm3VWzBEJ1s08XZyxFB1TYPUkuAo,2739
         
     | 
| 
       83 
     | 
    
         
            -
            copyparty/web/svcs.html,sha256= 
     | 
| 
       84 
     | 
    
         
            -
            copyparty/web/svcs.js.gz,sha256= 
     | 
| 
      
 83 
     | 
    
         
            +
            copyparty/web/svcs.html,sha256=dnE1fG15zOpq7u0GYt8ij6BUv_LTwsiipFeneVYlMsM,14140
         
     | 
| 
      
 84 
     | 
    
         
            +
            copyparty/web/svcs.js.gz,sha256=lMXEP9W-VlXyANlva4q0ASSxvvHYlE2CrmxGgZXZop0,713
         
     | 
| 
       85 
85 
     | 
    
         
             
            copyparty/web/ui.css.gz,sha256=0sHIwGsL3_xH8Uu6N0Ag3bKBTjf-e_yfFbKynEZXAnk,2800
         
     | 
| 
       86 
     | 
    
         
            -
            copyparty/web/up2k.js.gz,sha256= 
     | 
| 
       87 
     | 
    
         
            -
            copyparty/web/util.js.gz,sha256= 
     | 
| 
      
 86 
     | 
    
         
            +
            copyparty/web/up2k.js.gz,sha256=N4idIqOefXurVh4ZhN6lv9nFPX_azLwE41vhXT2qBkI,23833
         
     | 
| 
      
 87 
     | 
    
         
            +
            copyparty/web/util.js.gz,sha256=amPEbzFzNKmkM40jeGYB3h7wpgpHNSxHX19vcNAH8MI,15087
         
     | 
| 
       88 
88 
     | 
    
         
             
            copyparty/web/w.hash.js.gz,sha256=l3GpSJD6mcU-1CRWkIj7PybgbjlfSr8oeO3vortIrQk,1105
         
     | 
| 
       89 
89 
     | 
    
         
             
            copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         
     | 
| 
       90 
90 
     | 
    
         
             
            copyparty/web/a/partyfuse.py,sha256=9p5Hpg_IBiSimv7j9kmPhCGpy-FLXSRUOYnLjJ5JifU,28049
         
     | 
| 
       91 
     | 
    
         
            -
            copyparty/web/a/u2c.py,sha256= 
     | 
| 
      
 91 
     | 
    
         
            +
            copyparty/web/a/u2c.py,sha256=N9NZHF6CbooNxIYkZMVz7wWTMh88nXCXcd4bDKzaanw,51603
         
     | 
| 
       92 
92 
     | 
    
         
             
            copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
         
     | 
| 
       93 
93 
     | 
    
         
             
            copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
         
     | 
| 
       94 
94 
     | 
    
         
             
            copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
         
     | 
| 
         @@ -109,9 +109,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV 
     | 
|
| 
       109 
109 
     | 
    
         
             
            copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
         
     | 
| 
       110 
110 
     | 
    
         
             
            copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
         
     | 
| 
       111 
111 
     | 
    
         
             
            copyparty/web/deps/sha512.hw.js.gz,sha256=UAed2_ocklZCnIzcSYz2h4P1ycztlCLj-ewsRTud2lU,7939
         
     | 
| 
       112 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
       113 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
       114 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
       115 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
       116 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
       117 
     | 
    
         
            -
            copyparty-1.16. 
     | 
| 
      
 112 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
         
     | 
| 
      
 113 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/METADATA,sha256=jfn07zPGG_EjIYU98IOARjSf-SeRyeUGOVda-LxVtJc,146927
         
     | 
| 
      
 114 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
         
     | 
| 
      
 115 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
         
     | 
| 
      
 116 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
         
     | 
| 
      
 117 
     | 
    
         
            +
            copyparty-1.16.10.dist-info/RECORD,,
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |