copyparty 1.7.1__py3-none-any.whl → 1.7.2__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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # coding: utf-8
2
2
 
3
- VERSION = (1, 7, 1)
3
+ VERSION = (1, 7, 2)
4
4
  CODENAME = "unlinked"
5
- BUILD_DT = (2023, 5, 7)
5
+ BUILD_DT = (2023, 5, 13)
6
6
 
7
7
  S_VERSION = ".".join(map(str, VERSION))
8
8
  S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
copyparty/authsrv.py CHANGED
@@ -834,6 +834,9 @@ class AuthSrv(object):
834
834
  if not ln.split("#")[0].strip():
835
835
  continue
836
836
 
837
+ if re.match(r"^\[.*\]:$", ln):
838
+ ln = ln[:-1]
839
+
837
840
  subsection = ln in (catx, catf)
838
841
  if ln.startswith("[") or subsection:
839
842
  self._e()
@@ -1571,6 +1574,12 @@ class AuthSrv(object):
1571
1574
  if t:
1572
1575
  self.log("\n\033[{}\033[0m\n".format(t))
1573
1576
 
1577
+ zv, _ = vfs.get("/", "*", False, False)
1578
+ zs = zv.realpath.lower()
1579
+ if zs in ("/", "c:\\") or zs.startswith(r"c:\windows"):
1580
+ t = "you are sharing a system directory: {}\n"
1581
+ self.log(t.format(zv.realpath), c=1)
1582
+
1574
1583
  try:
1575
1584
  zv, _ = vfs.get("/", "*", False, True)
1576
1585
  if self.warn_anonwrite and os.getcwd() == zv.realpath:
copyparty/httpcli.py CHANGED
@@ -722,7 +722,7 @@ class HttpCli(object):
722
722
 
723
723
  def handle_get(self) :
724
724
  if self.do_log:
725
- logmsg = "%4s %s @%s" % (self.mode, self.req, self.uname)
725
+ logmsg = "%-4s %s @%s" % (self.mode, self.req, self.uname)
726
726
 
727
727
  if "range" in self.headers:
728
728
  try:
copyparty/up2k.py CHANGED
@@ -2561,7 +2561,7 @@ class Up2k(object):
2561
2561
 
2562
2562
  try:
2563
2563
  if "hardlink" in flags:
2564
- os.link(fsenc(src), fsenc(dst))
2564
+ os.link(fsenc(absreal(src)), fsenc(dst))
2565
2565
  linked = True
2566
2566
  except Exception as ex:
2567
2567
  self.log("cannot hardlink: " + repr(ex))
Binary file
copyparty/web/up2k.js.gz CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: copyparty
3
- Version: 1.7.1
3
+ Version: 1.7.2
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
@@ -175,7 +175,7 @@ enable thumbnails (images/audio/video), media indexing, and audio transcoding by
175
175
 
176
176
  running copyparty without arguments (for example doubleclicking it on Windows) will give everyone read/write access to the current folder; you may want [accounts and volumes](#accounts-and-volumes)
177
177
 
178
- or see [complete windows example](./docs/examples/windows.md)
178
+ or see [some usage examples](#complete-examples) for inspiration, or the [complete windows example](./docs/examples/windows.md)
179
179
 
180
180
  some recommended options:
181
181
  * `-e2dsa` enables general [file indexing](#file-indexing)
@@ -1207,9 +1207,33 @@ see the top of [./copyparty/web/browser.css](./copyparty/web/browser.css) where
1207
1207
 
1208
1208
  ## complete examples
1209
1209
 
1210
- * [running on windows](./docs/examples/windows.md)
1210
+ * see [running on windows](./docs/examples/windows.md) for a fancy windows setup
1211
1211
 
1212
- * read-only music server
1212
+ * or use any of the examples below, just replace `python copyparty-sfx.py` with `copyparty.exe` if you're using the exe edition
1213
+
1214
+ * allow anyone to download or upload files into the current folder:
1215
+ `python copyparty-sfx.py`
1216
+
1217
+ * enable searching and music indexing with `-e2dsa -e2ts`
1218
+
1219
+ * start an FTP server on port 3921 with `--ftp 3921`
1220
+
1221
+ * announce it on your LAN with `-z` so it appears in windows/Linux file managers
1222
+
1223
+ * anyone can upload, but nobody can see any files (even the uploader):
1224
+ `python copyparty-sfx.py -e2dsa -v .::w`
1225
+
1226
+ * block uploads if there's less than 4 GiB free disk space with `--df 4`
1227
+
1228
+ * show a popup on new uploads with `--xau bin/hooks/notify.py`
1229
+
1230
+ * anyone can upload, and receive "secret" links for each upload they do:
1231
+ `python copyparty-sfx.py -e2dsa -v .::wG:c,fk=8`
1232
+
1233
+ * anyone can browse, only `kevin` (password `okgo`) can upload/move/delete files:
1234
+ `python copyparty-sfx.py -e2dsa -a kevin:okgo -v .::r:rwmd,kevin`
1235
+
1236
+ * read-only music server:
1213
1237
  `python copyparty-sfx.py -v /mnt/nas/music:/music:r -e2dsa -e2ts --no-robots --force-js --theme 2`
1214
1238
 
1215
1239
  * ...with bpm and key scanning
@@ -1,7 +1,7 @@
1
1
  copyparty/__init__.py,sha256=ZIYqHdNC97NeoBTkFDSZ6E8aAma1tfjLhbax9oQHl4U,1063
2
2
  copyparty/__main__.py,sha256=HPgywdHSXj3wmRMrkDPDzjih1offPhWui0Yoc-6XYa4,68805
3
- copyparty/__version__.py,sha256=dRi2IswuXiI6UFR7S9J2S3japziAcTvaTQGu8Q2-8_w,248
4
- copyparty/authsrv.py,sha256=ZYMHzNYK71vKGox4JcuBmRQLvvJT34KHbu90nsmluOY,65534
3
+ copyparty/__version__.py,sha256=9cTb_nokmHkzDsxlssYL71CCtnSQFxb1tqo8aefz6nM,249
4
+ copyparty/authsrv.py,sha256=ukY16qpHDJzuj6c1T4rHVKnN813utNvu_7Sti8bzMN0,65881
5
5
  copyparty/broker_mp.py,sha256=SEJT7qIH7L0YH0e1yHucsUuYJE5m3DKymO57070_UCs,3590
6
6
  copyparty/broker_mpw.py,sha256=GlSn4PRd_OqqeG39FiXgNvPzXVQW6UCiAcqmBSr2q6g,3200
7
7
  copyparty/broker_thr.py,sha256=eKr--HJGig5zqvNGwH9UoBG9Nvi9mT2axrRmJwknd0s,1759
@@ -10,7 +10,7 @@ copyparty/cfg.py,sha256=ZFoex6JOzHLdjbbiYXYhGvlYpa2rHDVu3TErBPF3xcU,6714
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=dhFj580ywIDfA6YoxTWuIASsIpXBeqO3KE8V9FnVvLo,15258
13
- copyparty/httpcli.py,sha256=yqJJaVRZy0cfCir8rOzADH5077nsQyAnjgOoi6nWvpw,122642
13
+ copyparty/httpcli.py,sha256=5XV0WLnIrnPiuvvVqZfeg6zEZTDZ2dwQbfXczmqdc08,122643
14
14
  copyparty/httpconn.py,sha256=nFvV8Os9fX60eDA2Dd6-6H6n3PlmZE54OntMYrjGm98,6891
15
15
  copyparty/httpsrv.py,sha256=3K9_CmHcUqQsxRUeB-RVHa3bnuJnXdjOCEVP6vt6nkE,15141
16
16
  copyparty/ico.py,sha256=eP_FGZEsnCLr6Q1ypITp7kbMKtQiDeROv0ydrbEKfIY,2643
@@ -27,7 +27,7 @@ copyparty/tcpsrv.py,sha256=mbPb0DFaaVrLpSHhz6-vlSAvb8-iKmtokhu5mpqwwLc,16643
27
27
  copyparty/th_cli.py,sha256=hcb-GGN7krnHF3LIp3tDix_OYwXnCRoTpsiO0TaDqOg,3826
28
28
  copyparty/th_srv.py,sha256=Aiy5EG3q4qa6lLJr-YWF0ji4qsNlUTZcHKsA0oxtoso,22379
29
29
  copyparty/u2idx.py,sha256=e4lgQAG9DkI9NS2tEbzriydhrZiIH0A0rH3mwzN3xgI,10585
30
- copyparty/up2k.py,sha256=oIeaPSjYN_x64JB0Inz9YYwNmYhpSOam0R68c-wm1vI,121987
30
+ copyparty/up2k.py,sha256=oKA2uLgPGhzQDbNjs6t8vISdPter7y3h6g4jF9LfLDE,121996
31
31
  copyparty/util.py,sha256=F7BrIrryDpDXJi8jx9jaGh2HG7zmOAxJgCDog8xzPLM,71993
32
32
  copyparty/bos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  copyparty/bos/bos.py,sha256=Md2RwMauEdOS7SfK5aiHby8T1KgQoTaoEjVCYU98_4I,1560
@@ -53,7 +53,7 @@ copyparty/stolen/ifaddr/_win32.py,sha256=EE-QyoBgeB7lYQ6z62VjXNaRozaYfCkaJBHGNA8
53
53
  copyparty/web/baguettebox.js.gz,sha256=X9cgmzW13InKW92J1Z5UtvpPsu1fDaVWlumPIZYpdzY,7296
54
54
  copyparty/web/browser.css.gz,sha256=uiZRbslFEOajLR6_L-slZUVUKqvPStztyojEir_O4KY,10960
55
55
  copyparty/web/browser.html,sha256=561cy72h48x7g6_ZHXsAS3xYqnNwrXB1KK9VBVBqio8,5286
56
- copyparty/web/browser.js.gz,sha256=pW5NNcZ3HhEI0VEsboj7_59LIUcSTr8kixhGaLSO458,59104
56
+ copyparty/web/browser.js.gz,sha256=33V-cYDrwFbGp32fRTOwjZS2h2TJRfCxNjXT9V5iMTg,59129
57
57
  copyparty/web/browser2.html,sha256=3kR3QiDXYqtAo7gOoBtdTP3eRvibUCZHVVAbmAfaAVU,1604
58
58
  copyparty/web/cf.html,sha256=AQSPDFq1-Ww-9SyVLZtjVPfl054aqXs6svi5cQBlAdA,585
59
59
  copyparty/web/dbg-audio.js.gz,sha256=Ma-KZtK8LnmiwNvNKFKXMPYl_Nn_3U7GsJ6-DRWC2HE,688
@@ -73,7 +73,7 @@ copyparty/web/splash.js.gz,sha256=2VuxIx4y0hyW9I5NWG83Bcabk5NJDftQt7a_j9Gb5nY,12
73
73
  copyparty/web/svcs.html,sha256=ixFFuf6jykApGOyObPqdxqikPqxUL_A5c7ThmiyzWOA,10610
74
74
  copyparty/web/svcs.js.gz,sha256=k81ZvZ3I-f4fMHKrNGGOgOlvXnCBz0mVjD-8mieoWCA,520
75
75
  copyparty/web/ui.css.gz,sha256=pnMRiDCXlnusPlB5CYDDzTDj5re-_OoOHXk_wy8KJ7c,2419
76
- copyparty/web/up2k.js.gz,sha256=9Ql6aj3FA6QXOE427ad3jreydfa06xvVqb2XxCcxRGM,21540
76
+ copyparty/web/up2k.js.gz,sha256=lbjF19iOkydDacc90PicA-uL1beDUzdlDQcKalJSuWc,21544
77
77
  copyparty/web/util.js.gz,sha256=GQFapA3cU-vtQ3v0fhjF22XizjxSWu62Bmyya7X8zRA,13074
78
78
  copyparty/web/w.hash.js.gz,sha256=P9469QknH8-1aKwI_1n1_S4yKvIGOu7bGoty9N3zYMI,1060
79
79
  copyparty/web/a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -97,9 +97,9 @@ copyparty/web/deps/prismd.css.gz,sha256=hzzspI_ptCygzmsIp9rKsf1M4yU12Ma7TfE-wyoX
97
97
  copyparty/web/deps/scp.woff2,sha256=w99BDU5i8MukkMEL-iW0YO9H4vFFZSPWxbkH70ytaAg,8612
98
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.7.1.dist-info/LICENSE,sha256=yyzj1id78vWoLs8zbMRJY7xkkLz0lv-9dfyeIauqdfM,1059
101
- copyparty-1.7.1.dist-info/METADATA,sha256=yJSAekTGI_axidSqshrwj2Q1j1CPpP6R8pyh37Jy8uc,94925
102
- copyparty-1.7.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
103
- copyparty-1.7.1.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
104
- copyparty-1.7.1.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
105
- copyparty-1.7.1.dist-info/RECORD,,
100
+ copyparty-1.7.2.dist-info/LICENSE,sha256=yyzj1id78vWoLs8zbMRJY7xkkLz0lv-9dfyeIauqdfM,1059
101
+ copyparty-1.7.2.dist-info/METADATA,sha256=mMexVz_17_-93FJhn13A3qaYfyyTwAPD95BhG_XvNG8,95992
102
+ copyparty-1.7.2.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
103
+ copyparty-1.7.2.dist-info/entry_points.txt,sha256=4zw6a3rqASywQomiYLObjjlxybaI65LYYOTJwgKz7b0,128
104
+ copyparty-1.7.2.dist-info/top_level.txt,sha256=LnYUPsDyk-8kFgM6YJLG4h820DQekn81cObKSu9g-sI,10
105
+ copyparty-1.7.2.dist-info/RECORD,,