copyparty 1.13.5__py3-none-any.whl → 1.13.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/__version__.py +2 -2
- copyparty/up2k.py +1 -1
- copyparty/web/a/u2c.py +14 -8
- copyparty/web/baguettebox.js.gz +0 -0
- copyparty/web/browser.js.gz +0 -0
- copyparty/web/svcs.html +2 -2
- copyparty/web/ui.css.gz +0 -0
- copyparty/web/up2k.js.gz +0 -0
- copyparty/web/util.js.gz +0 -0
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/METADATA +3 -1
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/RECORD +15 -15
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/WHEEL +1 -1
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/LICENSE +0 -0
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/entry_points.txt +0 -0
- {copyparty-1.13.5.dist-info → copyparty-1.13.6.dist-info}/top_level.txt +0 -0
copyparty/__version__.py
CHANGED
copyparty/up2k.py
CHANGED
copyparty/web/a/u2c.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#!/usr/bin/env python3
|
2
2
|
from __future__ import print_function, unicode_literals
|
3
3
|
|
4
|
-
S_VERSION = "1.
|
5
|
-
S_BUILD_DT = "2024-07-
|
4
|
+
S_VERSION = "1.21"
|
5
|
+
S_BUILD_DT = "2024-07-26"
|
6
6
|
|
7
7
|
"""
|
8
8
|
u2c.py: upload to copyparty
|
@@ -755,6 +755,7 @@ class Ctl(object):
|
|
755
755
|
else:
|
756
756
|
self.at_hash = 0.0
|
757
757
|
self.at_up = 0.0
|
758
|
+
self.at_upr = 0.0
|
758
759
|
self.hash_f = 0
|
759
760
|
self.hash_c = 0
|
760
761
|
self.hash_b = 0
|
@@ -903,8 +904,9 @@ class Ctl(object):
|
|
903
904
|
t = "{0} eta @ {1}/s, {2}, {3}# left".format(self.eta, spd, sleft, nleft)
|
904
905
|
eprint(txt + "\033]0;{0}\033\\\r{0}{1}".format(t, tail))
|
905
906
|
|
906
|
-
|
907
|
-
|
907
|
+
if self.hash_b and self.at_hash:
|
908
|
+
spd = humansize(self.hash_b / self.at_hash)
|
909
|
+
eprint("\nhasher: %.2f sec, %s/s\n" % (self.at_hash, spd))
|
908
910
|
if self.up_b and self.at_up:
|
909
911
|
spd = humansize(self.up_b / self.at_up)
|
910
912
|
eprint("upload: %.2f sec, %s/s\n" % (self.at_up, spd))
|
@@ -1099,9 +1101,6 @@ class Ctl(object):
|
|
1099
1101
|
|
1100
1102
|
if not hs:
|
1101
1103
|
self.at_hash += file.t_hash
|
1102
|
-
if file.up_b:
|
1103
|
-
t_up = file.t1_up - file.t0_up
|
1104
|
-
self.at_up += t_up
|
1105
1104
|
|
1106
1105
|
if self.ar.spd:
|
1107
1106
|
if VT100:
|
@@ -1112,6 +1111,7 @@ class Ctl(object):
|
|
1112
1111
|
|
1113
1112
|
spd_h = humansize(file.size / file.t_hash, True)
|
1114
1113
|
if file.up_b:
|
1114
|
+
t_up = file.t1_up - file.t0_up
|
1115
1115
|
spd_u = humansize(file.size / t_up, True)
|
1116
1116
|
|
1117
1117
|
t = "uploaded %s %s(h:%.2fs,%s/s,up:%.2fs,%s/s)%s"
|
@@ -1123,13 +1123,15 @@ class Ctl(object):
|
|
1123
1123
|
kw = "uploaded" if file.up_b else " found"
|
1124
1124
|
print("{0} {1}".format(kw, upath))
|
1125
1125
|
|
1126
|
+
chunksz = up2k_chunksize(file.size)
|
1127
|
+
njoin = (self.ar.sz * 1024 * 1024) // chunksz
|
1126
1128
|
cs = hs[:]
|
1127
1129
|
while cs:
|
1128
1130
|
fsl = FileSlice(file, cs[:1])
|
1129
1131
|
try:
|
1130
1132
|
if file.nojoin:
|
1131
1133
|
raise Exception()
|
1132
|
-
for n in range(2, min(len(cs),
|
1134
|
+
for n in range(2, min(len(cs), njoin + 1)):
|
1133
1135
|
fsl = FileSlice(file, cs[:n])
|
1134
1136
|
except:
|
1135
1137
|
pass
|
@@ -1147,6 +1149,8 @@ class Ctl(object):
|
|
1147
1149
|
cids = fsl.cids
|
1148
1150
|
|
1149
1151
|
with self.mutex:
|
1152
|
+
if not self.uploader_busy:
|
1153
|
+
self.at_upr = time.time()
|
1150
1154
|
self.uploader_busy += 1
|
1151
1155
|
if not file.t0_up:
|
1152
1156
|
file.t0_up = time.time()
|
@@ -1185,6 +1189,8 @@ class Ctl(object):
|
|
1185
1189
|
file.up_c += 1
|
1186
1190
|
self.up_c += 1
|
1187
1191
|
self.uploader_busy -= 1
|
1192
|
+
if not self.uploader_busy:
|
1193
|
+
self.at_up += time.time() - self.at_upr
|
1188
1194
|
|
1189
1195
|
def up_done(self, file):
|
1190
1196
|
if self.ar.dl:
|
copyparty/web/baguettebox.js.gz
CHANGED
Binary file
|
copyparty/web/browser.js.gz
CHANGED
Binary file
|
copyparty/web/svcs.html
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
<li>running <code>rclone mount</code> as root? add <code>--allow-other</code></li>
|
57
57
|
<li>old version of rclone? replace all <code>=</code> with <code> </code> (space)</li>
|
58
58
|
</ul>
|
59
|
-
|
59
|
+
|
60
60
|
<p>if you want to use the native WebDAV client in windows instead (slow and buggy), first run <a href="{{ r }}/.cpr/a/webdav-cfg.bat">webdav-cfg.bat</a> to remove the 47 MiB filesize limit (also fixes latency and password login), then connect:</p>
|
61
61
|
<pre>
|
62
62
|
net use <b>w:</b> http{{ s }}://{{ ep }}/{{ rvp }}{% if accs %} k /user:<b>{{ pw }}</b>{% endif %}
|
@@ -105,7 +105,7 @@
|
|
105
105
|
<pre>
|
106
106
|
http{{ s }}://k:<b>{{ pw }}</b>@{{ ep }}/{{ rvp }}
|
107
107
|
</pre>
|
108
|
-
|
108
|
+
|
109
109
|
{% if s %}
|
110
110
|
<p><em>replace <code>https</code> with <code>http</code> if it doesn't work</em></p>
|
111
111
|
{% 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.1
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.13.
|
3
|
+
Version: 1.13.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
|
@@ -1368,6 +1368,8 @@ you can set hooks before and/or after an event happens, and currently you can ho
|
|
1368
1368
|
|
1369
1369
|
there's a bunch of flags and stuff, see `--help-hooks`
|
1370
1370
|
|
1371
|
+
if you want to write your own hooks, see [devnotes](./docs/devnotes.md#event-hooks)
|
1372
|
+
|
1371
1373
|
|
1372
1374
|
### upload events
|
1373
1375
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
copyparty/__init__.py,sha256=fUINM1abqDGzCCH_JcXdOnLdKOV-SrTI2Xo2QgQW2P4,1703
|
2
2
|
copyparty/__main__.py,sha256=3fS9elMSksgji7chNwRitbHfgtLWRmV15JD_BvaKmTk,103492
|
3
|
-
copyparty/__version__.py,sha256=
|
3
|
+
copyparty/__version__.py,sha256=4MXEq4Neanau2UCgcagryjApwUEbLu_Yj4mLLDmobr0,255
|
4
4
|
copyparty/authsrv.py,sha256=zCo1-CmE2UhsnSRFqALTu1GBO6FVlo1l7Ex7PCv52Xg,87191
|
5
5
|
copyparty/broker_mp.py,sha256=YFe1S6Zziht8Qc__dCLj_ff8z0DDny9lqk_Mi5ajsJk,3868
|
6
6
|
copyparty/broker_mpw.py,sha256=4ZI7bJYOwUibeAJVv9_FPGNmHrr9eOtkj_Kz0JEppTU,3197
|
@@ -31,7 +31,7 @@ copyparty/tftpd.py,sha256=GkO1jN08ufPDcO2dri1VfvcDKcMW7x1RtL2Rj0SrN3o,12983
|
|
31
31
|
copyparty/th_cli.py,sha256=o6FMkerYvAXS455z3DUossVztu_nzFlYSQhs6qN6Jt8,4636
|
32
32
|
copyparty/th_srv.py,sha256=M5bYynDed1FR-UyuyOnsCCQP2IUxV_O3kONtH0n5Z8E,28729
|
33
33
|
copyparty/u2idx.py,sha256=uEUcEbye1jzGlQfEJkLtD060XA6Rv_6lXLgeg6oAU5M,13033
|
34
|
-
copyparty/up2k.py,sha256=
|
34
|
+
copyparty/up2k.py,sha256=o5EVfOGer67KmrbvyM2wTNVwx04CIdifS7gx767jW9w,146115
|
35
35
|
copyparty/util.py,sha256=eLumq1eaFZKxMV3xwWsCCIGMp2IS2k5ijaO83oNr0zc,84958
|
36
36
|
copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
37
|
copyparty/bos/bos.py,sha256=Wb7eWsXJgR5AFlBR9ZOyKrLTwy-Kct9RrGiOu4Jo37Y,1622
|
@@ -54,10 +54,10 @@ 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=
|
57
|
+
copyparty/web/baguettebox.js.gz,sha256=4dS8-r4si84ca71l98672ahnRI86Aq95MU-bc5knykk,7962
|
58
58
|
copyparty/web/browser.css.gz,sha256=8AZ53KZ-fWInji7m-eGNrwdZbWEeLmyjwg1V23ON6Mc,11539
|
59
59
|
copyparty/web/browser.html,sha256=-tLasq2GKe9mUceqXG4PczQ7odBMrX0qlWuyaA9SjPI,4882
|
60
|
-
copyparty/web/browser.js.gz,sha256
|
60
|
+
copyparty/web/browser.js.gz,sha256=-FlIylCcVX7aQvOInLDdSNZAqsVzs6RKczzvNBSFQ50,69593
|
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
|
@@ -74,15 +74,15 @@ copyparty/web/msg.html,sha256=HcBeXXpcF2JKwcj8KD3dGCvONMnTZ6lXYmm4SYgBMlA,905
|
|
74
74
|
copyparty/web/splash.css.gz,sha256=zgDs-SY3VrInsXeARRPcGHziVOUs-1hUtSObzybwD1g,1006
|
75
75
|
copyparty/web/splash.html,sha256=z5OrfZqA5RBxeY86BJiQ5NZNHIIDHDvPlTuht-Q0v64,3917
|
76
76
|
copyparty/web/splash.js.gz,sha256=P4BLL_SBqfqWniq_gzUD-opVAkblAPgKDwmfxyfDB7o,1469
|
77
|
-
copyparty/web/svcs.html,sha256=
|
77
|
+
copyparty/web/svcs.html,sha256=9NUxNAohl-RY-uDP73nFqTG69voN_QfqNNGYwIolDEs,11728
|
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=GnR_PxnZGcNs2IJnb5hFffnhlW3cUHkPad3tNIm-7DQ,2637
|
80
|
+
copyparty/web/up2k.js.gz,sha256=-tb11N3zmwTIhNSJCuaCbiFdt_A7Yhg_NSXfz87rzFs,22711
|
81
|
+
copyparty/web/util.js.gz,sha256=uZDsKkwTcEiFv-GTfy-zmArqirjhxGBLKjAhtLvj72s,14524
|
82
82
|
copyparty/web/w.hash.js.gz,sha256=7wP9EZQNXQxwZnCCFUVsi_-6TM9PLZJeZ9krutXRRj8,1060
|
83
83
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
84
|
copyparty/web/a/partyfuse.py,sha256=MuRkaSuYsdfWfBFMOkbPwDXqSvNTw3sd7QhhlKCDZ8I,32311
|
85
|
-
copyparty/web/a/u2c.py,sha256=
|
85
|
+
copyparty/web/a/u2c.py,sha256=W0B4QfyM7QqPNEPdAGQhtFSNNLt2r6xr9oZcG05F0Io,42213
|
86
86
|
copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
|
87
87
|
copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
|
88
88
|
copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
|
@@ -102,9 +102,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
|
|
102
102
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
103
103
|
copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
|
104
104
|
copyparty/web/deps/sha512.hw.js.gz,sha256=vqoXeracj-99Z5MfY3jK2N4WiSzYQdfjy0RnUlQDhSU,8110
|
105
|
-
copyparty-1.13.
|
106
|
-
copyparty-1.13.
|
107
|
-
copyparty-1.13.
|
108
|
-
copyparty-1.13.
|
109
|
-
copyparty-1.13.
|
110
|
-
copyparty-1.13.
|
105
|
+
copyparty-1.13.6.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
|
106
|
+
copyparty-1.13.6.dist-info/METADATA,sha256=RaamHNHak-QoDV2Jd7kBxvyTZk-qol0lUAWLgm0XDig,124426
|
107
|
+
copyparty-1.13.6.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
108
|
+
copyparty-1.13.6.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
109
|
+
copyparty-1.13.6.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
110
|
+
copyparty-1.13.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|