copyparty 1.11.0__py3-none-any.whl → 1.11.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- copyparty/__main__.py +1 -0
- copyparty/__version__.py +2 -2
- copyparty/httpcli.py +12 -12
- copyparty/httpconn.py +1 -0
- copyparty/httpsrv.py +1 -1
- copyparty/tftpd.py +0 -2
- copyparty/web/baguettebox.js.gz +0 -0
- copyparty/web/browser.css.gz +0 -0
- copyparty/web/browser.js.gz +0 -0
- copyparty/web/md.css.gz +0 -0
- copyparty/web/md.js.gz +0 -0
- copyparty/web/md2.css.gz +0 -0
- copyparty/web/md2.js.gz +0 -0
- copyparty/web/mde.css.gz +0 -0
- copyparty/web/mde.js.gz +0 -0
- copyparty/web/msg.css.gz +0 -0
- copyparty/web/splash.css.gz +0 -0
- copyparty/web/splash.js.gz +0 -0
- copyparty/web/ui.css.gz +0 -0
- copyparty/web/up2k.js.gz +0 -0
- copyparty/web/util.js.gz +0 -0
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/METADATA +15 -2
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/RECORD +27 -27
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/LICENSE +0 -0
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/WHEEL +0 -0
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/entry_points.txt +0 -0
- {copyparty-1.11.0.dist-info → copyparty-1.11.1.dist-info}/top_level.txt +0 -0
copyparty/__main__.py
CHANGED
@@ -1116,6 +1116,7 @@ def add_safety(ap):
|
|
1116
1116
|
ap2.add_argument("--ban-url", metavar="N,W,B", type=u, default="9,2,1440", help="hitting more than \033[33mN\033[0m sus URL's in \033[33mW\033[0m minutes = ban for \033[33mB\033[0m minutes; applies only to permissions g/G/h (decent replacement for \033[33m--ban-404\033[0m if that can't be used)")
|
1117
1117
|
ap2.add_argument("--sus-urls", metavar="R", type=u, default=r"\.php$|(^|/)wp-(admin|content|includes)/", help="URLs which are considered sus / eligible for banning; disable with blank or [\033[32mno\033[0m]")
|
1118
1118
|
ap2.add_argument("--nonsus-urls", metavar="R", type=u, default=r"^(favicon\.ico|robots\.txt)$|^apple-touch-icon|^\.well-known", help="harmless URLs ignored from 404-bans; disable with blank or [\033[32mno\033[0m]")
|
1119
|
+
ap2.add_argument("--early-ban", action="store_true", help="if a client is banned, reject its connection as soon as possible; not a good idea to enable when proxied behind cloudflare since it could ban your reverse-proxy")
|
1119
1120
|
ap2.add_argument("--aclose", metavar="MIN", type=int, default=10, help="if a client maxes out the server connection limit, downgrade it from connection:keep-alive to connection:close for \033[33mMIN\033[0m minutes (and also kill its active connections) -- disable with 0")
|
1120
1121
|
ap2.add_argument("--loris", metavar="B", type=int, default=60, help="if a client maxes out the server connection limit without sending headers, ban it for \033[33mB\033[0m minutes; disable with [\033[32m0\033[0m]")
|
1121
1122
|
ap2.add_argument("--acao", metavar="V[,V]", type=u, default="*", help="Access-Control-Allow-Origin; list of origins (domains/IPs without port) to accept requests from; [\033[32mhttps://1.2.3.4\033[0m]. Default [\033[32m*\033[0m] allows requests from all sites but removes cookies and http-auth; only ?pw=hunter2 survives")
|
copyparty/__version__.py
CHANGED
copyparty/httpcli.py
CHANGED
@@ -224,7 +224,7 @@ class HttpCli(object):
|
|
224
224
|
"Cache-Control": "no-store, max-age=0",
|
225
225
|
}
|
226
226
|
|
227
|
-
if self.is_banned():
|
227
|
+
if self.args.early_ban and self.is_banned():
|
228
228
|
return False
|
229
229
|
|
230
230
|
if self.conn.ipa_nm and not self.conn.ipa_nm.map(self.conn.addr[0]):
|
@@ -319,9 +319,7 @@ class HttpCli(object):
|
|
319
319
|
if "." in pip
|
320
320
|
else ":".join(pip.split(":")[:4]) + ":"
|
321
321
|
) + "0.0/16"
|
322
|
-
zs2 = (
|
323
|
-
' or "--xff-src=lan"' if self.conn.hsrv.xff_lan.map(pip) else ""
|
324
|
-
)
|
322
|
+
zs2 = ' or "--xff-src=lan"' if self.conn.xff_lan.map(pip) else ""
|
325
323
|
self.log(t % (self.args.xff_hdr, pip, cli_ip, zso, zs, zs2), 3)
|
326
324
|
else:
|
327
325
|
self.ip = cli_ip
|
@@ -492,9 +490,7 @@ class HttpCli(object):
|
|
492
490
|
else ":".join(pip.split(":")[:4]) + ":"
|
493
491
|
) + "0.0/16"
|
494
492
|
zs2 = (
|
495
|
-
' or "--xff-src=lan"'
|
496
|
-
if self.conn.hsrv.xff_lan.map(pip)
|
497
|
-
else ""
|
493
|
+
' or "--xff-src=lan"' if self.conn.xff_lan.map(pip) else ""
|
498
494
|
)
|
499
495
|
self.log(t % (pip, idp_usr, idp_grp, zs, zs2), 3)
|
500
496
|
|
@@ -3601,8 +3597,6 @@ class HttpCli(object):
|
|
3601
3597
|
return ret
|
3602
3598
|
|
3603
3599
|
def tx_ups(self) :
|
3604
|
-
have_unpost = self.args.unpost and "e2d" in self.vn.flags
|
3605
|
-
|
3606
3600
|
idx = self.conn.get_u2idx()
|
3607
3601
|
if not idx or not hasattr(idx, "p_end"):
|
3608
3602
|
raise Pebkac(500, "sqlite3 is not available on the server; cannot unpost")
|
@@ -3626,8 +3620,14 @@ class HttpCli(object):
|
|
3626
3620
|
)
|
3627
3621
|
uret = x.get()
|
3628
3622
|
|
3629
|
-
|
3630
|
-
|
3623
|
+
if not self.args.unpost:
|
3624
|
+
allvols = []
|
3625
|
+
else:
|
3626
|
+
allvols = list(self.asrv.vfs.all_vols.values())
|
3627
|
+
|
3628
|
+
allvols = [x for x in allvols if "e2d" in x.flags]
|
3629
|
+
|
3630
|
+
for vol in allvols:
|
3631
3631
|
cur = idx.get_cur(vol.realpath)
|
3632
3632
|
if not cur:
|
3633
3633
|
continue
|
@@ -3679,7 +3679,7 @@ class HttpCli(object):
|
|
3679
3679
|
for v in ret:
|
3680
3680
|
v["vp"] = self.args.SR + v["vp"]
|
3681
3681
|
|
3682
|
-
if not
|
3682
|
+
if not allvols:
|
3683
3683
|
ret = [{"kinshi": 1}]
|
3684
3684
|
|
3685
3685
|
jtxt = '{"u":%s,"c":%s}' % (uret, json.dumps(ret, indent=0))
|
copyparty/httpconn.py
CHANGED
copyparty/httpsrv.py
CHANGED
@@ -100,7 +100,7 @@ class HttpSrv(object):
|
|
100
100
|
self.t0 = time.time()
|
101
101
|
nsuf = "-n{}-i{:x}".format(nid, os.getpid()) if nid else ""
|
102
102
|
self.magician = Magician()
|
103
|
-
self.nm = NetMap([],
|
103
|
+
self.nm = NetMap([], [])
|
104
104
|
self.ssdp = None
|
105
105
|
self.gpwd = Garda(self.args.ban_pw)
|
106
106
|
self.g404 = Garda(self.args.ban_404)
|
copyparty/tftpd.py
CHANGED
copyparty/web/baguettebox.js.gz
CHANGED
Binary file
|
copyparty/web/browser.css.gz
CHANGED
Binary file
|
copyparty/web/browser.js.gz
CHANGED
Binary file
|
copyparty/web/md.css.gz
CHANGED
Binary file
|
copyparty/web/md.js.gz
CHANGED
Binary file
|
copyparty/web/md2.css.gz
CHANGED
Binary file
|
copyparty/web/md2.js.gz
CHANGED
Binary file
|
copyparty/web/mde.css.gz
CHANGED
Binary file
|
copyparty/web/mde.js.gz
CHANGED
Binary file
|
copyparty/web/msg.css.gz
CHANGED
Binary file
|
copyparty/web/splash.css.gz
CHANGED
Binary file
|
copyparty/web/splash.js.gz
CHANGED
Binary file
|
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.1
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.11.
|
3
|
+
Version: 1.11.1
|
4
4
|
Summary: Portable file server with accelerated resumable uploads, deduplication, WebDAV, FTP, zeroconf, media indexer, video thumbnails, audio transcoding, and write-only folders
|
5
5
|
Author-email: ed <copyparty@ocv.me>
|
6
6
|
License: MIT
|
@@ -129,6 +129,7 @@ turn almost any device into a file server with resumable uploads/downloads using
|
|
129
129
|
* [themes](#themes)
|
130
130
|
* [complete examples](#complete-examples)
|
131
131
|
* [reverse-proxy](#reverse-proxy) - running copyparty next to other websites
|
132
|
+
* [real-ip](#real-ip) - teaching copyparty how to see client IPs
|
132
133
|
* [prometheus](#prometheus) - metrics/stats can be enabled
|
133
134
|
* [packages](#packages) - the party might be closer than you think
|
134
135
|
* [arch package](#arch-package) - now [available on aur](https://aur.archlinux.org/packages/copyparty) maintained by [@icxes](https://github.com/icxes)
|
@@ -411,6 +412,9 @@ upgrade notes
|
|
411
412
|
* firefox refuses to connect over https, saying "Secure Connection Failed" or "SEC_ERROR_BAD_SIGNATURE", but the usual button to "Accept the Risk and Continue" is not shown
|
412
413
|
* firefox has corrupted its certstore; fix this by exiting firefox, then find and delete the file named `cert9.db` somewhere in your firefox profile folder
|
413
414
|
|
415
|
+
* the server keeps saying `thank you for playing` when I try to access the website
|
416
|
+
* you've gotten banned for malicious traffic! if this happens by mistake, and you're running a reverse-proxy and/or something like cloudflare, see [real-ip](#real-ip) on how to fix this
|
417
|
+
|
414
418
|
* copyparty seems to think I am using http, even though the URL is https
|
415
419
|
* your reverse-proxy is not sending the `X-Forwarded-Proto: https` header; this could be because your reverse-proxy itself is confused. Ensure that none of the intermediates (such as cloudflare) are terminating https before the traffic hits your entrypoint
|
416
420
|
|
@@ -651,7 +655,7 @@ this initiates an upload using `up2k`; there are two uploaders available:
|
|
651
655
|
* `[🎈] bup`, the basic uploader, supports almost every browser since netscape 4.0
|
652
656
|
* `[🚀] up2k`, the good / fancy one
|
653
657
|
|
654
|
-
NB: you can undo/delete your own uploads with `[🧯]` [unpost](#unpost)
|
658
|
+
NB: you can undo/delete your own uploads with `[🧯]` [unpost](#unpost) (and this is also where you abort unfinished uploads, but you have to refresh the page first)
|
655
659
|
|
656
660
|
up2k has several advantages:
|
657
661
|
* you can drop folders into the browser (files are added recursively)
|
@@ -1437,6 +1441,15 @@ example webserver configs:
|
|
1437
1441
|
* [apache2 config](contrib/apache/copyparty.conf) -- location-based
|
1438
1442
|
|
1439
1443
|
|
1444
|
+
### real-ip
|
1445
|
+
|
1446
|
+
teaching copyparty how to see client IPs when running behind a reverse-proxy, or a WAF, or another protection service such as cloudflare
|
1447
|
+
|
1448
|
+
if you (and maybe everybody else) keep getting a message that says `thank you for playing`, then you've gotten banned for malicious traffic. This ban applies to the IP address that copyparty *thinks* identifies the shady client -- so, depending on your setup, you might have to tell copyparty where to find the correct IP
|
1449
|
+
|
1450
|
+
for most common setups, there should be a helpful message in the server-log explaining what to do, but see [docs/xff.md](docs/xff.md) if you want to learn more, including a quick hack to **just make it work** (which is **not** recommended, but hey...)
|
1451
|
+
|
1452
|
+
|
1440
1453
|
## prometheus
|
1441
1454
|
|
1442
1455
|
metrics/stats can be enabled at URL `/.cpr/metrics` for grafana / prometheus / etc (openmetrics 1.0.0)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
copyparty/__init__.py,sha256=34xcU8AoRRQscgVSx2gC6DeUyu7ZLmEVlXjttdQgXnI,1752
|
2
|
-
copyparty/__main__.py,sha256=
|
3
|
-
copyparty/__version__.py,sha256=
|
2
|
+
copyparty/__main__.py,sha256=g7Bc8ULfcXm-VdklVrnhaFP8bXXQrO4dgN5z7joEnEI,93648
|
3
|
+
copyparty/__version__.py,sha256=t7CMwcd2WnYMbd2jiG9kC5xZ3t08Ojcs-zat5rSuRDw,263
|
4
4
|
copyparty/authsrv.py,sha256=cP9egYM142f4x4WiwssF8YVFkOlARy4hvQjibzhcD0I,83737
|
5
5
|
copyparty/broker_mp.py,sha256=4mEZC5tiHUazJMgYuwInNo2dxS7jrbzrGb1qs2UBt9k,3948
|
6
6
|
copyparty/broker_mpw.py,sha256=4ZI7bJYOwUibeAJVv9_FPGNmHrr9eOtkj_Kz0JEppTU,3197
|
@@ -11,9 +11,9 @@ copyparty/cfg.py,sha256=CQKSyixyhxeM2narwbOfjUsjn0DZ_VYXbdMSa_tv4gw,9189
|
|
11
11
|
copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
|
12
12
|
copyparty/fsutil.py,sha256=c4fTvmclKbVABNsjU4rGddsjCgRwi9YExAyo-06ATc8,3932
|
13
13
|
copyparty/ftpd.py,sha256=sNfoGZnO7KxnIovbnSBOt8jiPecUtRK-_izrlZjAtt8,15944
|
14
|
-
copyparty/httpcli.py,sha256=
|
15
|
-
copyparty/httpconn.py,sha256=
|
16
|
-
copyparty/httpsrv.py,sha256=
|
14
|
+
copyparty/httpcli.py,sha256=AVjbUNDAti3OMDDdsEEYeSV25swuy-jQrbuSNc7vbX4,145586
|
15
|
+
copyparty/httpconn.py,sha256=gLOURB2Nb1w6n2ihGBspEnzEfUND9Osa4klzYuAbgzI,6829
|
16
|
+
copyparty/httpsrv.py,sha256=af6LdApfj-Q4mWC5mVQjhnyrFzNy8_bXK3VUe0xKkeY,16368
|
17
17
|
copyparty/ico.py,sha256=AYHdK6NlYBfBgafVYXia3jHQ9XHZdUL1D8WftLMAzIU,3545
|
18
18
|
copyparty/mdns.py,sha256=CcraggbDxTT1ntYzD8Ebgqmw5Q4HkyZcfh5ymtCV_ak,17469
|
19
19
|
copyparty/metrics.py,sha256=OqXFkAuoVhayGAGd_Sv-OQ9SVmdXYV8M7CxitkzE3lo,8854
|
@@ -27,7 +27,7 @@ copyparty/sutil.py,sha256=dZhDAzVAp02i6YmGqcedy4LaYVffnJCSp3F6WEwfz7c,2967
|
|
27
27
|
copyparty/svchub.py,sha256=aG8T0ZoW12sswYOoFYvlgLVtDRLAjsyC7WP3lC2lDzU,30458
|
28
28
|
copyparty/szip.py,sha256=SJg5nzN_5oaIsIYXlRvcLHVTqngLAOPfe4_WVsuhSkw,8520
|
29
29
|
copyparty/tcpsrv.py,sha256=2LGUqOBAIrsmL-1pwrbsPXR71gutHccqRp-hjzt91Us,17289
|
30
|
-
copyparty/tftpd.py,sha256=
|
30
|
+
copyparty/tftpd.py,sha256=5ONxspbOyyaBCUmo1GCfYILRVc2B3uHYGIuHM7HreXE,13104
|
31
31
|
copyparty/th_cli.py,sha256=e2FF-wVY4qcwAO8hrtTlwn3EJIOHyZt5sYhl0N8eudk,4378
|
32
32
|
copyparty/th_srv.py,sha256=HBw6mq0RrJkAJupJpwFAjCMNS67Y9hda6sv7gFSzRwk,25764
|
33
33
|
copyparty/u2idx.py,sha256=JBEqKX1ZM8GIvQrDYb5VQ_5QiFNFsjWF6H9drHlPVEY,12709
|
@@ -54,31 +54,31 @@ copyparty/stolen/ifaddr/__init__.py,sha256=_BUN7eM5oD2Jgib6B22tEFSb20fD9urNPPaAl
|
|
54
54
|
copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUuTOrU,2626
|
55
55
|
copyparty/stolen/ifaddr/_shared.py,sha256=cJACl8cOxQ-HSYphZTzKMAjAx_TAFyJwUPjfD102Xqw,6111
|
56
56
|
copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
|
57
|
-
copyparty/web/baguettebox.js.gz,sha256=
|
58
|
-
copyparty/web/browser.css.gz,sha256=
|
57
|
+
copyparty/web/baguettebox.js.gz,sha256=63fwdFjmxwu4uLxfex7S6XHSoBBxwSCDv871TFXJ5i8,7671
|
58
|
+
copyparty/web/browser.css.gz,sha256=qNsSKexPMkT5uTC6ADVuE2Z_oKVCbHyfzzIznQcOdvc,11434
|
59
59
|
copyparty/web/browser.html,sha256=uAejLJd11rV_tQx3h2nHnJ1XY6zn1JV-meIAv74Lc8o,4873
|
60
|
-
copyparty/web/browser.js.gz,sha256=
|
60
|
+
copyparty/web/browser.js.gz,sha256=LM_3CYIowvCedz0klqRG-JvcFY7PzFZHoFuhPoepfS8,66357
|
61
61
|
copyparty/web/browser2.html,sha256=ciQlgr9GWuIapdsRBFNRvRFvN5T_5n920LqDMbsj5-g,1605
|
62
62
|
copyparty/web/cf.html,sha256=lJThtNFNAQT1ClCHHlivAkDGE0LutedwopXD62Z8Nys,589
|
63
63
|
copyparty/web/dbg-audio.js.gz,sha256=Ma-KZtK8LnmiwNvNKFKXMPYl_Nn_3U7GsJ6-DRWC2HE,688
|
64
|
-
copyparty/web/md.css.gz,sha256=
|
64
|
+
copyparty/web/md.css.gz,sha256=t7qPxsL-ETVc-yZhdh8vR1e69vI0f1DX85YLMpNlga4,2032
|
65
65
|
copyparty/web/md.html,sha256=qnJpj_5-MoVYr9j5Rhy7dS40wctqdWbjELmNa-J9cUY,4110
|
66
|
-
copyparty/web/md.js.gz,sha256=
|
67
|
-
copyparty/web/md2.css.gz,sha256=
|
68
|
-
copyparty/web/md2.js.gz,sha256=
|
69
|
-
copyparty/web/mde.css.gz,sha256=
|
66
|
+
copyparty/web/md.js.gz,sha256=OMecpy-UHxn8rWM9Bj6BIq0jpjXNHri1A2NLe8de4_E,4179
|
67
|
+
copyparty/web/md2.css.gz,sha256=NfHqy77R1TfKn6ZXfthdLb74v1dgcwrDH0dhoH0rbgA,699
|
68
|
+
copyparty/web/md2.js.gz,sha256=LI1dxu7-IaF1DMb6_vgqV-5_AiUvGlAq2tkYNYNs6X0,8350
|
69
|
+
copyparty/web/mde.css.gz,sha256=QgC399DmXxcCL285jnsbeJH0fKJx-bWhS_PhNjHkMtM,942
|
70
70
|
copyparty/web/mde.html,sha256=FMMq4ySXoOrQV5E836KmQCry3COOhMu0DSstAdJZL_g,1678
|
71
|
-
copyparty/web/mde.js.gz,sha256=
|
72
|
-
copyparty/web/msg.css.gz,sha256=
|
71
|
+
copyparty/web/mde.js.gz,sha256=WkK28WXGGwWuhzeoV0MedaHaHtuXCPnzEx3MMa4qgJ4,2224
|
72
|
+
copyparty/web/msg.css.gz,sha256=RHvNHYTne6HuYkS8i6rlJu6jleVUVQut4zgRa--EKbI,300
|
73
73
|
copyparty/web/msg.html,sha256=XDg51WLO7RruZnoFnKpeJ33k47-tBHP3bR7l55Jwre4,896
|
74
|
-
copyparty/web/splash.css.gz,sha256=
|
74
|
+
copyparty/web/splash.css.gz,sha256=ImOPcJ4KvuMYYesHvEyKAjMTOrybWNvWtjyMUDOIETU,949
|
75
75
|
copyparty/web/splash.html,sha256=KFAvTnofyVURBQyTnrYwuDdEKN_iGtvdjicn5b33tL8,3822
|
76
|
-
copyparty/web/splash.js.gz,sha256=
|
76
|
+
copyparty/web/splash.js.gz,sha256=J8d5JEzEe7absMjw2_5RprS6mc0yduqfUD9aqlbhb5Q,1420
|
77
77
|
copyparty/web/svcs.html,sha256=s7vUSrCrELC3iTemksodRBhQpssO7s4xW1vA-CX6vU8,11702
|
78
78
|
copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
|
79
|
-
copyparty/web/ui.css.gz,sha256=
|
80
|
-
copyparty/web/up2k.js.gz,sha256=
|
81
|
-
copyparty/web/util.js.gz,sha256
|
79
|
+
copyparty/web/ui.css.gz,sha256=dm7bH5LWyqxHDdLo5azIRdN1P9pULYtJ9a-_iBM4qOM,2616
|
80
|
+
copyparty/web/up2k.js.gz,sha256=G2O-0EUj81mmWSMbQ-nnj4UxnQD4X1TskCH9ypAVnSM,22120
|
81
|
+
copyparty/web/util.js.gz,sha256=-eCegkkPnAsoj33Rspwy93nyvWeYldon1DMgFoiG_1A,14368
|
82
82
|
copyparty/web/w.hash.js.gz,sha256=__hBMd5oZWfTrb8ZCJNT21isoSqyrxKE6qdaKGQVAhc,1060
|
83
83
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
84
|
copyparty/web/a/partyfuse.py,sha256=MuRkaSuYsdfWfBFMOkbPwDXqSvNTw3sd7QhhlKCDZ8I,32311
|
@@ -101,9 +101,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
|
|
101
101
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
102
102
|
copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
|
103
103
|
copyparty/web/deps/sha512.hw.js.gz,sha256=vqoXeracj-99Z5MfY3jK2N4WiSzYQdfjy0RnUlQDhSU,8110
|
104
|
-
copyparty-1.11.
|
105
|
-
copyparty-1.11.
|
106
|
-
copyparty-1.11.
|
107
|
-
copyparty-1.11.
|
108
|
-
copyparty-1.11.
|
109
|
-
copyparty-1.11.
|
104
|
+
copyparty-1.11.1.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
|
105
|
+
copyparty-1.11.1.dist-info/METADATA,sha256=_nQ2ixAFewk545RfFxWaJ1WZP9IsYoDjh1qbT0hqClA,115911
|
106
|
+
copyparty-1.11.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
107
|
+
copyparty-1.11.1.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
108
|
+
copyparty-1.11.1.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
109
|
+
copyparty-1.11.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|