copyparty 1.6.10__py2.py3-none-any.whl → 1.6.11__py2.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/__version__.py +2 -2
- copyparty/httpcli.py +20 -3
- copyparty/up2k.py +13 -6
- copyparty/web/a/up2k.py +5 -7
- copyparty/web/baguettebox.js.gz +0 -0
- copyparty/web/browser.css.gz +0 -0
- copyparty/web/browser.js.gz +0 -0
- copyparty/web/deps/easymde.css.gz +0 -0
- copyparty/web/deps/easymde.js.gz +0 -0
- copyparty/web/deps/marked.js.gz +0 -0
- copyparty/web/deps/mini-fa.css.gz +0 -0
- copyparty/web/deps/sha512.ac.js.gz +0 -0
- copyparty/web/md.js.gz +0 -0
- copyparty/web/svcs.html +2 -3
- copyparty/web/ui.css.gz +0 -0
- copyparty/web/util.js.gz +0 -0
- {copyparty-1.6.10.data → copyparty-1.6.11.data}/data/share/doc/copyparty/README.md +8 -7
- {copyparty-1.6.10.data → copyparty-1.6.11.data}/scripts/up2k.py +5 -7
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/METADATA +9 -8
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/RECORD +26 -26
- {copyparty-1.6.10.data → copyparty-1.6.11.data}/data/share/doc/copyparty/LICENSE +0 -0
- {copyparty-1.6.10.data → copyparty-1.6.11.data}/scripts/partyfuse.py +0 -0
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/LICENSE +0 -0
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/WHEEL +0 -0
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/entry_points.txt +0 -0
- {copyparty-1.6.10.dist-info → copyparty-1.6.11.dist-info}/top_level.txt +0 -0
copyparty/__version__.py
CHANGED
copyparty/httpcli.py
CHANGED
@@ -1111,7 +1111,14 @@ class HttpCli(object):
|
|
1111
1111
|
if self.do_log:
|
1112
1112
|
self.log("MKCOL " + self.req)
|
1113
1113
|
|
1114
|
-
|
1114
|
+
try:
|
1115
|
+
return self._mkdir(self.vpath, True)
|
1116
|
+
except Pebkac as ex:
|
1117
|
+
if ex.code >= 500:
|
1118
|
+
raise
|
1119
|
+
|
1120
|
+
self.reply(b"", ex.code)
|
1121
|
+
return True
|
1115
1122
|
|
1116
1123
|
def handle_move(self) :
|
1117
1124
|
dst = self.headers["destination"]
|
@@ -1564,6 +1571,11 @@ class HttpCli(object):
|
|
1564
1571
|
t = "{}\n{}\n{}\n{}\n".format(post_sz, sha_b64, sha_hex[:56], url)
|
1565
1572
|
|
1566
1573
|
h = {"Location": url} if is_put and url else {}
|
1574
|
+
|
1575
|
+
if "x-oc-mtime" in self.headers:
|
1576
|
+
h["X-OC-MTime"] = "accepted"
|
1577
|
+
t = "" # some webdav clients expect/prefer this
|
1578
|
+
|
1567
1579
|
self.reply(t.encode("utf-8"), 201, headers=h)
|
1568
1580
|
return True
|
1569
1581
|
|
@@ -1964,7 +1976,7 @@ class HttpCli(object):
|
|
1964
1976
|
sanitized = sanitize_fn(new_dir, "", [])
|
1965
1977
|
return self._mkdir(vjoin(self.vpath, sanitized))
|
1966
1978
|
|
1967
|
-
def _mkdir(self, vpath ) :
|
1979
|
+
def _mkdir(self, vpath , dav = False) :
|
1968
1980
|
nullwrite = self.args.nw
|
1969
1981
|
vfs, rem = self.asrv.vfs.get(vpath, self.uname, False, True)
|
1970
1982
|
self._assert_safe_rem(rem)
|
@@ -1990,7 +2002,12 @@ class HttpCli(object):
|
|
1990
2002
|
raise Pebkac(500, min_ex())
|
1991
2003
|
|
1992
2004
|
self.out_headers["X-New-Dir"] = quotep(vpath.split("/")[-1])
|
1993
|
-
|
2005
|
+
|
2006
|
+
if dav:
|
2007
|
+
self.reply(b"", 201)
|
2008
|
+
else:
|
2009
|
+
self.redirect(vpath, status=201)
|
2010
|
+
|
1994
2011
|
return True
|
1995
2012
|
|
1996
2013
|
def handle_new_md(self) :
|
copyparty/up2k.py
CHANGED
@@ -1029,7 +1029,7 @@ class Up2k(object):
|
|
1029
1029
|
zh.update(cv.encode("utf-8", "replace"))
|
1030
1030
|
zh.update(spack(b"<d", cst.st_mtime))
|
1031
1031
|
dhash = base64.urlsafe_b64encode(zh.digest()[:12]).decode("ascii")
|
1032
|
-
sql = "select d from dh where d
|
1032
|
+
sql = "select d from dh where d=? and +h=?"
|
1033
1033
|
try:
|
1034
1034
|
c = db.c.execute(sql, (rd, dhash))
|
1035
1035
|
drd = rd
|
@@ -1313,9 +1313,9 @@ class Up2k(object):
|
|
1313
1313
|
|
1314
1314
|
w, drd, dfn = zb[:-1].decode("utf-8").split("\x00")
|
1315
1315
|
with self.mutex:
|
1316
|
-
q = "select mt, sz from up where
|
1316
|
+
q = "select mt, sz from up where rd=? and fn=? and +w=?"
|
1317
1317
|
try:
|
1318
|
-
mt, sz = cur.execute(q, (
|
1318
|
+
mt, sz = cur.execute(q, (drd, dfn, w)).fetchone()
|
1319
1319
|
except:
|
1320
1320
|
# file moved/deleted since spooling
|
1321
1321
|
continue
|
@@ -2220,7 +2220,7 @@ class Up2k(object):
|
|
2220
2220
|
q = r"select * from up where w = ?"
|
2221
2221
|
argv = [wark]
|
2222
2222
|
else:
|
2223
|
-
q = r"select * from up where substr(w,1,16)
|
2223
|
+
q = r"select * from up where substr(w,1,16)=? and +w=?"
|
2224
2224
|
argv = [wark[:16], wark]
|
2225
2225
|
|
2226
2226
|
c2 = cur.execute(q, tuple(argv))
|
@@ -3297,9 +3297,16 @@ class Up2k(object):
|
|
3297
3297
|
"""
|
3298
3298
|
dupes = []
|
3299
3299
|
sabs = djoin(sptop, srem)
|
3300
|
-
|
3300
|
+
|
3301
|
+
if self.no_expr_idx:
|
3302
|
+
q = r"select rd, fn from up where w = ?"
|
3303
|
+
argv = (wark,)
|
3304
|
+
else:
|
3305
|
+
q = r"select rd, fn from up where substr(w,1,16)=? and +w=?"
|
3306
|
+
argv = (wark[:16], wark)
|
3307
|
+
|
3301
3308
|
for ptop, cur in self.cur.items():
|
3302
|
-
for rd, fn in cur.execute(q,
|
3309
|
+
for rd, fn in cur.execute(q, argv):
|
3303
3310
|
if rd.startswith("//") or fn.startswith("//"):
|
3304
3311
|
rd, fn = s3dec(rd, fn)
|
3305
3312
|
|
copyparty/web/a/up2k.py
CHANGED
@@ -1009,8 +1009,9 @@ class Ctl(object):
|
|
1009
1009
|
file, cid = task
|
1010
1010
|
try:
|
1011
1011
|
upload(file, cid, self.ar.a, stats)
|
1012
|
-
except:
|
1013
|
-
|
1012
|
+
except Exception as ex:
|
1013
|
+
t = "upload failed, retrying: {0} #{1} ({2})\n"
|
1014
|
+
eprint(t.format(file.name, cid[:8], ex))
|
1014
1015
|
# handshake will fix it
|
1015
1016
|
|
1016
1017
|
with self.mutex:
|
@@ -1049,6 +1050,8 @@ def main():
|
|
1049
1050
|
print(ver)
|
1050
1051
|
return
|
1051
1052
|
|
1053
|
+
sys.argv = [x for x in sys.argv if x != "--ws"]
|
1054
|
+
|
1052
1055
|
# fmt: off
|
1053
1056
|
ap = app = argparse.ArgumentParser(formatter_class=APF, description="copyparty up2k uploader / filesearch tool, " + ver, epilog="""
|
1054
1057
|
NOTE:
|
@@ -1067,7 +1070,6 @@ source file/folder selection uses rsync syntax, meaning that:
|
|
1067
1070
|
|
1068
1071
|
ap = app.add_argument_group("compatibility")
|
1069
1072
|
ap.add_argument("--cls", action="store_true", help="clear screen before start")
|
1070
|
-
ap.add_argument("--ws", action="store_true", help="copyparty is running on windows; wait before deleting files after uploading")
|
1071
1073
|
|
1072
1074
|
ap = app.add_argument_group("folder sync")
|
1073
1075
|
ap.add_argument("--dl", action="store_true", help="delete local files after uploading")
|
@@ -1131,10 +1133,6 @@ source file/folder selection uses rsync syntax, meaning that:
|
|
1131
1133
|
|
1132
1134
|
if ar.dr and not ar.drd:
|
1133
1135
|
print("\npass 2/2: delete")
|
1134
|
-
if getattr(ctl, "up_br") and ar.ws:
|
1135
|
-
# wait for up2k to mtime if there was uploads
|
1136
|
-
time.sleep(4)
|
1137
|
-
|
1138
1136
|
ar.drd = True
|
1139
1137
|
ar.z = True
|
1140
1138
|
Ctl(ar, ctl.stats)
|
copyparty/web/baguettebox.js.gz
CHANGED
Binary file
|
copyparty/web/browser.css.gz
CHANGED
Binary file
|
copyparty/web/browser.js.gz
CHANGED
Binary file
|
Binary file
|
copyparty/web/deps/easymde.js.gz
CHANGED
Binary file
|
copyparty/web/deps/marked.js.gz
CHANGED
Binary file
|
Binary file
|
Binary file
|
copyparty/web/md.js.gz
CHANGED
Binary file
|
copyparty/web/svcs.html
CHANGED
@@ -43,10 +43,9 @@
|
|
43
43
|
<h1>WebDAV</h1>
|
44
44
|
|
45
45
|
<div class="os win">
|
46
|
-
<p><em>note: rclone-FTP is a bit faster, so {% if args.ftp or args.ftps %}try that first{% else %}consider enabling FTP in server settings{% endif %}</em></p>
|
47
46
|
<p>if you can, install <a href="https://winfsp.dev/rel/">winfsp</a>+<a href="https://downloads.rclone.org/rclone-current-windows-amd64.zip">rclone</a> and then paste this in cmd:</p>
|
48
47
|
<pre>
|
49
|
-
rclone config create {{ aname }}-dav webdav url=http{{ s }}://{{ rip }}{{ hport }} vendor=owncloud{% if accs %} user=k pass=<b>{{ pw }}</b>{% endif %}
|
48
|
+
rclone config create {{ aname }}-dav webdav url=http{{ s }}://{{ rip }}{{ hport }} vendor=owncloud pacer_min_sleep=0.01ms{% if accs %} user=k pass=<b>{{ pw }}</b>{% endif %}
|
50
49
|
rclone mount --vfs-cache-mode writes --dir-cache-time 5s {{ aname }}-dav:{{ rvp }} <b>W:</b>
|
51
50
|
</pre>
|
52
51
|
{% if s %}
|
@@ -71,7 +70,7 @@
|
|
71
70
|
</pre>
|
72
71
|
<p>or you can use rclone instead, which is much slower but doesn't require root (plus it keeps lastmodified on upload):</p>
|
73
72
|
<pre>
|
74
|
-
rclone config create {{ aname }}-dav webdav url=http{{ s }}://{{ rip }}{{ hport }} vendor=owncloud{% if accs %} user=k pass=<b>{{ pw }}</b>{% endif %}
|
73
|
+
rclone config create {{ aname }}-dav webdav url=http{{ s }}://{{ rip }}{{ hport }} vendor=owncloud pacer_min_sleep=0.01ms{% if accs %} user=k pass=<b>{{ pw }}</b>{% endif %}
|
75
74
|
rclone mount --vfs-cache-mode writes --dir-cache-time 5s {{ aname }}-dav:{{ rvp }} <b>mp</b>
|
76
75
|
</pre>
|
77
76
|
{% if s %}
|
copyparty/web/ui.css.gz
CHANGED
Binary file
|
copyparty/web/util.js.gz
CHANGED
Binary file
|
@@ -130,7 +130,7 @@ some recommended options:
|
|
130
130
|
|
131
131
|
you may also want these, especially on servers:
|
132
132
|
|
133
|
-
* [contrib/systemd/copyparty.service](contrib/systemd/copyparty.service) to run copyparty as a systemd service
|
133
|
+
* [contrib/systemd/copyparty.service](contrib/systemd/copyparty.service) to run copyparty as a systemd service (see guide inside)
|
134
134
|
* [contrib/systemd/prisonparty.service](contrib/systemd/prisonparty.service) to run it in a chroot (for extra security)
|
135
135
|
* [contrib/rc/copyparty](contrib/rc/copyparty) to run copyparty on FreeBSD
|
136
136
|
* [contrib/nginx/copyparty.conf](contrib/nginx/copyparty.conf) to [reverse-proxy](#reverse-proxy) behind nginx (for better https)
|
@@ -168,7 +168,7 @@ firewall-cmd --reload
|
|
168
168
|
* ☑ write-only folders
|
169
169
|
* ☑ [unpost](#unpost): undo/delete accidental uploads
|
170
170
|
* ☑ [self-destruct](#self-destruct) (specified server-side or client-side)
|
171
|
-
* ☑ symlink/discard
|
171
|
+
* ☑ symlink/discard duplicates (content-matching)
|
172
172
|
* download
|
173
173
|
* ☑ single files in browser
|
174
174
|
* ☑ [folders as zip / tar files](#zip-downloads)
|
@@ -1206,7 +1206,9 @@ sync folders to/from copyparty
|
|
1206
1206
|
|
1207
1207
|
the commandline uploader [up2k.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading)
|
1208
1208
|
|
1209
|
-
alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty
|
1209
|
+
alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty, ...), although there is no integrity check and it won't work with files over 100 MiB if copyparty is behind cloudflare
|
1210
|
+
|
1211
|
+
* starting from rclone v1.63 (currently [in beta](https://beta.rclone.org/?filter=latest)), rclone will also be faster than up2k.py
|
1210
1212
|
|
1211
1213
|
|
1212
1214
|
## mount as drive
|
@@ -1215,11 +1217,10 @@ a remote copyparty server as a local filesystem; go to the control-panel and cl
|
|
1215
1217
|
|
1216
1218
|
alternatively, some alternatives roughly sorted by speed (unreproducible benchmark), best first:
|
1217
1219
|
|
1218
|
-
* [rclone-
|
1220
|
+
* [rclone-webdav](./docs/rclone.md) (25s), read/WRITE ([v1.63-beta](https://beta.rclone.org/?filter=latest))
|
1221
|
+
* [rclone-http](./docs/rclone.md) (26s), read-only
|
1222
|
+
* [partyfuse.py](./bin/#partyfusepy) (35s), read-only
|
1219
1223
|
* [rclone-ftp](./docs/rclone.md) (47s), read/WRITE
|
1220
|
-
* [rclone-webdav](./docs/rclone.md) (51s), read/WRITE
|
1221
|
-
* copyparty-1.5.0's webdav server is faster than rclone-1.60.0 (69s)
|
1222
|
-
* [partyfuse.py](./bin/#partyfusepy) (71s), read-only
|
1223
1224
|
* davfs2 (103s), read/WRITE, *very fast* on small files
|
1224
1225
|
* [win10-webdav](#webdav-server) (138s), read/WRITE
|
1225
1226
|
* [win10-smb2](#smb-server) (387s), read/WRITE
|
@@ -1009,8 +1009,9 @@ class Ctl(object):
|
|
1009
1009
|
file, cid = task
|
1010
1010
|
try:
|
1011
1011
|
upload(file, cid, self.ar.a, stats)
|
1012
|
-
except:
|
1013
|
-
|
1012
|
+
except Exception as ex:
|
1013
|
+
t = "upload failed, retrying: {0} #{1} ({2})\n"
|
1014
|
+
eprint(t.format(file.name, cid[:8], ex))
|
1014
1015
|
# handshake will fix it
|
1015
1016
|
|
1016
1017
|
with self.mutex:
|
@@ -1049,6 +1050,8 @@ def main():
|
|
1049
1050
|
print(ver)
|
1050
1051
|
return
|
1051
1052
|
|
1053
|
+
sys.argv = [x for x in sys.argv if x != "--ws"]
|
1054
|
+
|
1052
1055
|
# fmt: off
|
1053
1056
|
ap = app = argparse.ArgumentParser(formatter_class=APF, description="copyparty up2k uploader / filesearch tool, " + ver, epilog="""
|
1054
1057
|
NOTE:
|
@@ -1067,7 +1070,6 @@ source file/folder selection uses rsync syntax, meaning that:
|
|
1067
1070
|
|
1068
1071
|
ap = app.add_argument_group("compatibility")
|
1069
1072
|
ap.add_argument("--cls", action="store_true", help="clear screen before start")
|
1070
|
-
ap.add_argument("--ws", action="store_true", help="copyparty is running on windows; wait before deleting files after uploading")
|
1071
1073
|
|
1072
1074
|
ap = app.add_argument_group("folder sync")
|
1073
1075
|
ap.add_argument("--dl", action="store_true", help="delete local files after uploading")
|
@@ -1131,10 +1133,6 @@ source file/folder selection uses rsync syntax, meaning that:
|
|
1131
1133
|
|
1132
1134
|
if ar.dr and not ar.drd:
|
1133
1135
|
print("\npass 2/2: delete")
|
1134
|
-
if getattr(ctl, "up_br") and ar.ws:
|
1135
|
-
# wait for up2k to mtime if there was uploads
|
1136
|
-
time.sleep(4)
|
1137
|
-
|
1138
1136
|
ar.drd = True
|
1139
1137
|
ar.z = True
|
1140
1138
|
Ctl(ar, ctl.stats)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.6.
|
3
|
+
Version: 1.6.11
|
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
|
Home-page: https://github.com/9001/copyparty
|
6
6
|
Author: ed
|
@@ -177,7 +177,7 @@ some recommended options:
|
|
177
177
|
|
178
178
|
you may also want these, especially on servers:
|
179
179
|
|
180
|
-
* [contrib/systemd/copyparty.service](contrib/systemd/copyparty.service) to run copyparty as a systemd service
|
180
|
+
* [contrib/systemd/copyparty.service](contrib/systemd/copyparty.service) to run copyparty as a systemd service (see guide inside)
|
181
181
|
* [contrib/systemd/prisonparty.service](contrib/systemd/prisonparty.service) to run it in a chroot (for extra security)
|
182
182
|
* [contrib/rc/copyparty](contrib/rc/copyparty) to run copyparty on FreeBSD
|
183
183
|
* [contrib/nginx/copyparty.conf](contrib/nginx/copyparty.conf) to [reverse-proxy](#reverse-proxy) behind nginx (for better https)
|
@@ -215,7 +215,7 @@ firewall-cmd --reload
|
|
215
215
|
* ☑ write-only folders
|
216
216
|
* ☑ [unpost](#unpost): undo/delete accidental uploads
|
217
217
|
* ☑ [self-destruct](#self-destruct) (specified server-side or client-side)
|
218
|
-
* ☑ symlink/discard
|
218
|
+
* ☑ symlink/discard duplicates (content-matching)
|
219
219
|
* download
|
220
220
|
* ☑ single files in browser
|
221
221
|
* ☑ [folders as zip / tar files](#zip-downloads)
|
@@ -1253,7 +1253,9 @@ sync folders to/from copyparty
|
|
1253
1253
|
|
1254
1254
|
the commandline uploader [up2k.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading)
|
1255
1255
|
|
1256
|
-
alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty
|
1256
|
+
alternatively there is [rclone](./docs/rclone.md) which allows for bidirectional sync and is *way* more flexible (stream files straight from sftp/s3/gcs to copyparty, ...), although there is no integrity check and it won't work with files over 100 MiB if copyparty is behind cloudflare
|
1257
|
+
|
1258
|
+
* starting from rclone v1.63 (currently [in beta](https://beta.rclone.org/?filter=latest)), rclone will also be faster than up2k.py
|
1257
1259
|
|
1258
1260
|
|
1259
1261
|
## mount as drive
|
@@ -1262,11 +1264,10 @@ a remote copyparty server as a local filesystem; go to the control-panel and cl
|
|
1262
1264
|
|
1263
1265
|
alternatively, some alternatives roughly sorted by speed (unreproducible benchmark), best first:
|
1264
1266
|
|
1265
|
-
* [rclone-
|
1267
|
+
* [rclone-webdav](./docs/rclone.md) (25s), read/WRITE ([v1.63-beta](https://beta.rclone.org/?filter=latest))
|
1268
|
+
* [rclone-http](./docs/rclone.md) (26s), read-only
|
1269
|
+
* [partyfuse.py](./bin/#partyfusepy) (35s), read-only
|
1266
1270
|
* [rclone-ftp](./docs/rclone.md) (47s), read/WRITE
|
1267
|
-
* [rclone-webdav](./docs/rclone.md) (51s), read/WRITE
|
1268
|
-
* copyparty-1.5.0's webdav server is faster than rclone-1.60.0 (69s)
|
1269
|
-
* [partyfuse.py](./bin/#partyfusepy) (71s), read-only
|
1270
1271
|
* davfs2 (103s), read/WRITE, *very fast* on small files
|
1271
1272
|
* [win10-webdav](#webdav-server) (138s), read/WRITE
|
1272
1273
|
* [win10-smb2](#smb-server) (387s), read/WRITE
|
@@ -1,6 +1,6 @@
|
|
1
1
|
copyparty/__init__.py,sha256=ZIYqHdNC97NeoBTkFDSZ6E8aAma1tfjLhbax9oQHl4U,1063
|
2
2
|
copyparty/__main__.py,sha256=NeG2cQHE4uRQ02zHZ7gv-NAlRgmTWmVSslPH5Uk84NI,66925
|
3
|
-
copyparty/__version__.py,sha256=
|
3
|
+
copyparty/__version__.py,sha256=Rjr8n-EApIithnjIGWw74_DGKrayh0_AUylCp1sLxk0,247
|
4
4
|
copyparty/authsrv.py,sha256=Sh793NWnpklcz1ZEj-pt0FISjx-_BZJ8fkWm5rbWKrA,62030
|
5
5
|
copyparty/broker_mp.py,sha256=SEJT7qIH7L0YH0e1yHucsUuYJE5m3DKymO57070_UCs,3590
|
6
6
|
copyparty/broker_mpw.py,sha256=GlSn4PRd_OqqeG39FiXgNvPzXVQW6UCiAcqmBSr2q6g,3200
|
@@ -10,7 +10,7 @@ copyparty/cfg.py,sha256=ukauOEs_WKxzkt4MzIfLAU9eKGq9ZGcyIKSFMScc8xg,6436
|
|
10
10
|
copyparty/dxml.py,sha256=lZpg-kn-kQsXRtNY1n6fRaS-b7uXzMCyv8ovKnhZcZc,1548
|
11
11
|
copyparty/fsutil.py,sha256=c4fTvmclKbVABNsjU4rGddsjCgRwi9YExAyo-06ATc8,3932
|
12
12
|
copyparty/ftpd.py,sha256=pPLkQTNmqfZRGfzALzZApEj6N8l3yo24RqDGDqISeyE,13841
|
13
|
-
copyparty/httpcli.py,sha256=
|
13
|
+
copyparty/httpcli.py,sha256=BcoVcyvVq32_ilEvbAjzB1zgvCyK28MXQTWUMB0gVFA,120713
|
14
14
|
copyparty/httpconn.py,sha256=LXyJphs-FtyhFeDF-YUGVXKGf9KvHA86UzVx4FvRZo0,6674
|
15
15
|
copyparty/httpsrv.py,sha256=EQsGZgKvN_D_eZ-XbFPZgFXTQc2Y2EXCo2qQhfWbf_4,14143
|
16
16
|
copyparty/ico.py,sha256=eP_FGZEsnCLr6Q1ypITp7kbMKtQiDeROv0ydrbEKfIY,2643
|
@@ -27,7 +27,7 @@ copyparty/tcpsrv.py,sha256=ccUXnAa7IeRPWaaTAuOVcSgdBetlHVoJozsTrZcFx8Q,16633
|
|
27
27
|
copyparty/th_cli.py,sha256=hcb-GGN7krnHF3LIp3tDix_OYwXnCRoTpsiO0TaDqOg,3826
|
28
28
|
copyparty/th_srv.py,sha256=O7SJDLBx6pcRUiOR4G6Rqpi7FGthekedGTK3CXIFi_E,22119
|
29
29
|
copyparty/u2idx.py,sha256=n3DSFc67tIk-Jn8-Z5EEG8Xb_qv48KomJFYvoXlmV-U,10493
|
30
|
-
copyparty/up2k.py,sha256=
|
30
|
+
copyparty/up2k.py,sha256=sZem4PlqUnXsNPpn2XzbfU0Zz3EMrPYpMeqYBKuDQd4,121292
|
31
31
|
copyparty/util.py,sha256=hAZ4AN5rMQgDPYKiRdA3Qh-dZ0cBsaODR-mNrSuNwzw,71782
|
32
32
|
copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
copyparty/bos/bos.py,sha256=Md2RwMauEdOS7SfK5aiHby8T1KgQoTaoEjVCYU98_4I,1560
|
@@ -49,17 +49,17 @@ copyparty/stolen/ifaddr/__init__.py,sha256=_BUN7eM5oD2Jgib6B22tEFSb20fD9urNPPaAl
|
|
49
49
|
copyparty/stolen/ifaddr/_posix.py,sha256=-67NdfGrCktfQPakT2fLbjl2U00QMvyBGkSvrUuTOrU,2626
|
50
50
|
copyparty/stolen/ifaddr/_shared.py,sha256=cJACl8cOxQ-HSYphZTzKMAjAx_TAFyJwUPjfD102Xqw,6111
|
51
51
|
copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8QtZM,4026
|
52
|
-
copyparty/web/baguettebox.js.gz,sha256=
|
53
|
-
copyparty/web/browser.css.gz,sha256=
|
52
|
+
copyparty/web/baguettebox.js.gz,sha256=9ZXtLOKGTCRzIisSRIvqnO1s1ZQ90pxzoTU6vPol0m4,7295
|
53
|
+
copyparty/web/browser.css.gz,sha256=9oT_dnWhHdVrERi9GkNQElpcAhG1UtbUurqR033167U,10929
|
54
54
|
copyparty/web/browser.html,sha256=561cy72h48x7g6_ZHXsAS3xYqnNwrXB1KK9VBVBqio8,5286
|
55
|
-
copyparty/web/browser.js.gz,sha256=
|
55
|
+
copyparty/web/browser.js.gz,sha256=28jB3rWCHZsS2a2OZHzI-GQZihMa4RxKyBp9PLL31IU,57919
|
56
56
|
copyparty/web/browser2.html,sha256=3kR3QiDXYqtAo7gOoBtdTP3eRvibUCZHVVAbmAfaAVU,1604
|
57
57
|
copyparty/web/cf.html,sha256=AQSPDFq1-Ww-9SyVLZtjVPfl054aqXs6svi5cQBlAdA,585
|
58
58
|
copyparty/web/copyparty.gif,sha256=S1YS9GrKPbueEob_yTeWqzDcDoRXU_Z209BJ4YF-9pQ,126
|
59
59
|
copyparty/web/dbg-audio.js.gz,sha256=MgESInC83l8nnKTd8JSbSmLy_lXwlypML153FAm2TmU,687
|
60
60
|
copyparty/web/md.css.gz,sha256=gEI11ImLwhWYrsfb4YWx1OS1RgkpxHGsuMTJpcychJg,2011
|
61
61
|
copyparty/web/md.html,sha256=CmkW3Aw2qGowEsFBk-4THRWJBR-fyNmkl1Dr15lPwdg,4063
|
62
|
-
copyparty/web/md.js.gz,sha256
|
62
|
+
copyparty/web/md.js.gz,sha256=-4-0wF1YlLqHyiLpJQHTUPV4bys52hbbA9sKWEeRaFY,4121
|
63
63
|
copyparty/web/md2.css.gz,sha256=83brwCdNBp7n0zr2O3fYFn9OP1i-mXfd-nde78imLGw,680
|
64
64
|
copyparty/web/md2.js.gz,sha256=zpXdpg7yxZYPEU5UphdMQPsYQBkfSJM8z5OIKaoITpw,8209
|
65
65
|
copyparty/web/mde.css.gz,sha256=L6YhxnYBoqT5bSwD99rx8ALXDh8d_1-sCvbc_p3MoAU,929
|
@@ -70,15 +70,15 @@ copyparty/web/msg.html,sha256=JQFDP-jOhBM4pln5bOyncC9lJ6YpN2TMIyNn-bLNSqE,898
|
|
70
70
|
copyparty/web/splash.css.gz,sha256=dVMI8zrGO2glmPDS0QKhVmBgExe3p-QdUUIJ5EUWdrA,927
|
71
71
|
copyparty/web/splash.html,sha256=tqCewuM2HMkkR7MH8ijgtAM1LHqlawqJgTGvG7NzECY,3741
|
72
72
|
copyparty/web/splash.js.gz,sha256=2VuxIx4y0hyW9I5NWG83Bcabk5NJDftQt7a_j9Gb5nY,1235
|
73
|
-
copyparty/web/svcs.html,sha256=
|
73
|
+
copyparty/web/svcs.html,sha256=crtzPR4VKBKVRKY5m1DsDk4vmgBdVLpbOCgRa3nTrYk,9274
|
74
74
|
copyparty/web/svcs.js.gz,sha256=SSVKYYgZkEKMdDLjekvcXB00v-rCVJXh2GD_YtCvu7c,519
|
75
|
-
copyparty/web/ui.css.gz,sha256=
|
75
|
+
copyparty/web/ui.css.gz,sha256=Vx-kzNtCsAq7N3W9n27WE8zd6nNLegT0_v5AWmYyk7g,2418
|
76
76
|
copyparty/web/up2k.js.gz,sha256=fGYvDuq34kVz16occIYU9KUQZF9ZemcQLI57o2_DmK4,21538
|
77
|
-
copyparty/web/util.js.gz,sha256=
|
77
|
+
copyparty/web/util.js.gz,sha256=isC6LW43SGcZn9ueMfmxGmKzSxJtwqjY3_R2AhNPUdM,13078
|
78
78
|
copyparty/web/w.hash.js.gz,sha256=07eXr3ktdGNmFBLpqWCp6LsAx8AqIyy1KDNz2-r3p8U,1059
|
79
79
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
80
|
copyparty/web/a/partyfuse.py,sha256=mJKqR8LjX19P4Knqa02ob5ogwPVtJXSqxkEEGZU0r60,32276
|
81
|
-
copyparty/web/a/up2k.py,sha256=
|
81
|
+
copyparty/web/a/up2k.py,sha256=ZplodaoKL19ND5kI7LVi-5wYTCo2Qy8zYesv6OrO4gQ,34969
|
82
82
|
copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
|
83
83
|
copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
|
84
84
|
copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
|
@@ -86,24 +86,24 @@ copyparty/web/dd/4.png,sha256=fIwEVmtZNZtloZuVEKPKnkx3SELwRJmB3US61y7t2lI,248
|
|
86
86
|
copyparty/web/dd/5.png,sha256=Lfpu8-yOlhONuoMbygloKqQVPXSm9gjxH2gUYn5QQAE,250
|
87
87
|
copyparty/web/dd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
88
|
copyparty/web/deps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
|
-
copyparty/web/deps/easymde.css.gz,sha256=
|
90
|
-
copyparty/web/deps/easymde.js.gz,sha256=
|
91
|
-
copyparty/web/deps/marked.js.gz,sha256=
|
92
|
-
copyparty/web/deps/mini-fa.css.gz,sha256=
|
89
|
+
copyparty/web/deps/easymde.css.gz,sha256=bidHOWlCCwqvOrsz82ZzkTJzxXTJcKVVt328XZ72wYk,3053
|
90
|
+
copyparty/web/deps/easymde.js.gz,sha256=O0gNqyYoNMQ5wWd2bNO5D9VIS4SeI_GKN1aBPTyd6VI,76953
|
91
|
+
copyparty/web/deps/marked.js.gz,sha256=1xWr45dJMkwk0H58fZiLYmUYj1yaMP0BQ7S85XQgfQU,14819
|
92
|
+
copyparty/web/deps/mini-fa.css.gz,sha256=HKDETLj1IIUG3PhKixczxvPr5FAo-eD5phR03cf5Ijc,584
|
93
93
|
copyparty/web/deps/mini-fa.woff,sha256=L9DNncV2TIyvsrspMbJouvnnt7F068Hbn7YZYvN76AU,2784
|
94
94
|
copyparty/web/deps/prism.css.gz,sha256=dDssFDwbLNlB9QJsOepOdMse8FgrLrHIVpx1gNj4ZvY,1478
|
95
95
|
copyparty/web/deps/prism.js.gz,sha256=DR0OAfTUb6PkzSPgxjnjj7jqlpvuCHdMDJKbsQP7s5E,41428
|
96
96
|
copyparty/web/deps/prismd.css.gz,sha256=hzzspI_ptCygzmsIp9rKsf1M4yU12Ma7TfE-wyoXt3E,1647
|
97
97
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
98
|
-
copyparty/web/deps/sha512.ac.js.gz,sha256=
|
98
|
+
copyparty/web/deps/sha512.ac.js.gz,sha256=qELXngcl-Zitrpwolm4EWqVBPyEht013iP7uDuUDPk4,7043
|
99
99
|
copyparty/web/deps/sha512.hw.js.gz,sha256=0xJaw75Tghoblu72C2h4YoU1izSR99mBtDMoGqZ3xvs,8119
|
100
|
-
copyparty-1.6.
|
101
|
-
copyparty-1.6.
|
102
|
-
copyparty-1.6.
|
103
|
-
copyparty-1.6.
|
104
|
-
copyparty-1.6.
|
105
|
-
copyparty-1.6.
|
106
|
-
copyparty-1.6.
|
107
|
-
copyparty-1.6.
|
108
|
-
copyparty-1.6.
|
109
|
-
copyparty-1.6.
|
100
|
+
copyparty-1.6.11.data/data/share/doc/copyparty/LICENSE,sha256=yyzj1id78vWoLs8zbMRJY7xkkLz0lv-9dfyeIauqdfM,1059
|
101
|
+
copyparty-1.6.11.data/data/share/doc/copyparty/README.md,sha256=4XP68C2c4bQew3J3SvqaZ7WLtzsk217qWX37BTj-Dms,83258
|
102
|
+
copyparty-1.6.11.data/scripts/partyfuse.py,sha256=zhVQm5m-pWcUyo4aOvzZveOMeLJSY7gB2UGFYXp10XM,32262
|
103
|
+
copyparty-1.6.11.data/scripts/up2k.py,sha256=cgAbhiy6uEIg3dxFhq3qHYOuPxtJlk_94BzNkHfjj7Y,34955
|
104
|
+
copyparty-1.6.11.dist-info/LICENSE,sha256=yyzj1id78vWoLs8zbMRJY7xkkLz0lv-9dfyeIauqdfM,1059
|
105
|
+
copyparty-1.6.11.dist-info/METADATA,sha256=Ol7LxCKf5jo5ANwFgaetbAXtMnsbh1AHH9dSKmg74Kk,85345
|
106
|
+
copyparty-1.6.11.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
107
|
+
copyparty-1.6.11.dist-info/entry_points.txt,sha256=v3KsE-NQ_WGZkl78BlR8lZ4oHWhGbtjaEw3-iGXLfLQ,54
|
108
|
+
copyparty-1.6.11.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
109
|
+
copyparty-1.6.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|