copyparty 1.9.26__py3-none-any.whl → 1.9.27__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 +1 -1
- copyparty/up2k.py +21 -13
- copyparty/web/a/u2c.py +2 -2
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/METADATA +1 -1
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/RECORD +9 -9
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/LICENSE +0 -0
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/WHEEL +0 -0
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/entry_points.txt +0 -0
- {copyparty-1.9.26.dist-info → copyparty-1.9.27.dist-info}/top_level.txt +0 -0
copyparty/__version__.py
CHANGED
copyparty/up2k.py
CHANGED
@@ -3357,28 +3357,27 @@ class Up2k(object):
|
|
3357
3357
|
if bos.path.exists(dabs):
|
3358
3358
|
raise Pebkac(400, "mv2: target file exists")
|
3359
3359
|
|
3360
|
-
|
3361
|
-
|
3362
|
-
|
3363
|
-
|
3364
|
-
|
3360
|
+
is_link = is_dirlink = False
|
3361
|
+
st = stl = bos.lstat(sabs)
|
3362
|
+
if stat.S_ISLNK(stl.st_mode):
|
3363
|
+
is_link = True
|
3364
|
+
try:
|
3365
|
+
st = bos.stat(sabs)
|
3366
|
+
is_dirlink = stat.S_ISDIR(st.st_mode)
|
3367
|
+
except:
|
3368
|
+
pass # broken symlink; keep as-is
|
3365
3369
|
|
3366
3370
|
xbr = svn.flags.get("xbr")
|
3367
3371
|
xar = dvn.flags.get("xar")
|
3368
3372
|
if xbr:
|
3369
3373
|
if not runhook(
|
3370
|
-
self.log, xbr, sabs, svp, "", uname,
|
3374
|
+
self.log, xbr, sabs, svp, "", uname, stl.st_mtime, st.st_size, "", 0, ""
|
3371
3375
|
):
|
3372
3376
|
t = "move blocked by xbr server config: {}".format(svp)
|
3373
3377
|
self.log(t, 1)
|
3374
3378
|
raise Pebkac(405, t)
|
3375
3379
|
|
3376
3380
|
is_xvol = svn.realpath != dvn.realpath
|
3377
|
-
if stat.S_ISLNK(stl.st_mode):
|
3378
|
-
is_dirlink = stat.S_ISDIR(st.st_mode)
|
3379
|
-
is_link = True
|
3380
|
-
else:
|
3381
|
-
is_link = is_dirlink = False
|
3382
3381
|
|
3383
3382
|
bos.makedirs(os.path.dirname(dabs))
|
3384
3383
|
|
@@ -3405,7 +3404,7 @@ class Up2k(object):
|
|
3405
3404
|
c2 = self.cur.get(dvn.realpath)
|
3406
3405
|
|
3407
3406
|
if ftime_ is None:
|
3408
|
-
ftime =
|
3407
|
+
ftime = stl.st_mtime
|
3409
3408
|
fsize = st.st_size
|
3410
3409
|
else:
|
3411
3410
|
ftime = ftime_
|
@@ -3447,7 +3446,16 @@ class Up2k(object):
|
|
3447
3446
|
if is_xvol and has_dupes:
|
3448
3447
|
raise OSError(errno.EXDEV, "src is symlink")
|
3449
3448
|
|
3450
|
-
|
3449
|
+
if is_link and st != stl:
|
3450
|
+
# relink non-broken symlinks to still work after the move,
|
3451
|
+
# but only resolve 1st level to maintain relativity
|
3452
|
+
dlink = bos.readlink(sabs)
|
3453
|
+
dlink = os.path.join(os.path.dirname(sabs), dlink)
|
3454
|
+
dlink = bos.path.abspath(dlink)
|
3455
|
+
self._symlink(dlink, dabs, dvn.flags, lmod=ftime)
|
3456
|
+
bos.unlink(sabs)
|
3457
|
+
else:
|
3458
|
+
atomic_move(sabs, dabs)
|
3451
3459
|
|
3452
3460
|
except OSError as ex:
|
3453
3461
|
if ex.errno != errno.EXDEV:
|
copyparty/web/a/u2c.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.9.
|
3
|
+
Version: 1.9.27
|
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
|
@@ -1,6 +1,6 @@
|
|
1
1
|
copyparty/__init__.py,sha256=34xcU8AoRRQscgVSx2gC6DeUyu7ZLmEVlXjttdQgXnI,1752
|
2
2
|
copyparty/__main__.py,sha256=hBzc1ISxFcZH3BpmdOsduCKBdmbPQAhvUUyuqmUvyOU,89329
|
3
|
-
copyparty/__version__.py,sha256=
|
3
|
+
copyparty/__version__.py,sha256=o3Ox4FVfBf649e-YKX-zqh1ZF5NFlIWL2G164kcrwp0,254
|
4
4
|
copyparty/authsrv.py,sha256=PrMej_hmFWkV8t4Txr2tc8GY7JD_vb7L3alWTuGe8hU,71292
|
5
5
|
copyparty/broker_mp.py,sha256=4mEZC5tiHUazJMgYuwInNo2dxS7jrbzrGb1qs2UBt9k,3948
|
6
6
|
copyparty/broker_mpw.py,sha256=GlSn4PRd_OqqeG39FiXgNvPzXVQW6UCiAcqmBSr2q6g,3200
|
@@ -30,7 +30,7 @@ copyparty/tcpsrv.py,sha256=vz94zy-eUg5-U1lskN3VAQiTXVr80PPnwJfwzybVcW4,17169
|
|
30
30
|
copyparty/th_cli.py,sha256=MSp2kpoAPiX1bndMthv6JK2gt3K6CjrloWuJsI_CL94,3869
|
31
31
|
copyparty/th_srv.py,sha256=ClG82DOri2Z8iJeMn1q886uMfxF8ZdJenDWIsiL5gYM,23288
|
32
32
|
copyparty/u2idx.py,sha256=HMEnpmbH-TXDrci4wsKNFvtEW4TxPtVl9hO5MS_EFVs,12799
|
33
|
-
copyparty/up2k.py,sha256=
|
33
|
+
copyparty/up2k.py,sha256=c9R_fb18xwtLKpP9swicATKp-DmJGCuRYR07aoUAKto,132716
|
34
34
|
copyparty/util.py,sha256=vfCbQv8QUIEQbu65BIuCkuGkqSoUhnCI6xPOFQevKxQ,75998
|
35
35
|
copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
copyparty/bos/bos.py,sha256=Wb7eWsXJgR5AFlBR9ZOyKrLTwy-Kct9RrGiOu4Jo37Y,1622
|
@@ -81,7 +81,7 @@ copyparty/web/util.js.gz,sha256=hGmBv9Ibt4PcRKea3HkIG2G0NIFsn_UJf7bKasymR90,1386
|
|
81
81
|
copyparty/web/w.hash.js.gz,sha256=P9469QknH8-1aKwI_1n1_S4yKvIGOu7bGoty9N3zYMI,1060
|
82
82
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
83
|
copyparty/web/a/partyfuse.py,sha256=MuRkaSuYsdfWfBFMOkbPwDXqSvNTw3sd7QhhlKCDZ8I,32311
|
84
|
-
copyparty/web/a/u2c.py,sha256=
|
84
|
+
copyparty/web/a/u2c.py,sha256=3dRtYfNh_kDTHQvHACZ5VotJsEY9SPclYyfMC6hDsdo,37819
|
85
85
|
copyparty/web/a/webdav-cfg.bat,sha256=Y4NoGZlksAIg4cBMb7KdJrpKC6Nx97onaTl6yMjaimk,1449
|
86
86
|
copyparty/web/dd/2.png,sha256=gJ14XFPzaw95L6z92fSq9eMPikSQyu-03P1lgiGe0_I,258
|
87
87
|
copyparty/web/dd/3.png,sha256=4lho8Koz5tV7jJ4ODo6GMTScZfkqsT05yp48EDFIlyg,252
|
@@ -98,9 +98,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
|
|
98
98
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
99
99
|
copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
|
100
100
|
copyparty/web/deps/sha512.hw.js.gz,sha256=km3_b5IoaVwg02Ex6PxnhDLZxKiOMP2cHW35j9CSWFA,8107
|
101
|
-
copyparty-1.9.
|
102
|
-
copyparty-1.9.
|
103
|
-
copyparty-1.9.
|
104
|
-
copyparty-1.9.
|
105
|
-
copyparty-1.9.
|
106
|
-
copyparty-1.9.
|
101
|
+
copyparty-1.9.27.dist-info/LICENSE,sha256=yyzj1id78vWoLs8zbMRJY7xkkLz0lv-9dfyeIauqdfM,1059
|
102
|
+
copyparty-1.9.27.dist-info/METADATA,sha256=v7eaPBfBOdji7cRJms62zqEQyPuZsk-AhRAbyGdNz-Y,108940
|
103
|
+
copyparty-1.9.27.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
104
|
+
copyparty-1.9.27.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
105
|
+
copyparty-1.9.27.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
106
|
+
copyparty-1.9.27.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|