copyparty 1.16.14__py3-none-any.whl → 1.16.15__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 +9 -4
- copyparty/web/browser.js.gz +0 -0
- copyparty/web/md2.js.gz +0 -0
- copyparty/web/up2k.js.gz +0 -0
- copyparty/web/w.hash.js.gz +0 -0
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/METADATA +3 -1
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/RECORD +12 -12
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/LICENSE +0 -0
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/WHEEL +0 -0
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/entry_points.txt +0 -0
- {copyparty-1.16.14.dist-info → copyparty-1.16.15.dist-info}/top_level.txt +0 -0
copyparty/__version__.py
CHANGED
copyparty/httpcli.py
CHANGED
@@ -148,6 +148,8 @@ RE_HSAFE = re.compile(r"[\x00-\x1f<>\"'&]") # search always much faster
|
|
148
148
|
RE_HOST = re.compile(r"[^][0-9a-zA-Z.:_-]") # search faster <=17ch
|
149
149
|
RE_MHOST = re.compile(r"^[][0-9a-zA-Z.:_-]+$") # match faster >=18ch
|
150
150
|
RE_K = re.compile(r"[^0-9a-zA-Z_-]") # search faster <=17ch
|
151
|
+
RE_HR = re.compile(r"[<>\"'&]")
|
152
|
+
RE_MDV = re.compile(r"(.*)\.([0-9]+\.[0-9]{3})(\.[Mm][Dd])$")
|
151
153
|
|
152
154
|
UPARAM_CC_OK = set("doc move tree".split())
|
153
155
|
|
@@ -5947,7 +5949,7 @@ class HttpCli(object):
|
|
5947
5949
|
# [num-backups, most-recent, hist-path]
|
5948
5950
|
hist = {}
|
5949
5951
|
histdir = os.path.join(fsroot, ".hist")
|
5950
|
-
ptn =
|
5952
|
+
ptn = RE_MDV
|
5951
5953
|
try:
|
5952
5954
|
for hfn in bos.listdir(histdir):
|
5953
5955
|
m = ptn.match(hfn)
|
@@ -5980,6 +5982,7 @@ class HttpCli(object):
|
|
5980
5982
|
|
5981
5983
|
dirs = []
|
5982
5984
|
files = []
|
5985
|
+
ptn_hr = RE_HR
|
5983
5986
|
for fn in ls_names:
|
5984
5987
|
base = ""
|
5985
5988
|
href = fn
|
@@ -6034,11 +6037,13 @@ class HttpCli(object):
|
|
6034
6037
|
zd.second,
|
6035
6038
|
)
|
6036
6039
|
|
6037
|
-
|
6038
|
-
ext = "---"
|
6040
|
+
if is_dir:
|
6041
|
+
ext = "---"
|
6042
|
+
elif "." in fn:
|
6043
|
+
ext = ptn_hr.sub("@", fn.rsplit(".", 1)[1])
|
6039
6044
|
if len(ext) > 16:
|
6040
6045
|
ext = ext[:16]
|
6041
|
-
|
6046
|
+
else:
|
6042
6047
|
ext = "%"
|
6043
6048
|
|
6044
6049
|
if add_fk and not is_dir:
|
copyparty/web/browser.js.gz
CHANGED
Binary file
|
copyparty/web/md2.js.gz
CHANGED
Binary file
|
copyparty/web/up2k.js.gz
CHANGED
Binary file
|
copyparty/web/w.hash.js.gz
CHANGED
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.15
|
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
|
@@ -285,6 +285,7 @@ also see [comparison to similar software](./docs/versus.md)
|
|
285
285
|
* ☑ [upnp / zeroconf / mdns / ssdp](#zeroconf)
|
286
286
|
* ☑ [event hooks](#event-hooks) / script runner
|
287
287
|
* ☑ [reverse-proxy support](https://github.com/9001/copyparty#reverse-proxy)
|
288
|
+
* ☑ cross-platform (Windows, Linux, Macos, Android, FreeBSD, arm32/arm64, ppc64le, s390x, risc-v/riscv64)
|
288
289
|
* upload
|
289
290
|
* ☑ basic: plain multipart, ie6 support
|
290
291
|
* ☑ [up2k](#uploading): js, resumable, multithreaded
|
@@ -2363,6 +2364,7 @@ quick summary of more eccentric web-browsers trying to view a directory index:
|
|
2363
2364
|
| **ie4** and **netscape** 4.0 | can browse, upload with `?b=u`, auth with `&pw=wark` |
|
2364
2365
|
| **ncsa mosaic** 2.7 | does not get a pass, [pic1](https://user-images.githubusercontent.com/241032/174189227-ae816026-cf6f-4be5-a26e-1b3b072c1b2f.png) - [pic2](https://user-images.githubusercontent.com/241032/174189225-5651c059-5152-46e9-ac26-7e98e497901b.png) |
|
2365
2366
|
| **SerenityOS** (7e98457) | hits a page fault, works with `?b=u`, file upload not-impl |
|
2367
|
+
| **sony psp** 5.50 | can browse, upload/mkdir/msg (thx dwarf) [screenshot](https://github.com/user-attachments/assets/9d21f020-1110-4652-abeb-6fc09c533d4f) |
|
2366
2368
|
| **nintendo 3ds** | can browse, upload, view thumbnails (thx bnjmn) |
|
2367
2369
|
|
2368
2370
|
<p align="center"><img src="https://github.com/user-attachments/assets/88deab3d-6cad-4017-8841-2f041472b853" /></p>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
copyparty/__init__.py,sha256=VR6ZZhB9IxaK5TDXDTBM_OIP5ydkrdbaEnstktLM__s,2649
|
2
2
|
copyparty/__main__.py,sha256=JDjMsCiOMMBPs8HR8vpgEJMgnxq-qjX-hcgxKHF9WX4,117137
|
3
|
-
copyparty/__version__.py,sha256
|
3
|
+
copyparty/__version__.py,sha256=HKXFw8jbvkFpMUWxHYEZL8rEZ2F2g8Y3xZcoqydWK0o,252
|
4
4
|
copyparty/authsrv.py,sha256=EqlE2YztBcZHF5MHStZawA8ZKSlm-ePkrhsen90lKE8,107740
|
5
5
|
copyparty/broker_mp.py,sha256=QdOXXvV2Xn6J0CysEqyY3GZbqxQMyWnTpnba-a5lMc0,4987
|
6
6
|
copyparty/broker_mpw.py,sha256=PpSS4SK3pItlpfD8OwVr3QmJEPKlUgaf2nuMOozixgU,3347
|
@@ -11,7 +11,7 @@ copyparty/cfg.py,sha256=Z04AuNy-viZiiVJ8fLf3RULgH4w8ZidjsAVj4cmJKlA,13272
|
|
11
11
|
copyparty/dxml.py,sha256=vu5uZQtwvwoqnFHbULs2Zh_y2DETu0T-ENpMZ1i2CV4,2505
|
12
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=DT2ZV-Hrxg1itfmeTkkHIctJHdG8nxtnIZJ8Whufxxo,219291
|
15
15
|
copyparty/httpconn.py,sha256=mQSgljh0Q-jyWjF4tQLrHbRKRe9WKl19kGqsGMsJpWo,6880
|
16
16
|
copyparty/httpsrv.py,sha256=pxH_Eh8ElBLvOEDejgpP9Bvk65HNEou-03aYIcgXhrs,18090
|
17
17
|
copyparty/ico.py,sha256=eWSxEae4wOCfheHl-m-wchYvFRAR_97kJDb4NGaB-Z8,3561
|
@@ -57,7 +57,7 @@ copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8
|
|
57
57
|
copyparty/web/baguettebox.js.gz,sha256=r2c_hOZV_RTyl4CqWWX14FDWP8nnDVwGkDl4Sfk0rU4,8239
|
58
58
|
copyparty/web/browser.css.gz,sha256=_HiFW5vPUusWadoqdY8ZihuWizY9UECAc5nIamBPRi4,11654
|
59
59
|
copyparty/web/browser.html,sha256=auvhLVE_t0aIN0q-nk0zOWFqITgDhroMAAviBNLoFfc,4788
|
60
|
-
copyparty/web/browser.js.gz,sha256=
|
60
|
+
copyparty/web/browser.js.gz,sha256=dZ0sELnKXMnfQ_hrYb19xZ0SE9wFlYbDOCy-TEnFono,92091
|
61
61
|
copyparty/web/browser2.html,sha256=NRUZ08GH-e2YcGXcoz0UjYg6JIVF42u4IMX4HHwWTmg,1587
|
62
62
|
copyparty/web/cf.html,sha256=lJThtNFNAQT1ClCHHlivAkDGE0LutedwopXD62Z8Nys,589
|
63
63
|
copyparty/web/dbg-audio.js.gz,sha256=Ma-KZtK8LnmiwNvNKFKXMPYl_Nn_3U7GsJ6-DRWC2HE,688
|
@@ -65,7 +65,7 @@ copyparty/web/md.css.gz,sha256=UZpN0J7ubVM05CZkbZYkQRJeGgJt_GNDEzKTGSQd8h4,2032
|
|
65
65
|
copyparty/web/md.html,sha256=hz-xJVfKtaeTUQn3tGh7ebIMvLbOjVKkrMhsCTr3lGM,4200
|
66
66
|
copyparty/web/md.js.gz,sha256=m5dpIskZZ8FD9X-L0EWpoZP-yLOo-PCWJ7j4AFtHVRI,4163
|
67
67
|
copyparty/web/md2.css.gz,sha256=uIVHKScThdbcfhXNSHgKZnALYpxbnXC-WuEzOJ20Lpc,699
|
68
|
-
copyparty/web/md2.js.gz,sha256=
|
68
|
+
copyparty/web/md2.js.gz,sha256=42GJAAMaAa6dnBAYJfUlz4yCtSzYe5d-W-B7zOfiLW0,8372
|
69
69
|
copyparty/web/mde.css.gz,sha256=2SkAEDKIRPqywNJ8t_heQaeBQ_R73Rf-pQI_bDoKF6o,942
|
70
70
|
copyparty/web/mde.html,sha256=fRGUlnNhK6ra8P4jskQLUw6Aaef6g6Heh4EEgYhJkxU,1770
|
71
71
|
copyparty/web/mde.js.gz,sha256=kN2eUSvr4mFuksfK4-4LimJmWdwsao39Sea2lWtu8L0,2224
|
@@ -83,9 +83,9 @@ copyparty/web/splash.js.gz,sha256=4VqNznN10-bT33IJm3VWzBEJ1s08XZyxFB1TYPUkuAo,27
|
|
83
83
|
copyparty/web/svcs.html,sha256=dnE1fG15zOpq7u0GYt8ij6BUv_LTwsiipFeneVYlMsM,14140
|
84
84
|
copyparty/web/svcs.js.gz,sha256=lMXEP9W-VlXyANlva4q0ASSxvvHYlE2CrmxGgZXZop0,713
|
85
85
|
copyparty/web/ui.css.gz,sha256=0sHIwGsL3_xH8Uu6N0Ag3bKBTjf-e_yfFbKynEZXAnk,2800
|
86
|
-
copyparty/web/up2k.js.gz,sha256=
|
86
|
+
copyparty/web/up2k.js.gz,sha256=1bw_NV3mm8crU0ZyXMJiDwBHc4hheAsPig4GXFmGm6Y,24066
|
87
87
|
copyparty/web/util.js.gz,sha256=wD3tP5j1iE5Uj5AvLW5zZbQJXDIFDlqgBTGdXeRVqo0,15110
|
88
|
-
copyparty/web/w.hash.js.gz,sha256=
|
88
|
+
copyparty/web/w.hash.js.gz,sha256=JhJagnqIkcKng_hs6otEgzcuQE7keToG_r5dd2o3EfU,1108
|
89
89
|
copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
90
90
|
copyparty/web/a/partyfuse.py,sha256=9p5Hpg_IBiSimv7j9kmPhCGpy-FLXSRUOYnLjJ5JifU,28049
|
91
91
|
copyparty/web/a/u2c.py,sha256=oRKEApPuaXiOkmUyA-WGCDjtWsn8FirSW6nCJtx9sgk,53157
|
@@ -109,9 +109,9 @@ copyparty/web/deps/prismd.css.gz,sha256=ObUlksQVr-OuYlTz-I4B23TeBg2QDVVGRnWBz8cV
|
|
109
109
|
copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
|
110
110
|
copyparty/web/deps/sha512.ac.js.gz,sha256=lFZaCLumgWxrvEuDr4bqdKHsqjX82AbVAb7_F45Yk88,7033
|
111
111
|
copyparty/web/deps/sha512.hw.js.gz,sha256=UAed2_ocklZCnIzcSYz2h4P1ycztlCLj-ewsRTud2lU,7939
|
112
|
-
copyparty-1.16.
|
113
|
-
copyparty-1.16.
|
114
|
-
copyparty-1.16.
|
115
|
-
copyparty-1.16.
|
116
|
-
copyparty-1.16.
|
117
|
-
copyparty-1.16.
|
112
|
+
copyparty-1.16.15.dist-info/LICENSE,sha256=gOr4h33pCsBEg9uIy9AYmb7qlocL4V9t2uPJS5wllr0,1072
|
113
|
+
copyparty-1.16.15.dist-info/METADATA,sha256=x6aMlu6u9GN0-GrOf4OZPk4Ew-dy-2iqOcR48EXUIxs,158045
|
114
|
+
copyparty-1.16.15.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
115
|
+
copyparty-1.16.15.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
|
116
|
+
copyparty-1.16.15.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
|
117
|
+
copyparty-1.16.15.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|