copyparty 1.16.20__tar.gz → 1.16.21__tar.gz
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-1.16.20 → copyparty-1.16.21}/PKG-INFO +6 -1
- {copyparty-1.16.20 → copyparty-1.16.21}/README.md +5 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/__version__.py +2 -2
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/szip.py +10 -6
- copyparty-1.16.21/copyparty/web/browser.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/PKG-INFO +6 -1
- copyparty-1.16.20/copyparty/web/browser.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/LICENSE +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/__main__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/authsrv.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/bos/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/bos/bos.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/bos/path.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/broker_mp.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/broker_mpw.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/broker_thr.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/broker_util.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/cert.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/cfg.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/dxml.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/fsutil.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/ftpd.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/httpcli.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/httpconn.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/httpsrv.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/ico.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/mdns.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/metrics.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/mtag.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/multicast.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/pwhash.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/res/COPYING.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/res/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/res/insecure.pem +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/smbd.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/ssdp.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/star.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/bimap.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/bit.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/buffer.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/dns.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/label.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/lex.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/dnslib/ranges.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/ifaddr/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/ifaddr/_posix.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/ifaddr/_shared.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/ifaddr/_win32.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/qrcodegen.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/stolen/surrogateescape.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/sutil.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/svchub.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/tcpsrv.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/tftpd.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/th_cli.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/th_srv.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/u2idx.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/up2k.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/util.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/a/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/a/partyfuse.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/a/u2c.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/a/webdav-cfg.bat +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/baguettebox.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/browser.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/browser.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/browser2.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/cf.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dbg-audio.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dd/2.png +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dd/3.png +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dd/4.png +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dd/5.png +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/dd/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/__init__.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/busy.mp3.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/easymde.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/easymde.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/fuse.py +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/marked.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/mini-fa.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/mini-fa.woff +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/prism.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/prism.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/prismd.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/scp.woff2 +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/sha512.ac.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/deps/sha512.hw.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/md.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/md.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/md.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/md2.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/md2.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/mde.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/mde.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/mde.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/msg.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/msg.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/rups.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/rups.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/rups.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/shares.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/shares.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/shares.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/splash.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/splash.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/splash.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/svcs.html +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/svcs.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/ui.css.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/up2k.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/util.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty/web/w.hash.js.gz +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/SOURCES.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/dependency_links.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/entry_points.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/requires.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/copyparty.egg-info/top_level.txt +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/pyproject.toml +0 -0
- {copyparty-1.16.20 → copyparty-1.16.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.21
|
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
|
@@ -205,6 +205,7 @@ just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/
|
|
205
205
|
* or if you are on android, [install copyparty in termux](#install-on-android)
|
206
206
|
* or maybe you have a [synology nas / dsm](./docs/synology-dsm.md)
|
207
207
|
* or if your computer is messed up and nothing else works, [try the pyz](#zipapp)
|
208
|
+
* or if your OS is dead, give the [bootable flashdrive / cd-rom](https://a.ocv.me/pub/stuff/edcd001/enterprise-edition/) a spin
|
208
209
|
* or if you don't trust copyparty yet and want to isolate it a little, then...
|
209
210
|
* ...maybe [prisonparty](./bin/prisonparty.sh) to create a tiny [chroot](https://wiki.archlinux.org/title/Chroot) (very portable),
|
210
211
|
* ...or [bubbleparty](./bin/bubbleparty.sh) to wrap it in [bubblewrap](https://github.com/containers/bubblewrap) (much better)
|
@@ -360,6 +361,8 @@ project goals / philosophy
|
|
360
361
|
* adaptable, malleable, hackable
|
361
362
|
* no build steps; modify the js/python without needing node.js or anything like that
|
362
363
|
|
364
|
+
becoming rich is specifically *not* a motivation, but if you wanna donate then see my [github profile](https://github.com/9001) regarding donations for my FOSS stuff in general (also THANKS!)
|
365
|
+
|
363
366
|
|
364
367
|
## notes
|
365
368
|
|
@@ -788,6 +791,7 @@ select which type of archive you want in the `[⚙️] config` tab:
|
|
788
791
|
* `up2k.db` and `dir.txt` is always excluded
|
789
792
|
* bsdtar supports streaming unzipping: `curl foo?zip | bsdtar -xv`
|
790
793
|
* good, because copyparty's zip is faster than tar on small files
|
794
|
+
* but `?tar` is better for large files, especially if the total exceeds 4 GiB
|
791
795
|
* `zip_crc` will take longer to download since the server has to read each file twice
|
792
796
|
* this is only to support MS-DOS PKZIP v2.04g (october 1993) and older
|
793
797
|
* how are you accessing copyparty actually
|
@@ -1092,6 +1096,7 @@ click the `play` link next to an audio file, or copy the link target to [share i
|
|
1092
1096
|
|
1093
1097
|
open the `[🎺]` media-player-settings tab to configure it,
|
1094
1098
|
* "switches":
|
1099
|
+
* `[🔁]` repeats one single song forever
|
1095
1100
|
* `[🔀]` shuffles the files inside each folder
|
1096
1101
|
* `[preload]` starts loading the next track when it's about to end, reduces the silence between songs
|
1097
1102
|
* `[full]` does a full preload by downloading the entire next file; good for unreliable connections, bad for slow connections
|
@@ -147,6 +147,7 @@ just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/
|
|
147
147
|
* or if you are on android, [install copyparty in termux](#install-on-android)
|
148
148
|
* or maybe you have a [synology nas / dsm](./docs/synology-dsm.md)
|
149
149
|
* or if your computer is messed up and nothing else works, [try the pyz](#zipapp)
|
150
|
+
* or if your OS is dead, give the [bootable flashdrive / cd-rom](https://a.ocv.me/pub/stuff/edcd001/enterprise-edition/) a spin
|
150
151
|
* or if you don't trust copyparty yet and want to isolate it a little, then...
|
151
152
|
* ...maybe [prisonparty](./bin/prisonparty.sh) to create a tiny [chroot](https://wiki.archlinux.org/title/Chroot) (very portable),
|
152
153
|
* ...or [bubbleparty](./bin/bubbleparty.sh) to wrap it in [bubblewrap](https://github.com/containers/bubblewrap) (much better)
|
@@ -302,6 +303,8 @@ project goals / philosophy
|
|
302
303
|
* adaptable, malleable, hackable
|
303
304
|
* no build steps; modify the js/python without needing node.js or anything like that
|
304
305
|
|
306
|
+
becoming rich is specifically *not* a motivation, but if you wanna donate then see my [github profile](https://github.com/9001) regarding donations for my FOSS stuff in general (also THANKS!)
|
307
|
+
|
305
308
|
|
306
309
|
## notes
|
307
310
|
|
@@ -730,6 +733,7 @@ select which type of archive you want in the `[⚙️] config` tab:
|
|
730
733
|
* `up2k.db` and `dir.txt` is always excluded
|
731
734
|
* bsdtar supports streaming unzipping: `curl foo?zip | bsdtar -xv`
|
732
735
|
* good, because copyparty's zip is faster than tar on small files
|
736
|
+
* but `?tar` is better for large files, especially if the total exceeds 4 GiB
|
733
737
|
* `zip_crc` will take longer to download since the server has to read each file twice
|
734
738
|
* this is only to support MS-DOS PKZIP v2.04g (october 1993) and older
|
735
739
|
* how are you accessing copyparty actually
|
@@ -1034,6 +1038,7 @@ click the `play` link next to an audio file, or copy the link target to [share i
|
|
1034
1038
|
|
1035
1039
|
open the `[🎺]` media-player-settings tab to configure it,
|
1036
1040
|
* "switches":
|
1041
|
+
* `[🔁]` repeats one single song forever
|
1037
1042
|
* `[🔀]` shuffles the files inside each folder
|
1038
1043
|
* `[preload]` starts loading the next track when it's about to end, reduces the silence between songs
|
1039
1044
|
* `[full]` does a full preload by downloading the entire next file; good for unreliable connections, bad for slow connections
|
@@ -48,6 +48,7 @@ def gen_fdesc(sz , crc32 , z64 ) :
|
|
48
48
|
|
49
49
|
def gen_hdr(
|
50
50
|
h_pos ,
|
51
|
+
z64 ,
|
51
52
|
fn ,
|
52
53
|
sz ,
|
53
54
|
lastmod ,
|
@@ -64,7 +65,6 @@ def gen_hdr(
|
|
64
65
|
# appnote 4.5 / zip 3.0 (2008) / unzip 6.0 (2009) says to add z64
|
65
66
|
# extinfo for values which exceed H, but that becomes an off-by-one
|
66
67
|
# (can't tell if it was clamped or exactly maxval), make it obvious
|
67
|
-
z64 = sz >= 0xFFFFFFFF
|
68
68
|
z64v = [sz, sz] if z64 else []
|
69
69
|
if h_pos and h_pos >= 0xFFFFFFFF:
|
70
70
|
# central, also consider ptr to original header
|
@@ -238,6 +238,7 @@ class StreamZip(StreamArc):
|
|
238
238
|
|
239
239
|
sz = st.st_size
|
240
240
|
ts = st.st_mtime
|
241
|
+
h_pos = self.pos
|
241
242
|
|
242
243
|
crc = 0
|
243
244
|
if self.pre_crc:
|
@@ -246,8 +247,12 @@ class StreamZip(StreamArc):
|
|
246
247
|
|
247
248
|
crc &= 0xFFFFFFFF
|
248
249
|
|
249
|
-
|
250
|
-
|
250
|
+
# some unzip-programs expect a 64bit data-descriptor
|
251
|
+
# even if the only 32bit-exceeding value is the offset,
|
252
|
+
# so force that by placeholdering the filesize too
|
253
|
+
z64 = h_pos >= 0xFFFFFFFF or sz >= 0xFFFFFFFF
|
254
|
+
|
255
|
+
buf = gen_hdr(None, z64, name, sz, ts, self.utf8, crc, self.pre_crc)
|
251
256
|
yield self._ct(buf)
|
252
257
|
|
253
258
|
for buf in yieldfile(src, self.args.iobuf):
|
@@ -260,8 +265,6 @@ class StreamZip(StreamArc):
|
|
260
265
|
|
261
266
|
self.items.append((name, sz, ts, crc, h_pos))
|
262
267
|
|
263
|
-
z64 = sz >= 4 * 1024 * 1024 * 1024
|
264
|
-
|
265
268
|
if z64 or not self.pre_crc:
|
266
269
|
buf = gen_fdesc(sz, crc, z64)
|
267
270
|
yield self._ct(buf)
|
@@ -300,7 +303,8 @@ class StreamZip(StreamArc):
|
|
300
303
|
|
301
304
|
cdir_pos = self.pos
|
302
305
|
for name, sz, ts, crc, h_pos in self.items:
|
303
|
-
|
306
|
+
z64 = h_pos >= 0xFFFFFFFF or sz >= 0xFFFFFFFF
|
307
|
+
buf = gen_hdr(h_pos, z64, name, sz, ts, self.utf8, crc, self.pre_crc)
|
304
308
|
mbuf += self._ct(buf)
|
305
309
|
if len(mbuf) >= 16384:
|
306
310
|
yield mbuf
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.21
|
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
|
@@ -205,6 +205,7 @@ just run **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/
|
|
205
205
|
* or if you are on android, [install copyparty in termux](#install-on-android)
|
206
206
|
* or maybe you have a [synology nas / dsm](./docs/synology-dsm.md)
|
207
207
|
* or if your computer is messed up and nothing else works, [try the pyz](#zipapp)
|
208
|
+
* or if your OS is dead, give the [bootable flashdrive / cd-rom](https://a.ocv.me/pub/stuff/edcd001/enterprise-edition/) a spin
|
208
209
|
* or if you don't trust copyparty yet and want to isolate it a little, then...
|
209
210
|
* ...maybe [prisonparty](./bin/prisonparty.sh) to create a tiny [chroot](https://wiki.archlinux.org/title/Chroot) (very portable),
|
210
211
|
* ...or [bubbleparty](./bin/bubbleparty.sh) to wrap it in [bubblewrap](https://github.com/containers/bubblewrap) (much better)
|
@@ -360,6 +361,8 @@ project goals / philosophy
|
|
360
361
|
* adaptable, malleable, hackable
|
361
362
|
* no build steps; modify the js/python without needing node.js or anything like that
|
362
363
|
|
364
|
+
becoming rich is specifically *not* a motivation, but if you wanna donate then see my [github profile](https://github.com/9001) regarding donations for my FOSS stuff in general (also THANKS!)
|
365
|
+
|
363
366
|
|
364
367
|
## notes
|
365
368
|
|
@@ -788,6 +791,7 @@ select which type of archive you want in the `[⚙️] config` tab:
|
|
788
791
|
* `up2k.db` and `dir.txt` is always excluded
|
789
792
|
* bsdtar supports streaming unzipping: `curl foo?zip | bsdtar -xv`
|
790
793
|
* good, because copyparty's zip is faster than tar on small files
|
794
|
+
* but `?tar` is better for large files, especially if the total exceeds 4 GiB
|
791
795
|
* `zip_crc` will take longer to download since the server has to read each file twice
|
792
796
|
* this is only to support MS-DOS PKZIP v2.04g (october 1993) and older
|
793
797
|
* how are you accessing copyparty actually
|
@@ -1092,6 +1096,7 @@ click the `play` link next to an audio file, or copy the link target to [share i
|
|
1092
1096
|
|
1093
1097
|
open the `[🎺]` media-player-settings tab to configure it,
|
1094
1098
|
* "switches":
|
1099
|
+
* `[🔁]` repeats one single song forever
|
1095
1100
|
* `[🔀]` shuffles the files inside each folder
|
1096
1101
|
* `[preload]` starts loading the next track when it's about to end, reduces the silence between songs
|
1097
1102
|
* `[full]` does a full preload by downloading the entire next file; good for unreliable connections, bad for slow connections
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|