copyparty 1.16.4__py3-none-any.whl → 1.16.6__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 +3 -0
- copyparty/__main__.py +6 -3
- copyparty/__version__.py +2 -2
- copyparty/authsrv.py +31 -18
- copyparty/fsutil.py +4 -4
- copyparty/httpcli.py +220 -79
- copyparty/httpsrv.py +6 -5
- copyparty/mtag.py +4 -4
- copyparty/smbd.py +1 -1
- copyparty/sutil.py +1 -1
- copyparty/tcpsrv.py +6 -6
- copyparty/tftpd.py +1 -1
- copyparty/th_cli.py +3 -3
- copyparty/th_srv.py +6 -6
- copyparty/u2idx.py +3 -3
- copyparty/up2k.py +91 -86
- copyparty/util.py +13 -13
- copyparty/web/deps/marked.js.gz +0 -0
- copyparty/web/rups.css.gz +0 -0
- copyparty/web/rups.html +67 -0
- copyparty/web/rups.js.gz +0 -0
- copyparty/web/shares.css.gz +0 -0
- copyparty/web/shares.html +2 -0
- copyparty/web/splash.html +1 -0
- copyparty/web/splash.js.gz +0 -0
- copyparty/web/svcs.html +0 -2
- copyparty/web/up2k.js.gz +0 -0
- copyparty/web/util.js.gz +0 -0
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/METADATA +20 -3
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/RECORD +34 -31
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/LICENSE +0 -0
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/WHEEL +0 -0
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/entry_points.txt +0 -0
- {copyparty-1.16.4.dist-info → copyparty-1.16.6.dist-info}/top_level.txt +0 -0
copyparty/util.py
CHANGED
@@ -943,7 +943,7 @@ class ProgressPrinter(threading.Thread):
|
|
943
943
|
now = time.time()
|
944
944
|
if msg and now - tp > 10:
|
945
945
|
tp = now
|
946
|
-
self.log("progress: %
|
946
|
+
self.log("progress: %r" % (msg,), 6)
|
947
947
|
|
948
948
|
if no_stdout:
|
949
949
|
continue
|
@@ -1543,7 +1543,7 @@ class MultipartParser(object):
|
|
1543
1543
|
(only the fallback non-js uploader relies on these filenames)
|
1544
1544
|
"""
|
1545
1545
|
for ln in read_header(self.sr, 2, 2592000):
|
1546
|
-
self.log(ln)
|
1546
|
+
self.log(repr(ln))
|
1547
1547
|
|
1548
1548
|
m = self.re_ctype.match(ln)
|
1549
1549
|
if m:
|
@@ -1831,11 +1831,11 @@ def gen_filekey_dbg(
|
|
1831
1831
|
if p2 != fspath:
|
1832
1832
|
raise Exception()
|
1833
1833
|
except:
|
1834
|
-
t = "maybe wrong abspath for filekey;\norig:
|
1835
|
-
log(t
|
1834
|
+
t = "maybe wrong abspath for filekey;\norig: %r\nreal: %r"
|
1835
|
+
log(t % (fspath, p2), 1)
|
1836
1836
|
|
1837
|
-
t = "fk(
|
1838
|
-
log(t
|
1837
|
+
t = "fk(%s) salt(%s) size(%d) inode(%d) fspath(%r) at(%s)"
|
1838
|
+
log(t % (ret[:8], salt, fsize, inode, fspath, ctx), 5)
|
1839
1839
|
|
1840
1840
|
return ret
|
1841
1841
|
|
@@ -2191,7 +2191,7 @@ def log_reloc(
|
|
2191
2191
|
rem ,
|
2192
2192
|
) :
|
2193
2193
|
nap, nvp, nfn, (nvn, nrem) = pm
|
2194
|
-
t = "reloc %s:\nold ap
|
2194
|
+
t = "reloc %s:\nold ap %r\nnew ap %r\033[36m/%r\033[0m\nold vp %r\nnew vp %r\033[36m/%r\033[0m\nold fn %r\nnew fn %r\nold vfs %r\nnew vfs %r\nold rem %r\nnew rem %r"
|
2195
2195
|
log(t % (re, ap, nap, nfn, vp, nvp, nfn, fn, nfn, vn.vpath, nvn.vpath, rem, nrem))
|
2196
2196
|
|
2197
2197
|
|
@@ -2362,7 +2362,7 @@ def lsof(log , abspath ) :
|
|
2362
2362
|
try:
|
2363
2363
|
rc, so, se = runcmd([b"lsof", b"-R", fsenc(abspath)], timeout=45)
|
2364
2364
|
zs = (so.strip() + "\n" + se.strip()).strip()
|
2365
|
-
log("lsof
|
2365
|
+
log("lsof %r = %s\n%s" % (abspath, rc, zs), 3)
|
2366
2366
|
except:
|
2367
2367
|
log("lsof failed; " + min_ex(), 3)
|
2368
2368
|
|
@@ -2398,17 +2398,17 @@ def _fs_mvrm(
|
|
2398
2398
|
for attempt in range(90210):
|
2399
2399
|
try:
|
2400
2400
|
if ino and os.stat(bsrc).st_ino != ino:
|
2401
|
-
t = "src inode changed; aborting %s %
|
2401
|
+
t = "src inode changed; aborting %s %r"
|
2402
2402
|
log(t % (act, src), 1)
|
2403
2403
|
return False
|
2404
2404
|
if (dst and not atomic) and os.path.exists(bdst):
|
2405
|
-
t = "something appeared at dst; aborting rename
|
2405
|
+
t = "something appeared at dst; aborting rename %r ==> %r"
|
2406
2406
|
log(t % (src, dst), 1)
|
2407
2407
|
return False
|
2408
2408
|
osfun(*args)
|
2409
2409
|
if attempt:
|
2410
2410
|
now = time.time()
|
2411
|
-
t = "%sd in %.2f sec, attempt %d: %
|
2411
|
+
t = "%sd in %.2f sec, attempt %d: %r"
|
2412
2412
|
log(t % (act, now - t0, attempt + 1, src))
|
2413
2413
|
return True
|
2414
2414
|
except OSError as ex:
|
@@ -2420,7 +2420,7 @@ def _fs_mvrm(
|
|
2420
2420
|
if not attempt:
|
2421
2421
|
if not PY2:
|
2422
2422
|
ino = os.stat(bsrc).st_ino
|
2423
|
-
t = "%s failed (err.%d); retrying for %d sec:
|
2423
|
+
t = "%s failed (err.%d); retrying for %d sec: %r"
|
2424
2424
|
log(t % (act, ex.errno, maxtime + 0.99, src))
|
2425
2425
|
|
2426
2426
|
time.sleep(chill)
|
@@ -3445,7 +3445,7 @@ def runhook(
|
|
3445
3445
|
log, src, cmd, ap, vp, host, uname, perms, mt, sz, ip, at, txt
|
3446
3446
|
)
|
3447
3447
|
if log and args.hook_v:
|
3448
|
-
log("hook(%s)
|
3448
|
+
log("hook(%s) %r => \033[32m%s" % (src, cmd, hr), 6)
|
3449
3449
|
if not hr:
|
3450
3450
|
return {}
|
3451
3451
|
for k, v in hr.items():
|
copyparty/web/deps/marked.js.gz
CHANGED
Binary file
|
Binary file
|
copyparty/web/rups.html
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<title>{{ s_doctitle }}</title>
|
7
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=0.8">
|
9
|
+
<meta name="theme-color" content="#{{ tcolor }}">
|
10
|
+
<link rel="stylesheet" media="screen" href="{{ r }}/.cpr/rups.css?_={{ ts }}">
|
11
|
+
<link rel="stylesheet" media="screen" href="{{ r }}/.cpr/ui.css?_={{ ts }}">
|
12
|
+
{{ html_head }}
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body>
|
16
|
+
<div id="wrap">
|
17
|
+
<a id="a" href="{{ r }}/?ru" class="af">refresh</a>
|
18
|
+
<a id="a" href="{{ r }}/?h" class="af">control-panel</a>
|
19
|
+
<form method="get" enctype="application/x-www-form-urlencoded" accept-charset="utf-8" action="{{ r }}">
|
20
|
+
<input type="hidden" name="ru" value="a" />
|
21
|
+
Filter: <input type="text" name="filter" size="20" placeholder="documents/passwords" value="{{ filt }}" />
|
22
|
+
<input type="submit" />
|
23
|
+
</form>
|
24
|
+
<span id="hits"></span>
|
25
|
+
<table id="tab"><thead><tr>
|
26
|
+
<th>size</th>
|
27
|
+
<th>who</th>
|
28
|
+
<th>when</th>
|
29
|
+
<th>age</th>
|
30
|
+
<th>dir</th>
|
31
|
+
<th>file</th>
|
32
|
+
</tr></thead><tbody>
|
33
|
+
{% for vp, evp, sz, ip, at in rows %}
|
34
|
+
<tr>
|
35
|
+
<td>{{ sz }}</td>
|
36
|
+
<td>{{ ip }}</td>
|
37
|
+
<td>{{ at }}</td>
|
38
|
+
<td>{{ (now-at) }}</td>
|
39
|
+
<td></td>
|
40
|
+
<td><a href="{{ r }}{{ evp }}">{{ vp|e }}</a></td>
|
41
|
+
</tr>
|
42
|
+
{% endfor %}
|
43
|
+
</tbody></table>
|
44
|
+
{% if not rows %}
|
45
|
+
(the database is not aware of any uploads)
|
46
|
+
{% endif %}
|
47
|
+
</div>
|
48
|
+
<a href="#" id="repl">π</a>
|
49
|
+
<script>
|
50
|
+
|
51
|
+
var SR = {{ r|tojson }},
|
52
|
+
NOW = {{ now }},
|
53
|
+
lang="{{ lang }}",
|
54
|
+
dfavico="{{ favico }}";
|
55
|
+
|
56
|
+
var STG = window.localStorage;
|
57
|
+
document.documentElement.className = (STG && STG.cpp_thm) || "{{ this.args.theme }}";
|
58
|
+
|
59
|
+
</script>
|
60
|
+
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
61
|
+
<script src="{{ r }}/.cpr/rups.js?_={{ ts }}"></script>
|
62
|
+
{%- if js %}
|
63
|
+
<script src="{{ js }}_={{ ts }}"></script>
|
64
|
+
{%- endif %}
|
65
|
+
</body>
|
66
|
+
</html>
|
67
|
+
|
copyparty/web/rups.js.gz
ADDED
Binary file
|
copyparty/web/shares.css.gz
CHANGED
Binary file
|
copyparty/web/shares.html
CHANGED
copyparty/web/splash.html
CHANGED
@@ -157,6 +157,7 @@
|
|
157
157
|
<blockquote id="ad">enabling no304 will disable all caching; try this if k304 wasn't enough. This will waste a huge amount of network traffic!</blockquote></li>
|
158
158
|
{% endif %}
|
159
159
|
|
160
|
+
<li><a id="af" href="{{ r }}/?ru">show recent uploads</a></li>
|
160
161
|
<li><a id="k" href="{{ r }}/?reset" class="r" onclick="localStorage.clear();return true">reset client settings</a></li>
|
161
162
|
</ul>
|
162
163
|
|
copyparty/web/splash.js.gz
CHANGED
Binary file
|
copyparty/web/svcs.html
CHANGED
@@ -53,7 +53,6 @@
|
|
53
53
|
{% if s %}
|
54
54
|
<li>running <code>rclone mount</code> on LAN (or just dont have valid certificates)? add <code>--no-check-certificate</code></li>
|
55
55
|
{% endif %}
|
56
|
-
<li>running <code>rclone mount</code> as root? add <code>--allow-other</code></li>
|
57
56
|
<li>old version of rclone? replace all <code>=</code> with <code> </code> (space)</li>
|
58
57
|
</ul>
|
59
58
|
|
@@ -137,7 +136,6 @@
|
|
137
136
|
{% if args.ftps %}
|
138
137
|
<li>running on LAN (or just dont have valid certificates)? add <code>no_check_certificate=true</code> to the config command</li>
|
139
138
|
{% endif %}
|
140
|
-
<li>running <code>rclone mount</code> as root? add <code>--allow-other</code></li>
|
141
139
|
<li>old version of rclone? replace all <code>=</code> with <code> </code> (space)</li>
|
142
140
|
</ul>
|
143
141
|
<p>if you want to use the native FTP client in windows instead (please dont), press <code>win+R</code> and run this command:</p>
|
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.1
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.6
|
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
|
@@ -103,6 +103,7 @@ turn almost any device into a file server with resumable uploads/downloads using
|
|
103
103
|
* [shares](#shares) - share a file or folder by creating a temporary link
|
104
104
|
* [batch rename](#batch-rename) - select some files and press `F2` to bring up the rename UI
|
105
105
|
* [rss feeds](#rss-feeds) - monitor a folder with your RSS reader
|
106
|
+
* [recent uploads](#recent-uploads) - list all recent uploads
|
106
107
|
* [media player](#media-player) - plays almost every audio format there is
|
107
108
|
* [audio equalizer](#audio-equalizer) - and [dynamic range compressor](https://en.wikipedia.org/wiki/Dynamic_range_compression)
|
108
109
|
* [fix unreliable playback on android](#fix-unreliable-playback-on-android) - due to phone / app settings
|
@@ -394,6 +395,9 @@ same order here too
|
|
394
395
|
|
395
396
|
* [Chrome issue 1352210](https://bugs.chromium.org/p/chromium/issues/detail?id=1352210) -- plaintext http may be faster at filehashing than https (but also extremely CPU-intensive)
|
396
397
|
|
398
|
+
* [Chrome issue 383568268](https://issues.chromium.org/issues/383568268) -- filereaders in webworkers can OOM / crash the browser-tab
|
399
|
+
* copyparty has a workaround which seems to work well enough
|
400
|
+
|
397
401
|
* [Firefox issue 1790500](https://bugzilla.mozilla.org/show_bug.cgi?id=1790500) -- entire browser can crash after uploading ~4000 small files
|
398
402
|
|
399
403
|
* Android: music playback randomly stops due to [battery usage settings](#fix-unreliable-playback-on-android)
|
@@ -769,7 +773,7 @@ files go into `[ok]` if they exist (and you get a link to where it is), otherwis
|
|
769
773
|
|
770
774
|
### unpost
|
771
775
|
|
772
|
-
undo/delete accidental uploads
|
776
|
+
undo/delete accidental uploads using the `[🧯]` tab in the UI
|
773
777
|
|
774
778
|

|
775
779
|
|
@@ -928,6 +932,17 @@ url parameters:
|
|
928
932
|
* uppercase = reverse-sort; `M` = oldest file first
|
929
933
|
|
930
934
|
|
935
|
+
## recent uploads
|
936
|
+
|
937
|
+
list all recent uploads by clicking "show recent uploads" in the controlpanel
|
938
|
+
|
939
|
+
will show uploader IP and upload-time if the visitor has the admin permission
|
940
|
+
|
941
|
+
* global-option `--ups-when` makes upload-time visible to all users, and not just admins
|
942
|
+
|
943
|
+
note that the [🧯 unpost](#unpost) feature is better suited for viewing *your own* recent uploads, as it includes the option to undo/delete them
|
944
|
+
|
945
|
+
|
931
946
|
## media player
|
932
947
|
|
933
948
|
plays almost every audio format there is (if the server has FFmpeg installed for on-demand transcoding)
|
@@ -1543,7 +1558,9 @@ replace copyparty passwords with oauth and such
|
|
1543
1558
|
|
1544
1559
|
you can disable the built-in password-based login system, 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
|
1545
1560
|
|
1546
|
-
a
|
1561
|
+
* the regular config-defined users will be used as a fallback for requests which don't include a valid (trusted) IdP username header
|
1562
|
+
|
1563
|
+
some popular identity providers are [Authelia](https://www.authelia.com/) (config-file based) and [authentik](https://goauthentik.io/) (GUI-based, more complex)
|
1547
1564
|
|
1548
1565
|
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)
|
1549
1566
|
|
@@ -1,7 +1,7 @@
|
|
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=VR6ZZhB9IxaK5TDXDTBM_OIP5ydkrdbaEnstktLM__s,2649
|
2
|
+
copyparty/__main__.py,sha256=acjihZUEvEwFp6d6BnT35oFqminMZBruDUfVU76YijA,113564
|
3
|
+
copyparty/__version__.py,sha256=JJ3NgXxnmonfdKeivWXs-b4z3FsuOlq62WbiCAifwR4,252
|
4
|
+
copyparty/authsrv.py,sha256=n8lQACRCzKnYlgzNv1RkGehv5qI4soYnyZhNw4IPHxA,104062
|
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
|
@@ -9,30 +9,30 @@ copyparty/broker_util.py,sha256=76mfnFOpX1gUUvtjm8UQI7jpTIaVINX10QonM-B7ggc,1680
|
|
9
9
|
copyparty/cert.py,sha256=0ZAPeXeMR164vWn9GQU3JDKooYXEq_NOQkDeg543ivg,8009
|
10
10
|
copyparty/cfg.py,sha256=UUmFpFbTm750Nv9RnofS80-FTpWT37EggEtmkE1wbxE,10374
|
11
11
|
copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
|
12
|
-
copyparty/fsutil.py,sha256=
|
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=DAi4JrEKCGTMBMjobQZ5d9WpisetKwuXLjZr2z1idpE,212463
|
15
15
|
copyparty/httpconn.py,sha256=mQSgljh0Q-jyWjF4tQLrHbRKRe9WKl19kGqsGMsJpWo,6880
|
16
|
-
copyparty/httpsrv.py,sha256=
|
16
|
+
copyparty/httpsrv.py,sha256=a_WKCKlN5isIoy8bNdttlQFha_8X_E_cPoToZv2q5Cw,18255
|
17
17
|
copyparty/ico.py,sha256=eWSxEae4wOCfheHl-m-wchYvFRAR_97kJDb4NGaB-Z8,3561
|
18
18
|
copyparty/mdns.py,sha256=G73OWWg1copda47LgayCRK7qjVrk6cnUGpMR5ugmi7o,18315
|
19
19
|
copyparty/metrics.py,sha256=EOIiPOItEQmdK9YgNb75l0kCzanWb6RtJGwMI7ufifY,8966
|
20
|
-
copyparty/mtag.py,sha256=
|
20
|
+
copyparty/mtag.py,sha256=wWWc3BHMRP0u85KvdZpX3Dp4djDgAbXVrL9Pvab4nPQ,19925
|
21
21
|
copyparty/multicast.py,sha256=Ha27l2oATEa-Qo2WOzkeRgjAm6G_YDCfbVJWR-ao2UE,12319
|
22
22
|
copyparty/pwhash.py,sha256=X87RWeay8IhzGVZLDKE5LctF9YVUcYxPAJ1BX6r_9CU,4248
|
23
|
-
copyparty/smbd.py,sha256=
|
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
|
-
copyparty/sutil.py,sha256=
|
26
|
+
copyparty/sutil.py,sha256=6zEEGl4hRe6bTB83Y_RtnBGxr2JcUa__GdiAMqNJZnY,3208
|
27
27
|
copyparty/svchub.py,sha256=sAHkiPGzzKACLqKlem2V-bps9Xh-wHlcfwaNywxcd5A,40877
|
28
28
|
copyparty/szip.py,sha256=HFtnwOiBgx0HMLUf-h_T84zSlRijPxmhRo5PM613kRA,8602
|
29
|
-
copyparty/tcpsrv.py,sha256=
|
30
|
-
copyparty/tftpd.py,sha256=
|
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=
|
29
|
+
copyparty/tcpsrv.py,sha256=H7z9tzYRCm-kZwktnm_wP-v2MXaIOygx9yfdk1xkqRo,19889
|
30
|
+
copyparty/tftpd.py,sha256=PXgG4rTmiaU_TavSyZWD5cFphdfChs9YvNY21qfExt8,13611
|
31
|
+
copyparty/th_cli.py,sha256=1B8el4NNs5cNyJyjOPiAdvLOX2HQXaebsHn6VLdZ_gU,4630
|
32
|
+
copyparty/th_srv.py,sha256=uAcz-wZJQEG5KavcZDkwToONZujyoOeC4oCxxKTD5us,29575
|
33
|
+
copyparty/u2idx.py,sha256=G6MDbD4I_sJSOwaNFZ6XLTQhnEDrB12pVKuKhzQ_leE,13676
|
34
|
+
copyparty/up2k.py,sha256=u7yLOD9ypqTEmA3bMPXqXrvebo7Lq62NjUdSZ_oGw0E,174556
|
35
|
+
copyparty/util.py,sha256=qhNakLtygJveVbZUuPvDY7Tm1E48E67CS9XBmosu5i4,95101
|
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
|
@@ -71,17 +71,20 @@ 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
73
|
copyparty/web/msg.html,sha256=w9CM3hkLLGJX9fWEaG4gSbTOPe2GcPqW8BpSCDiFzOI,977
|
74
|
-
copyparty/web/
|
75
|
-
copyparty/web/
|
74
|
+
copyparty/web/rups.css.gz,sha256=slfIxkdQ4vmYfMw0hlqX9bl-L8MpGsNF8HOIJvYcGWM,674
|
75
|
+
copyparty/web/rups.html,sha256=XEdGH-h-McwCXAx7POF0atyyLDUdDeBL0OnM3vBnyzU,2006
|
76
|
+
copyparty/web/rups.js.gz,sha256=wVEV-jrXLj0jrrmxtZqTQVpvF9KpDnkvujw6Tx8Bk3o,469
|
77
|
+
copyparty/web/shares.css.gz,sha256=SdPlZCBwz9tkPkgEo5pSPDOZSI079njxEfkJ64-iW3c,547
|
78
|
+
copyparty/web/shares.html,sha256=IhZnADkNoD_2-zEJnoiMG68iOXB58Ros1UNFVXjEwWE,2535
|
76
79
|
copyparty/web/shares.js.gz,sha256=emeY2-wjkh8x1JgaW6ny5fcC7XpZzZzfE1f-sEyntQ4,940
|
77
80
|
copyparty/web/splash.css.gz,sha256=VxFqPvNdZtWb0u1C_GW2yYwrHq0lqPMitft9GYcv56k,1087
|
78
|
-
copyparty/web/splash.html,sha256=
|
79
|
-
copyparty/web/splash.js.gz,sha256=
|
80
|
-
copyparty/web/svcs.html,sha256=
|
81
|
+
copyparty/web/splash.html,sha256=2iTamber6qv84SvbQzibL-onvRUJwyfthUaFgeYdBRA,6256
|
82
|
+
copyparty/web/splash.js.gz,sha256=4VqNznN10-bT33IJm3VWzBEJ1s08XZyxFB1TYPUkuAo,2739
|
83
|
+
copyparty/web/svcs.html,sha256=5cAp6RAkvqfDAbO9kxuDgXcmuDH20ZN2fse0uzCXb5s,11564
|
81
84
|
copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
|
82
85
|
copyparty/web/ui.css.gz,sha256=v8U-1tetZzuzTpITjq8NWj1gg3jEiYDIIE8aE0dx63k,2800
|
83
|
-
copyparty/web/up2k.js.gz,sha256=
|
84
|
-
copyparty/web/util.js.gz,sha256=
|
86
|
+
copyparty/web/up2k.js.gz,sha256=CC1MM_FBfxpsjgtNWupzCdnlVNI3hBbWbNSCnOSpCTY,23460
|
87
|
+
copyparty/web/util.js.gz,sha256=aXgf3U-0TL9Sc7uMQhA_sMyTXLsZCH3YDe8qLJ4hpEM,15082
|
85
88
|
copyparty/web/w.hash.js.gz,sha256=l3GpSJD6mcU-1CRWkIj7PybgbjlfSr8oeO3vortIrQk,1105
|
86
89
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
90
|
copyparty/web/a/partyfuse.py,sha256=9p5Hpg_IBiSimv7j9kmPhCGpy-FLXSRUOYnLjJ5JifU,28049
|
@@ -97,7 +100,7 @@ copyparty/web/deps/busy.mp3.gz,sha256=EVphk1_HYyRKJmtpeK99vbAstF7ub1f9ndu020H8PQ
|
|
97
100
|
copyparty/web/deps/easymde.css.gz,sha256=vWxfueI64rPikuqFj69wJBtGisqf93AheQtOZqgUI_c,3041
|
98
101
|
copyparty/web/deps/easymde.js.gz,sha256=rHBs4XWQe2bmv7ZzDIk43oxnTwrwpq5laYHhV5sKQQo,77014
|
99
102
|
copyparty/web/deps/fuse.py,sha256=6j4Zy3VpQg629pwwIW77v2LJ1hy-qlyrxwhXfKl9B7I,33426
|
100
|
-
copyparty/web/deps/marked.js.gz,sha256=
|
103
|
+
copyparty/web/deps/marked.js.gz,sha256=nay9sv1hlF9Y6ngXuXvE_O-MaTa7vE5OyK05-jjWx7M,22617
|
101
104
|
copyparty/web/deps/mini-fa.css.gz,sha256=CTPrNaH8OTVmxajrGP88E2MkjadY9_81TBVnd9sw9Y8,572
|
102
105
|
copyparty/web/deps/mini-fa.woff,sha256=L9DNncV2TIyvsrspMbJouvnnt7F068Hbn7YZYvN76AU,2784
|
103
106
|
copyparty/web/deps/prism.css.gz,sha256=Z_A6rJ3MN5KWnjvXaV787aTW_5DT-xjFd0YZ7_W-Krk,1468
|
@@ -106,9 +109,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
|
|
106
109
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
107
110
|
copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
|
108
111
|
copyparty/web/deps/sha512.hw.js.gz,sha256=UAed2_ocklZCnIzcSYz2h4P1ycztlCLj-ewsRTud2lU,7939
|
109
|
-
copyparty-1.16.
|
110
|
-
copyparty-1.16.
|
111
|
-
copyparty-1.16.
|
112
|
-
copyparty-1.16.
|
113
|
-
copyparty-1.16.
|
114
|
-
copyparty-1.16.
|
112
|
+
copyparty-1.16.6.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
|
113
|
+
copyparty-1.16.6.dist-info/METADATA,sha256=YD_Fomt3BWkdN4PksbjdhOTgjdqO1nDew-_XdTYjiKU,141509
|
114
|
+
copyparty-1.16.6.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
115
|
+
copyparty-1.16.6.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
116
|
+
copyparty-1.16.6.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
117
|
+
copyparty-1.16.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|