copyparty 1.16.18__py3-none-any.whl → 1.16.20__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/__init__.py +1 -1
- copyparty/__main__.py +21 -2
- copyparty/__version__.py +2 -2
- copyparty/authsrv.py +62 -9
- copyparty/cfg.py +3 -0
- copyparty/httpcli.py +44 -24
- copyparty/ico.py +13 -2
- copyparty/pwhash.py +1 -1
- copyparty/svchub.py +164 -61
- copyparty/tcpsrv.py +1 -1
- copyparty/th_cli.py +23 -4
- copyparty/th_srv.py +62 -7
- copyparty/u2idx.py +2 -2
- copyparty/up2k.py +7 -4
- copyparty/util.py +81 -3
- copyparty/web/browser.css.gz +0 -0
- copyparty/web/browser.js.gz +0 -0
- copyparty/web/deps/marked.js.gz +0 -0
- copyparty/web/splash.html +1 -1
- copyparty/web/ui.css.gz +0 -0
- copyparty/web/up2k.js.gz +0 -0
- copyparty/web/util.js.gz +0 -0
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/METADATA +15 -3
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/RECORD +28 -28
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/WHEEL +1 -1
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/entry_points.txt +0 -0
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/licenses/LICENSE +0 -0
- {copyparty-1.16.18.dist-info → copyparty-1.16.20.dist-info}/top_level.txt +0 -0
copyparty/util.py
CHANGED
@@ -114,8 +114,14 @@ IP6ALL = "0:0:0:0:0:0:0:0"
|
|
114
114
|
|
115
115
|
|
116
116
|
try:
|
117
|
-
import ctypes
|
118
117
|
import fcntl
|
118
|
+
|
119
|
+
HAVE_FCNTL = True
|
120
|
+
except:
|
121
|
+
HAVE_FCNTL = False
|
122
|
+
|
123
|
+
try:
|
124
|
+
import ctypes
|
119
125
|
import termios
|
120
126
|
except:
|
121
127
|
pass
|
@@ -225,7 +231,7 @@ SYMTIME = PY36 and os.utime in os.supports_follow_symlinks
|
|
225
231
|
META_NOBOTS = '<meta name="robots" content="noindex, nofollow">\n'
|
226
232
|
|
227
233
|
# smart enough to understand javascript while also ignoring rel="nofollow"
|
228
|
-
BAD_BOTS = r"Barkrowler|bingbot|BLEXBot|Googlebot|GPTBot|PetalBot|SeekportBot|SemrushBot|YandexBot"
|
234
|
+
BAD_BOTS = r"Barkrowler|bingbot|BLEXBot|Googlebot|GoogleOther|GPTBot|PetalBot|SeekportBot|SemrushBot|YandexBot"
|
229
235
|
|
230
236
|
FFMPEG_URL = "https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z"
|
231
237
|
|
@@ -1464,6 +1470,12 @@ def vol_san(vols , txt ) :
|
|
1464
1470
|
txt = txt.replace(bap.replace(b"\\", b"\\\\"), bvp)
|
1465
1471
|
txt = txt.replace(bhp.replace(b"\\", b"\\\\"), bvph)
|
1466
1472
|
|
1473
|
+
if vol.histpath != vol.dbpath:
|
1474
|
+
bdp = vol.dbpath.encode("utf-8")
|
1475
|
+
bdph = b"$db(/" + bvp + b")"
|
1476
|
+
txt = txt.replace(bdp, bdph)
|
1477
|
+
txt = txt.replace(bdp.replace(b"\\", b"\\\\"), bdph)
|
1478
|
+
|
1467
1479
|
if txt != txt0:
|
1468
1480
|
txt += b"\r\nNOTE: filepaths sanitized; see serverlog for correct values"
|
1469
1481
|
|
@@ -3843,8 +3855,74 @@ def hidedir(dp) :
|
|
3843
3855
|
pass
|
3844
3856
|
|
3845
3857
|
|
3858
|
+
_flocks = {}
|
3859
|
+
|
3860
|
+
|
3861
|
+
def _lock_file_noop(ap ) :
|
3862
|
+
return True
|
3863
|
+
|
3864
|
+
|
3865
|
+
def _lock_file_ioctl(ap ) :
|
3866
|
+
try:
|
3867
|
+
fd = _flocks.pop(ap)
|
3868
|
+
os.close(fd)
|
3869
|
+
except:
|
3870
|
+
pass
|
3871
|
+
|
3872
|
+
fd = os.open(ap, os.O_RDWR | os.O_CREAT, 438)
|
3873
|
+
# NOTE: the fcntl.lockf identifier is (pid,node);
|
3874
|
+
# the lock will be dropped if os.close(os.open(ap))
|
3875
|
+
# is performed anywhere else in this thread
|
3876
|
+
|
3877
|
+
try:
|
3878
|
+
fcntl.lockf(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
|
3879
|
+
_flocks[ap] = fd
|
3880
|
+
return True
|
3881
|
+
except Exception as ex:
|
3882
|
+
eno = getattr(ex, "errno", -1)
|
3883
|
+
try:
|
3884
|
+
os.close(fd)
|
3885
|
+
except:
|
3886
|
+
pass
|
3887
|
+
if eno in (errno.EAGAIN, errno.EACCES):
|
3888
|
+
return False
|
3889
|
+
print("WARNING: unexpected errno %d from fcntl.lockf; %r" % (eno, ex))
|
3890
|
+
return True
|
3891
|
+
|
3892
|
+
|
3893
|
+
def _lock_file_windows(ap ) :
|
3894
|
+
try:
|
3895
|
+
import msvcrt
|
3896
|
+
|
3897
|
+
try:
|
3898
|
+
fd = _flocks.pop(ap)
|
3899
|
+
os.close(fd)
|
3900
|
+
except:
|
3901
|
+
pass
|
3902
|
+
|
3903
|
+
fd = os.open(ap, os.O_RDWR | os.O_CREAT, 438)
|
3904
|
+
msvcrt.locking(fd, msvcrt.LK_NBLCK, 1)
|
3905
|
+
return True
|
3906
|
+
except Exception as ex:
|
3907
|
+
eno = getattr(ex, "errno", -1)
|
3908
|
+
if eno == errno.EACCES:
|
3909
|
+
return False
|
3910
|
+
print("WARNING: unexpected errno %d from msvcrt.locking; %r" % (eno, ex))
|
3911
|
+
return True
|
3912
|
+
|
3913
|
+
|
3914
|
+
if os.environ.get("PRTY_NO_DB_LOCK"):
|
3915
|
+
lock_file = _lock_file_noop
|
3916
|
+
elif ANYWIN:
|
3917
|
+
lock_file = _lock_file_windows
|
3918
|
+
elif HAVE_FCNTL:
|
3919
|
+
lock_file = _lock_file_ioctl
|
3920
|
+
else:
|
3921
|
+
lock_file = _lock_file_noop
|
3922
|
+
|
3923
|
+
|
3846
3924
|
try:
|
3847
|
-
if sys.version_info < (3, 10):
|
3925
|
+
if sys.version_info < (3, 10) or os.environ.get("PRTY_NO_IMPRESO"):
|
3848
3926
|
# py3.8 doesn't have .files
|
3849
3927
|
# py3.9 has broken .is_file
|
3850
3928
|
raise ImportError()
|
copyparty/web/browser.css.gz
CHANGED
Binary file
|
copyparty/web/browser.js.gz
CHANGED
Binary file
|
copyparty/web/deps/marked.js.gz
CHANGED
Binary file
|
copyparty/web/splash.html
CHANGED
@@ -122,7 +122,7 @@
|
|
122
122
|
<input type="hidden" id="la" name="act" value="login" />
|
123
123
|
<input type="password" id="lp" name="cppwd" placeholder=" password" />
|
124
124
|
<input type="hidden" name="uhash" id="uhash" value="x" />
|
125
|
-
<input type="submit" id="ls" value="
|
125
|
+
<input type="submit" id="ls" value="login" />
|
126
126
|
{% if chpw %}
|
127
127
|
<a id="x" href="#">change password</a>
|
128
128
|
{% endif %}
|
copyparty/web/ui.css.gz
CHANGED
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.16.
|
3
|
+
Version: 1.16.20
|
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
|
@@ -339,6 +339,8 @@ small collection of user feedback
|
|
339
339
|
|
340
340
|
`good enough`, `surprisingly correct`, `certified good software`, `just works`, `why`, `wow this is better than nextcloud`
|
341
341
|
|
342
|
+
* UI просто ужасно. Если буду описывать детально не смогу удержаться в рамках приличий
|
343
|
+
|
342
344
|
|
343
345
|
# motivations
|
344
346
|
|
@@ -387,7 +389,8 @@ roughly sorted by chance of encounter
|
|
387
389
|
* `--th-ff-jpg` may fix video thumbnails on some FFmpeg versions (macos, some linux)
|
388
390
|
* `--th-ff-swr` may fix audio thumbnails on some FFmpeg versions
|
389
391
|
* if the `up2k.db` (filesystem index) is on a samba-share or network disk, you'll get unpredictable behavior if the share is disconnected for a bit
|
390
|
-
* use `--hist` or the `hist` volflag (`-v [...]:c,hist=/tmp/foo`) to place the db on a local disk instead
|
392
|
+
* use `--hist` or the `hist` volflag (`-v [...]:c,hist=/tmp/foo`) to place the db and thumbnails on a local disk instead
|
393
|
+
* or, if you only want to move the db (and not the thumbnails), then use `--dbpath` or the `dbpath` volflag
|
391
394
|
* all volumes must exist / be available on startup; up2k (mtp especially) gets funky otherwise
|
392
395
|
* probably more, pls let me know
|
393
396
|
|
@@ -440,7 +443,8 @@ same order here too
|
|
440
443
|
* this is an msys2 bug, the regular windows edition of python is fine
|
441
444
|
|
442
445
|
* VirtualBox: sqlite throws `Disk I/O Error` when running in a VM and the up2k database is in a vboxsf
|
443
|
-
* use `--hist` or the `hist` volflag (`-v [...]:c,hist=/tmp/foo`) to place the db inside the vm instead
|
446
|
+
* use `--hist` or the `hist` volflag (`-v [...]:c,hist=/tmp/foo`) to place the db and thumbnails inside the vm instead
|
447
|
+
* or, if you only want to move the db (and not the thumbnails), then use `--dbpath` or the `dbpath` volflag
|
444
448
|
* also happens on mergerfs, so put the db elsewhere
|
445
449
|
|
446
450
|
* Ubuntu: dragging files from certain folders into firefox or chrome is impossible
|
@@ -862,6 +866,8 @@ if you are resuming a massive upload and want to skip hashing the files which al
|
|
862
866
|
|
863
867
|
if the server is behind a proxy which imposes a request-size limit, you can configure up2k to sneak below the limit with server-option `--u2sz` (the default is 96 MiB to support Cloudflare)
|
864
868
|
|
869
|
+
if you want to replace existing files on the server with new uploads by default, run with `--u2ow 2` (only works if users have the delete-permission, and can still be disabled with `🛡️` in the UI)
|
870
|
+
|
865
871
|
|
866
872
|
### file-search
|
867
873
|
|
@@ -1650,6 +1656,8 @@ copyparty creates a subfolder named `.hist` inside each volume where it stores t
|
|
1650
1656
|
this can instead be kept in a single place using the `--hist` argument, or the `hist=` volflag, or a mix of both:
|
1651
1657
|
* `--hist ~/.cache/copyparty -v ~/music::r:c,hist=-` sets `~/.cache/copyparty` as the default place to put volume info, but `~/music` gets the regular `.hist` subfolder (`-` restores default behavior)
|
1652
1658
|
|
1659
|
+
by default, the per-volume `up2k.db` sqlite3-database for `-e2d` and `-e2t` is stored next to the thumbnails according to the `--hist` option, but the global-option `--dbpath` and/or volflag `dbpath` can be used to put the database somewhere else
|
1660
|
+
|
1653
1661
|
note:
|
1654
1662
|
* putting the hist-folders on an SSD is strongly recommended for performance
|
1655
1663
|
* markdown edits are always stored in a local `.hist` subdirectory
|
@@ -2185,7 +2193,9 @@ buggy feature? rip it out by setting any of the following environment variables
|
|
2185
2193
|
|
2186
2194
|
| env-var | what it does |
|
2187
2195
|
| -------------------- | ------------ |
|
2196
|
+
| `PRTY_NO_DB_LOCK` | do not lock session/shares-databases for exclusive access |
|
2188
2197
|
| `PRTY_NO_IFADDR` | disable ip/nic discovery by poking into your OS with ctypes |
|
2198
|
+
| `PRTY_NO_IMPRESO` | do not try to load js/css files using `importlib.resources` |
|
2189
2199
|
| `PRTY_NO_IPV6` | disable some ipv6 support (should not be necessary since windows 2000) |
|
2190
2200
|
| `PRTY_NO_LZMA` | disable streaming xz compression of incoming uploads |
|
2191
2201
|
| `PRTY_NO_MP` | disable all use of the python `multiprocessing` module (actual multithreading, cpu-count for parsers/thumbnailers) |
|
@@ -2503,6 +2513,8 @@ below are some tweaks roughly ordered by usefulness:
|
|
2503
2513
|
* `--no-hash .` when indexing a network-disk if you don't care about the actual filehashes and only want the names/tags searchable
|
2504
2514
|
* if your volumes are on a network-disk such as NFS / SMB / s3, specifying larger values for `--iobuf` and/or `--s-rd-sz` and/or `--s-wr-sz` may help; try setting all of them to `524288` or `1048576` or `4194304`
|
2505
2515
|
* `--no-htp --hash-mt=0 --mtag-mt=1 --th-mt=1` minimizes the number of threads; can help in some eccentric environments (like the vscode debugger)
|
2516
|
+
* when running on AlpineLinux or other musl-based distro, try mimalloc for higher performance (and twice as much RAM usage); `apk add mimalloc2` and run copyparty with env-var `LD_PRELOAD=/usr/lib/libmimalloc-secure.so.2`
|
2517
|
+
* note that mimalloc requires special care when combined with prisonparty and/or bubbleparty/bubblewrap; you must give it access to `/proc` and `/sys` otherwise you'll encounter issues with FFmpeg (audio transcoding, thumbnails)
|
2506
2518
|
* `-j0` enables multiprocessing (actual multithreading), can reduce latency to `20+80/numCores` percent and generally improve performance in cpu-intensive workloads, for example:
|
2507
2519
|
* lots of connections (many users or heavy clients)
|
2508
2520
|
* simultaneous downloads and uploads saturating a 20gbps connection
|
@@ -1,38 +1,38 @@
|
|
1
|
-
copyparty/__init__.py,sha256=
|
2
|
-
copyparty/__main__.py,sha256=
|
3
|
-
copyparty/__version__.py,sha256=
|
4
|
-
copyparty/authsrv.py,sha256=
|
1
|
+
copyparty/__init__.py,sha256=TnFSStmHlwlRIClWW8jSHxZpt3dl_kN6_pEnqBqh3mE,2638
|
2
|
+
copyparty/__main__.py,sha256=CpLrZnUB6NZLjUTV5Z5deaR2PkVcmaz5USgv0Ufs4K8,119405
|
3
|
+
copyparty/__version__.py,sha256=SA89vIgdFcMeHnlEvEu-dBge3avvPsAzDaUsiBCRFgs,252
|
4
|
+
copyparty/authsrv.py,sha256=S4HrUq-C6wpe_IT3KN75yo9GJw9Uzj5y558ooYCQqng,113286
|
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=
|
10
|
+
copyparty/cfg.py,sha256=EilhOIMLopgvn5j72MaRFS0q78K9Xf0NU0I7EAs3YAQ,14269
|
11
11
|
copyparty/dxml.py,sha256=vu5uZQtwvwoqnFHbULs2Zh_y2DETu0T-ENpMZ1i2CV4,2505
|
12
12
|
copyparty/fsutil.py,sha256=NC_CJC4TDag399vVDH9_uQfdfpTMwRFLNxERSWhlVvs,4594
|
13
13
|
copyparty/ftpd.py,sha256=G7PApVIFeSzRo4-D-9uRb8NxYgz6nFwTEbrOk1ErYCU,17969
|
14
|
-
copyparty/httpcli.py,sha256=
|
14
|
+
copyparty/httpcli.py,sha256=2EEQfjIa2rDwcFslTKPAkPCS14a8Hj7TJj6c-khRIFk,222000
|
15
15
|
copyparty/httpconn.py,sha256=mQSgljh0Q-jyWjF4tQLrHbRKRe9WKl19kGqsGMsJpWo,6880
|
16
16
|
copyparty/httpsrv.py,sha256=pxH_Eh8ElBLvOEDejgpP9Bvk65HNEou-03aYIcgXhrs,18090
|
17
|
-
copyparty/ico.py,sha256
|
17
|
+
copyparty/ico.py,sha256=-7QjF_jIxnPo4Vr0oUPksQ_U_Ef0HRsSPm3s71idOz8,3879
|
18
18
|
copyparty/mdns.py,sha256=G73OWWg1copda47LgayCRK7qjVrk6cnUGpMR5ugmi7o,18315
|
19
19
|
copyparty/metrics.py,sha256=1dim0ShnsD5cfspRbeN9Mt14wOIxPRtxCZY2IScikKw,8974
|
20
20
|
copyparty/mtag.py,sha256=7lINRFc1Vrc-ebP2hU3dBHH3BRFOnEmEZ0jzlpYb8Jg,19910
|
21
21
|
copyparty/multicast.py,sha256=Me4XEEJijvvK2lMRwmGU2hsaI5_E9AEpCjIC4b9UefA,12393
|
22
|
-
copyparty/pwhash.py,sha256=
|
22
|
+
copyparty/pwhash.py,sha256=zHoz9FHGkFBxoRvSfG1XyjN3ibww_h5GE6_m5yS-fws,4246
|
23
23
|
copyparty/smbd.py,sha256=dixFl2wlWymq_Cycc8a4cVB4gY8RSg2e3tE7Xr-aDa0,14614
|
24
24
|
copyparty/ssdp.py,sha256=R1Z61GZOxBMF2Sk4RTxKWMOemogmcjEWG-CvLihd45k,7023
|
25
25
|
copyparty/star.py,sha256=tV5BbX6AiQ7N4UU8DYtSTckNYeoeey4DBqq4LjfymbY,3818
|
26
26
|
copyparty/sutil.py,sha256=6zEEGl4hRe6bTB83Y_RtnBGxr2JcUa__GdiAMqNJZnY,3208
|
27
|
-
copyparty/svchub.py,sha256
|
27
|
+
copyparty/svchub.py,sha256=Fn-qmJHtfZ0BgvRDCSPs0uqYg90kGj80a8KyEMLcd_I,46337
|
28
28
|
copyparty/szip.py,sha256=7_RVwHCGk7ON79sAB5HAIUbTEbjDDtn99141aGaI_MA,8596
|
29
|
-
copyparty/tcpsrv.py,sha256=
|
29
|
+
copyparty/tcpsrv.py,sha256=F5K4Qr4eBLfhdLT_39yDf6ftrhWuGTrd6DSqqp_6e-Q,20480
|
30
30
|
copyparty/tftpd.py,sha256=HAXNbIM7I3yFng_a4ubLWGQ4trRTineAZsUPTZDWNQs,14001
|
31
|
-
copyparty/th_cli.py,sha256=
|
32
|
-
copyparty/th_srv.py,sha256=
|
33
|
-
copyparty/u2idx.py,sha256=
|
34
|
-
copyparty/up2k.py,sha256=
|
35
|
-
copyparty/util.py,sha256=
|
31
|
+
copyparty/th_cli.py,sha256=IEX5tCb0gw9Z2aRIDL9bwdvJ6g5jhWZ8OEAAz16_xN4,5426
|
32
|
+
copyparty/th_srv.py,sha256=ibEQL9LSYcwo7YXSaW5hNmH1SZex8Pud7-dsSkBRQ-A,32544
|
33
|
+
copyparty/u2idx.py,sha256=4Y5OOPyVkc-pS0z6e3p4StXAMnjHobSOMmMsvNUTD34,13674
|
34
|
+
copyparty/up2k.py,sha256=0Fj2yT2XnJ4MhwdEcDRs1T-gsdxVhdIxdaZSjGyGKBA,177682
|
35
|
+
copyparty/util.py,sha256=qkPD9LFPgLhpmCic_IBvutS2extujDiRrG75PnLMY90,102987
|
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,9 +55,9 @@ 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=r2c_hOZV_RTyl4CqWWX14FDWP8nnDVwGkDl4Sfk0rU4,8239
|
58
|
-
copyparty/web/browser.css.gz,sha256=
|
58
|
+
copyparty/web/browser.css.gz,sha256=5n-uSw003hMJB4HZKOcWJQFENoNOEg1Q1bngkqIfL28,11654
|
59
59
|
copyparty/web/browser.html,sha256=auvhLVE_t0aIN0q-nk0zOWFqITgDhroMAAviBNLoFfc,4788
|
60
|
-
copyparty/web/browser.js.gz,sha256=
|
60
|
+
copyparty/web/browser.js.gz,sha256=uJNkyHmyWmjPerphoOsxdpTAx1xodxgOwcX3HrT6G7M,92490
|
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
|
@@ -78,13 +78,13 @@ copyparty/web/shares.css.gz,sha256=SdPlZCBwz9tkPkgEo5pSPDOZSI079njxEfkJ64-iW3c,5
|
|
78
78
|
copyparty/web/shares.html,sha256=YctvUrKuBYu42kxVylyW2_DEHm7Ik6uHqzfzVZ4N0ac,2545
|
79
79
|
copyparty/web/shares.js.gz,sha256=emeY2-wjkh8x1JgaW6ny5fcC7XpZzZzfE1f-sEyntQ4,940
|
80
80
|
copyparty/web/splash.css.gz,sha256=S8_A7JJl71xACRBYGzafeaD82OacW6Fa7oKPiNyrhAs,1087
|
81
|
-
copyparty/web/splash.html,sha256=
|
81
|
+
copyparty/web/splash.html,sha256=ouFB1P9g0K-S3LZQtOLfNz3GLXIRjyETkxo9aJZhiYk,6249
|
82
82
|
copyparty/web/splash.js.gz,sha256=4VqNznN10-bT33IJm3VWzBEJ1s08XZyxFB1TYPUkuAo,2739
|
83
83
|
copyparty/web/svcs.html,sha256=dnE1fG15zOpq7u0GYt8ij6BUv_LTwsiipFeneVYlMsM,14140
|
84
84
|
copyparty/web/svcs.js.gz,sha256=lMXEP9W-VlXyANlva4q0ASSxvvHYlE2CrmxGgZXZop0,713
|
85
|
-
copyparty/web/ui.css.gz,sha256=
|
86
|
-
copyparty/web/up2k.js.gz,sha256=
|
87
|
-
copyparty/web/util.js.gz,sha256=
|
85
|
+
copyparty/web/ui.css.gz,sha256=iDjrmq32aDN6l2S5AjCQdKjD6bxmzP6ji2WjM1FjKiU,2819
|
86
|
+
copyparty/web/up2k.js.gz,sha256=7AKmoJOtFh9tx3Ha7w2F-z69-XZo_LzyR3ilWnBO_D8,24524
|
87
|
+
copyparty/web/util.js.gz,sha256=VTLY_F51Dwcz2-WANt9LVPYHCH0dEA2in9ISW8w25ss,15213
|
88
88
|
copyparty/web/w.hash.js.gz,sha256=JhJagnqIkcKng_hs6otEgzcuQE7keToG_r5dd2o3EfU,1108
|
89
89
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
90
90
|
copyparty/web/a/partyfuse.py,sha256=9p5Hpg_IBiSimv7j9kmPhCGpy-FLXSRUOYnLjJ5JifU,28049
|
@@ -100,7 +100,7 @@ copyparty/web/deps/busy.mp3.gz,sha256=EVphk1_HYyRKJmtpeK99vbAstF7ub1f9ndu020H8PQ
|
|
100
100
|
copyparty/web/deps/easymde.css.gz,sha256=vWxfueI64rPikuqFj69wJBtGisqf93AheQtOZqgUI_c,3041
|
101
101
|
copyparty/web/deps/easymde.js.gz,sha256=rHBs4XWQe2bmv7ZzDIk43oxnTwrwpq5laYHhV5sKQQo,77014
|
102
102
|
copyparty/web/deps/fuse.py,sha256=6j4Zy3VpQg629pwwIW77v2LJ1hy-qlyrxwhXfKl9B7I,33426
|
103
|
-
copyparty/web/deps/marked.js.gz,sha256=
|
103
|
+
copyparty/web/deps/marked.js.gz,sha256=6GrdpSikQ-tt9GrcAl7wA7mp_Il_2T2ZvBeACVX1j1k,22665
|
104
104
|
copyparty/web/deps/mini-fa.css.gz,sha256=CTPrNaH8OTVmxajrGP88E2MkjadY9_81TBVnd9sw9Y8,572
|
105
105
|
copyparty/web/deps/mini-fa.woff,sha256=L9DNncV2TIyvsrspMbJouvnnt7F068Hbn7YZYvN76AU,2784
|
106
106
|
copyparty/web/deps/prism.css.gz,sha256=Z_A6rJ3MN5KWnjvXaV787aTW_5DT-xjFd0YZ7_W-Krk,1468
|
@@ -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.20.dist-info/licenses/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
|
113
|
+
copyparty-1.16.20.dist-info/METADATA,sha256=IfzJvVt-XFF8RyYEReXcNYcWJPhwFDD2k4R9S_Ut2Ck,160161
|
114
|
+
copyparty-1.16.20.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
115
|
+
copyparty-1.16.20.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
116
|
+
copyparty-1.16.20.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
117
|
+
copyparty-1.16.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|