diff --git a/docs/README.md b/docs/README.md index a9dca00c..035904cf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,6 +13,9 @@ # other stuff +## [`changelog.md`](changelog.md) +* occasionally grabbed from github release notes + ## [`rclone.md`](rclone.md) * notes on using rclone as a fuse client/server diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..6505a6da --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,2581 @@ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0616-1956 `v1.3.1` types + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## new features +* improved support for filesystems without sparse files (fat32, exfat, hpfs) + * the server no longer preallocates the whole file with zeroes before upload can start + * so you can now finally run copyparty on your android phone or tablet and upload to the sd-card instead of the internal storage + * however upload speed will suffer a bit (limited to a single tcp connection doing one chunk at a time) +* safety profiles; arguments `-s`, `-ss`, and `-sss` are aliases/presets for other safety-related arguments + * `-s` reduces attack surface from potentially dangerous software by disabling thumbnails, audio transcoding, ffmpeg, pillow, vips + * `-ss` also prevents js-injection, accidental move/deletes, broken symlinks, and enables enterprise-grade security (return 404 on 403) + * `-sss` also enables logging to disk and does a scan for dangerous symlinks at startup (possibly expensive) +* ux improvements + * a11y jumpers -- hit tab + enter to jump straight to files/folders + * hotkey `Y` to download currently playing song / vid / pic + * button to reset the hidden columns + * new themes "hacker" and "hi-con" + +## bugfixes +* spinlock if a client disconnects in the middle of an up2k handshake +* ftp server couldn't persist metadata when multiprocessing was enabled (`-j 0`) +* cut/paste (move) files between filesystems +* allow `Connection: keep-alive` on HTTP/1.0 +* stray `[` appeared at the start of logfiles in the textviewer +* misleading log message when a completed upload expires from registry and `-e2d` was not set + +## other changes +* the basic uploader adds the `.PARTIAL` suffix while uploading (like up2k) +* added type hints / mypy checking +* upgrade deps (markedjs, codemirror) +* ux improvements + * delay spinners a bit + * instant feedback when switching folders + * a11y outlines in up2k ui + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0522-1502 `v1.3.0` god dag + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## new features +* i18n! multilingual client + * new option `--lang nor` to set default language + * english and norwegian + * add your own language at the top of [browser.js](https://github.com/9001/copyparty/blob/hovudstraum/copyparty/web/browser.js) and [splash.js](https://github.com/9001/copyparty/blob/hovudstraum/copyparty/web/splash.js) and send a pr :^) + * build an english-only sfx with `./scripts/make-sfx.sh lang eng` (or `eng|nor` for english and norwegian) + * translation is incomplete but covers the most important / common stuff +* show download progress while opening huge textfiles +* add unix-extrafield to zipfiles for utc timestamps + * zip spec says the regular timestamp is supposed to be localtime :|||| + * only helps on linux and will rollaround in 2038 but should be OK because the msdos field doesn't until 2100 + * couldn't get ntfs-extrafields to work (supposed to be utc but idgi), would have been better, oh well +* ux tweaks + * remember videoplayer preferences + * confirmation messages + * hiding a column for the first time + * opening a huge textfile + * destination in upload msg + +## bugfixes +* dont switch to treeview when playback continues into the next folder + +## other changes +* updated deps (markedjs, codemirror, prismjs) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0513-1524 `v1.2.11` big docs + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## bugfixes + +this release fixes #9 (denial-of-service), thx to @chinponya for the report! + +* large files no longer embed if you `?doc=some.mkv` + * stops copyparty from eating all your RAM + * js will stream the file afterwards instead +* disable selection of search results + * didn't serve a purpose, was just confusing + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0512-2344 `v1.2.10` in addition + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## bugfixes +* huge speed boost on huge databases (4'000'000+ files) + * improves initial tag scans when indexing new files + * should also improve directory listings, search results + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0512-2110 `v1.2.9` monokai + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## new features +* automatic logout after `--logout` minutes of inactivity +* show originating path to dangerous symlinks during `--ls` validation + +## bugfixes +* dont try to index nonregular files when scanning filesystem +* start filesystem indexing even if no interfaces could bind +* fix minor issues when using a symlink as webroot +* fix filekeys in the basic-html browser +* support login on ie4 / win3.11 +* restore minimal support for browsers without css-variables [(makes ie11 look surprisingly dope)](https://user-images.githubusercontent.com/241032/166340135-c59b9ced-5dbe-45d9-9025-285f0ffb5a49.png) + +## other changes +* redirect to webroot after login instead of the controlpanel +* improve readability of the upload dropzone for smaller screens +* complain loudly if FFmpeg segfaults on a file + * grep your logs for ` +0. classic dark +2. flat dark +4. vice +1. classic light +3. flat light + +5. hotdog stand + +* `search:` button to load more search results, starting at 125 instead of 1000, now much better on slow PCs +* `search:` immediately perform a search when the enter key is pressed +* `uploader:` optimal column sizing in the uploader depending on which tab is selected (done/busy/queued) +* `uploader:` new option `--turbo` to change the default settings of the turbo-mode in the uploader + * `0` (default) is the old behavior, `1` disables the warning when enabling turbo, `2` enables turbo, `3` also disables the datecheck + * see the tooltip in the settings tab for more info; basically it skips the file contents verification and instead relies on filesize and timestamp to guess if a file was uploaded already, useful for massive upload batches that got interrupted + +## bugfixes +* `httpd:` a theoretical XSS opening -- copyparty would echo bad requests as html + * it still does that, but now with plaintext content-type + * was mostly-harmless -- can't really think of a way to exploit it since it'd only happen on invalid HTTP requests +* `httpd:` better errorhandling on invalid requests in general +* **windows-only:** `httpd:` deadlocks when trying to access files with illegal filenames on windows + * files containing characters `:*<|>"/?\` or names starting with `con.`, `prn.`, `aux.`, `nul.` + * for example `aux.c` when unpacking the linux source code on a flashdrive and plugging it into a windows rig +* **windows-only:** `database:` deadlock if a search was done during the initial filesystem scan +* `database:` deadlock if an upload was done during a filesystem scan (either initial or periodic rescan) +* `client:` javascript crash when linking someone an audio URL and they'd never visited before +* `client:` ignore bugs in the developer console (in future versions of chrome) +* `uploader:` timestamps of zero-byte uploads were not set +* `database:` skip busy files during a filesystem rescan +* `media player:` sending artist / title info to the OS broke at some point + +## other changes +* changed the themes to use css variables for colors, making it way easier (hopefully) to make your own themes +* mention [chrome issue 1317069](https://bugs.chromium.org/p/chromium/issues/detail?id=1317069) in the readme +* improved the `--help` text + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0416-2144 `v1.2.7` write-only unpost + +fixed another dumdum, sorry for the spam +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# bugfixes +* allow unpost with write-only permissions + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0415-1809 `v1.2.6` hardlink + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* new arg `--hardlink` tries to hardlink instead of symlink when receiving a duplicate file through up2k +* new arg `--never-symlink` disables the fallback to symlink if hardlink fails, making a full dupe + * `--no-symlink` was renamed to `--no-dedup` + +# bugfixes +* some css color issues introduced in v1.2.4, mainly in markdown documents +* setting mtimes / last-modified on up2k uploads when running on windows + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0414-1945 `v1.2.4` the thumbs and themes update + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* gallery URLS -- copy the URL while viewing an image/video in the gallery +* option to change/disable the gallery animations in the UI + * default from OS preferences through `prefers-reduced-motion` +* decode terminal colors when viewing `diz`, `ans`, `log` textfiles +* thumbnails: + * option to use `pyvips` instead of (or in addition to) `pillow`, 3x faster than pillow + * add `ffmpeg` as fallback for creating thumbnails of pictures too, 3x slower than pillow + * so now it can read jpeg-xl files + a bunch more + * including pdf which is disabled by default because scary + * new args to specify which file formats to read using which backend + * `--th-r-pil`, `--th-r-vips`, `--th-r-ffi`, `--th-r-ffv`, `--th-r-ffa` + * new arg `--th-dec` specifies backend preference, default `pyvips` > `pillow` > `ffmpeg` + * volflags to disallow thumbnails inside specific volumes + * `dvthumb` for video, `dathumb` for audio, `dithumb` for pics, `dthumb` to disable all + * try to detect and adjust for missing ffmpeg features + * adds `--th-ff-jpg` and `--th-ff-swr` when necessary but it breaks the first few thumbs +* flat theme, selectable in the settings tab + * new arg `--theme` sets default theme, default 0 = old dark theme + * new arg `--themes` adds more theme buttons to the UI if you've included your own theme through `--css-browser` + +# bugfixes +* more aggressively prevent systemd from deleting the sfx from `/tmp` while copyparty is running +* javascript crash if media player settings were changed without music playing + +# other changes +* add `mpc`/musepack to known audio formats (for streaming and spectrogram thumbnails) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0324-0135 `v1.2.3` the ancient ones + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* browser-client: never give up on a failed upload -- keep retrying every 30sec + +# bugfixes +* files with last-modified older than 1980-01-01 didn't make it into zip downloads + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0320-0515 `v1.2.2` dont crawl me bro + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* options to tell crawlers / search engines you dont wanna be indexed + * either globally with `--no-robots` or single volumes using volflag `norobots` + * allow crawlers inside a volume with volflag `robots` + * or just use [robots.txt](https://www.robotstxt.org/robotstxt.html) like usual ( ´ w `) +* `--force-js` disables plain HTML folder listings, making things harder for crawlers who ignore the hints + * internet explorer 9 is the oldest surviving browser +* `--html-head` to append additional HTML to the `` section of all pages + +# bugfixes +* inaccurate server URLs displayed on startup + * correct protocol based on port / `--http-only` / `--https-only` + * Windows: ignore interfaces with no ethernet cable connected + * Windows: show URLs for all IPs on each interface + * Linux: show link state next to URLs +* reset console color on exit + +# other changes +* show name of open document in page title + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0303-0026 `v1.2.1` ikke den men denja + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* plaintext volume listings at http://127.0.0.1:3923/?h&ls=v + +# bugfixes +* search: support negative queries / subtracting tags from searches + * you can put stuff like `gura -kagura` in the tags field + * also the `raw` field supports `and/or/not` for more complex stuff such as + ``` + ( tags like *nhato* or tags like *taishi* ) and ( not tags like *nhato* or not tags like *taishi* ) + ``` +* [prisonparty](https://github.com/9001/copyparty/blob/hovudstraum/bin/prisonparty.sh): clean shutdown when used as a service +* ftp server now runs on python2 as well + * ftps does not + +# other changes +* higher debounce for searches +* slightly more padding in the files table +* added asyncore/asynchat into the sfx to (hopefully) support running the ftp server in python 3.12 when that releases late 2023 + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0213-1558 `v1.2.0` ftp btw + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* ftp server + * built on [pyftpdlib](https://pypi.org/project/pyftpdlib/) + * plaintext (`--ftp`), and/or... + * FTPES / explicit-TLS (`--ftps`) + * active or passive, as client prefers + * upload, download, accounts (read / write / move / rename / delete) + * does NOT have resumable uploads -- delete and reupload as necessary + * integrated with up2k + * uploaded files are indexed into the database + * unpost is available (delete your own recent uploads) +* `--s-wr-slp` now rate-limits file uploads as well, in addition to downloads +* `--srch-hits` sets the max number of search results, defaults to 1000 (same as before) +* ctrl-click `-txt-` links to open the document viewer in a new tab +* log terse checksum of uploaded files + +# bugfixes +* file-search: path queries didn't include the volume prefix/mountpoint +* ie11 could throw exceptions on keystrokes + +# other changes +* finally deprecated `copyparty-sfx.sh` +* update some dependencies + * marked `4.0.10` -> `4.0.12` fixes minor table formatting issues + * easymde `2.15.0` -> `2.16.1` + * codemirror `5.64.0` -> `5.65.1` + +# notes +* the ftp server is not compatible with python 3.12 (releasing october 2023) + * will be fixed in a [future version of pyftpdlib](https://github.com/giampaolo/pyftpdlib/issues/560) + +the sfx was built from https://github.com/9001/copyparty/commit/39e7a7a2311ab8da43b2a9a18ae39d06202105e3 + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0118-2128 `v1.1.12` i should stop adding bugs + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# bugfixes +* fix PUT response in write-only folders (broke in v1.1.11) + +# other changes +* [prisonparty](https://github.com/9001/copyparty/blob/hovudstraum/bin/prisonparty.sh): + * fix examples + * support running from source +* [mtag-install-deps](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/install-deps.sh): + * fix downloading tarballs from github (they stopped returning content-dispositions) + * build vamp-sdk from source if unavailable +* forgot to mention [partyjournal](https://github.com/9001/copyparty/blob/hovudstraum/bin/partyjournal.py): + * was a new feature in v1.1.11 + * shows a history of all uploads within a volume by reading the up2k db + * can replace IPs with nicknames if provided as arguments + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2022-0114-2125 `v1.1.11` chromecast? + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* include file-url in PUT responses + * to support the [android app](https://github.com/9001/party-up/) +* main-tabs have links and are linkable which would have been a great help [before the android app existed](https://user-images.githubusercontent.com/241032/147699835-16101690-aab1-49da-a3cc-d16759808af5.jpg) + +# new plugins (disabled by default) +* [very-bad-idea.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/very-bad-idea.py) and [meadup.js](https://github.com/9001/copyparty/blob/hovudstraum/contrib/plugins/meadup.js) which together turns a raspberry pi into a janky yet extremely flexible chromecast clone + * anything uploaded through the app (files or links) are executed on the server + * adds a virtual keyboard by @steinuil to the basic-upload tab + * dedicated to extremely particular occasions where randomly evaluating code is A-OK + * sweden-approved software + +# bugfixes +* return own external ip as `Host:` if `Host:` is not provided by client +* correct clipboard actions available when jumping between permission levels +* markdown converter accidentally using a broken ie11 shim on all browsers +* changing the sort-order in the file listing didn't affect the thumbnail view + +# other changes +* upgrade marked.js to 4.0.10 + * fixes misc rendering bugs + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1216-2305 `v1.1.10` chill + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# bugfixes +* patiently wait when clients stop consuming data + * fixes connections going bad when streaming movies or music + * only affects sendfile, meaning reverse-proxied and non-https connections +* try FFmpeg when mutagen partially fails to parse a file (not just when it throws) + +# other changes +* add [multisearch.html](https://github.com/9001/copyparty/blob/hovudstraum/docs/multisearch.html), applying a search template to a list of filenames + * the currently only example grabs youtube-IDs and finds all related files for that ID + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1210-0144 `v1.1.8` merry xmas + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* folders are colored blue when using `?ls=v` to list stuff in a terminal +* add folder breadcrumbs inside the textfile navpane + +# bugfixes +* folder breadcrumbs (the non-navpane ones) glitching out while viewing textfiles +* give 404 instead of 500 when accessing `/.cpr` + +# other changes +* expose some more state from the up2k client to ease debugging + * for example to find out that firefox94 cannot read files bigger than 2 GiB when compiled with musl +* updated the [alternative fuse client](https://github.com/9001/copyparty/blob/hovudstraum/bin/copyparty-fuseb.py) so it kinda works again + * still no reason to use that instead of the [main client](https://github.com/9001/copyparty/blob/hovudstraum/bin/copyparty-fuse.py) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1207-1819 `v1.1.7` two wrongs + +[v1.1.5](https://github.com/9001/copyparty/releases/tag/v1.1.5) and [v1.1.6](https://github.com/9001/copyparty/releases/tag/v1.1.6) were pretty busted, sorry bout that +(so much for stable eh) +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# known problems / todo +so far just mild annoyances, nothing bad +* clicking breadcrumbs with the textviewer open will navigate correctly but messes up the breadcrumbs +* server throws an exception when accessing `/.cpr` +* up2k should expose `st` for easier debugging + +# bugfixes +* search-results ui + * selecting / playing audio results broke in v1.1.5 + * and playing audio tracks in search results would clobber the search URL but that has always been a thing +* only show unique IPs in the window-title + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1207-0017 `v1.1.6` not copyparty + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* option `--doctitle` changes the titles in the web-ui from "copyparty" to something else +* option `--wintitle` sets the console window-title, defaults to the primary/external IP +* volume-flags [`d2ds` and `d2ts`](https://github.com/9001/copyparty#file-indexing) to selectively disable on-boot indexing for some volumes +* support funky linux distros (with no `~/.config` and read-only `/tmp` such as recent Termux builds) + +# bugfixes +* last release broke folder listings if you left off the trailing slash in the url + * also fix the markdown-editor breadcrumbs which made that very obvious +* when running without `-e2d`, don't proactively create symlinks for dupe uploads + * prevents the client from accidentally pushing superflous links +* ui didn't update correctly when navigating into a folder with indexing disabled + +# other changes +* less indentation of outermost lists in the markdown viewer +* update some dependencies + * marked `3.0.4` -> `4.0.6` fixes a performance regression in huge documents + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1204-0233 `v1.1.5` certified spa + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* much faster navigation when the navpane is closed (no more full reloads) +* sort-order preference also applies to the initial listing now, #8 +* sort-order indicators in the grid and list views +* symlinks (duplicate uploads) now keep the uploader's timestamps +* panic-button in the control panel to reset all browser settings + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1128-0322 `v1.1.4` enter the lab + +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* quoted searches, for stuff like "[more more more](https://www.youtube.com/watch?v=bgVRGmOK4SM)" +* upload ETA in the browser window title +* audio-player stays open on navigation +* thumbnails indicating whether clicking an audio file will start playing it (when the audio-player is open) or not +* mtp plugin [image-noexif](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/image-noexif.py) removes EXIF from uploaded images +* when running on windows; disable quickedit so cmd.exe doesn't pause the server if you accidentally click the console window + * option `--keep-qem` disables disabling it + +# bugfixes +* forcing specific compression levels using volume-flag `pk` +* mtp plugins [audio-bpm](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-bpm.py) and [audio-key](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-key.py) couldn't open files with mojibake / corrupt filenames + +# other changes +* uploading files by dragging them into the browser using a computer from before 2009 should have zero delay now +* workaround for a chrome bug (appeared in chrome 96, fixed in 98) where dragging a link would activate the uploader +* mention in the readme that enabling the audio equalizer, with all values at zero, makes gapless albums fully gapless +* better error messages in the [standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) +* mirror at [gitlab](https://gitlab.com/9001/copyparty/-/releases) since github has been down a lot lately + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1120-0127 `v1.1.3` CoreAudioFormat aight yeah okay + +not super important but recommended +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# known problems +* **streaming compression of uploads:** optional arguments to volume-flag `pk` don't work, so you can only force-enable compression without specifying an exact algorithm (gz/xz) and level (0-9), instead letting the client choose a preference -- default is `gz,9` + +# new features +* automatically enable transcoding for unsupported audio codecs (aac/m4a in some chromium builds) +* audio-player: gapless albums are even closer to gapless now + * especially on iOS devices as they generally ignore preload hints + * on all other browsers, opus appears to perform better than other codecs (noice) +* added a tooltip delay, and a hint next to the mouse-cursor for instant feedback +* new button in the control-panel, `enable k304` which kills the http connection on every `304 Not Modified` response + * avoids a bug in some browsers (ie11) and webproxies (squid maybe?) which *sometimes* get stuck, expecting data after the header +* enable up2k-registry serialization when running without `-e2d` / sqlite, so incomplete uploads can be resumed after a server restart +* include both the hex and base64 sha512 representations in upload responses +* [standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py): option `--ok` ignores any inaccessible files/folders and starts the upload anyways +* option `--rsp-slp` adds a synthetic delay to client responses + +# bugfixes +* up2k-webclient: could crash if two browser-tabs uploaded the same chunk simultaneously + * mostly harmless but you'd have to reload the tab to fix it + manually resume the upload +* buggy behavior when python was compiled without sqlite3 (default on freebsd) + * memory usage would grow infinitely as more files were uploaded + * exceptions sent to the client when trying to search +* add timeouts to FFmpeg operations, preventing invalid files from eating the `--th-mt` threads + * 10 seconds for filetype / metadata parsing + * 60 seconds (`--th-convt`) for thumbnails and audio transcoding +* up2k-webclient: fix an inconvenient priority inversion when turbo/yolo was enabled + +# other changes +
+

replaced ogv.js with serverside rewrapping of opus files into the appropriate apple-proprietary container

+
    +
  • sfx size is now 190 KiB smaller
  • +
  • feature-wise, this only affects iOS devices (iPhones, iPads, iPods)
  • +
  • no more opus decoding in javascript! now uses the native opus decoder instead
  • +
  • enables OS media controls since apple finally added mediaSession in iOS 15 +
    • play/pause doesn't work too well, probably fixed in a future iOS version
    • +
    • artist/title tags can suddenly become the filename (another iOS bug)
    +
  • +
  • disables the in-browser volume control because apple demands it, can't be helped
  • +
  • disables support for ogg/vorbis, only opus is playable without transcoding +
    • vorbis is transcoded to opus automatically, but this causes a quality loss
    +
  • +
  • audio-equalizer is broken for opus and all other 48khz audio files because apple made AudioContext hardcoded to 44100 hz +
    • makes the iPhone X buffer-overflow, all audio dies after ~2 minutes
    • +
    • also ruins the common workaround for apple disabling volume controls
    +
  • +
  • gets rid of the silly sinewave generator which tricked iOS into letting the tab continue playing in the background
  • +
+ + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1112-2208 `v1.1.2` mind the gap + +* latest important update: **this one**? kind of +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +# new features +* navigate into textfiles using hotkeys (`v, k`) +* close various UI elements by repeatedly hitting the Escape key +* doubleclick files/folders to open them (in the grid view, when multiselect is enabled) +* `--s-wr-slp` sets a delay between socket writes, simulates a slow network during downloads +* `--s-wr-sz` sets socket write size, default 256 KiB (was hardcoded 32 KiB until now) + * this increase download speed by ~50% (to around 3 GiB/s) when running on windows / where sendfile is unavailable + +# bugfixes +* when uploading two files with the same name and size, only the first file got uploaded + * so now it's also possible to upload the same files you just searched for without the refresh jank + * discovered thanks to rockylinux serving the same package in multiple pools, nice +* when full-preload is enabled, also do regular preloading so the decoder has a chance to prepare (fixes gapless playback) + * and kill the preloaders if they don't finish in time so free up network +* additional preloading fixes for ogv.js, only affecting **apple devices** when playing ogg/vorbis/opus audio: + * disable full-preload since ogv skips the browser cache somehow + * swap between the ogv instances to preserve cached audio + * still a bit of silence left between tracks as the decoder boots up but that is the price you have to pay for using proprietary garbage +* `ctrl-a` now only selects the text within the focused codeblock in text documents +* minor correctness fix regarding chunked uploads +* avoid crc32 collisions in filenames + * affected the media player and file selection, but [was unlikely to happen](https://i.stack.imgur.com/u4DeG.png) + +# other changes +* prefer fpool on linux as well, since btrfs and zfs (and probably others) perform better with it + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1108-2139 `v1.1.1` firefox v92 broke the clipboard + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## upgrade notes +* clipboard protocol changed -- `F5` your browser-tabs before moving any files with `ctrl-x` + `ctrl-v` + +# new features +* option to preload the entire next song when approaching end-of-track + * new button in the audioplayer options panel + * should help with spotty but fast connections + * *(probably does more harm than good on slow ones)* + +# bugfixes +* [firefox v92 broke clipboard sync](https://bugzilla.mozilla.org/show_bug.cgi?id=1740144), so moving files between browser-tabs didn't work too well + +# other changes +* adjusted the fallback spectrogram generator to better match the preferred one + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1106-2227 `v1.1.0` opus + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v1.0.14](https://github.com/9001/copyparty/releases/tag/v1.0.14#:~:text=release-specific%20notes) + +## upgrade notes +* you can use `--no-reload`, `--no-acode`, `--no-athumb` to disable the new features described below + +# new features +* **audio transcoder** + * hipster audio formats are transcoded to opus on-demand + * `aac` `m4a` `flac` `alac` `mp2` `ac3` `dts` `wma` `ra` `wav` `aif` `aiff` `au` `alaw` `ulaw` `mulaw` `amr` `gsm` `ape` `tak` `tta` `wv` + * because kipu wanted to play his `.au` bangers from 1993 + * needs FFmpeg and FFprobe, can be disabled with `--no-acode` +* **audio spectrograms** + * are shown as thumbnails for audio files + * supported formats: same as transcoder + `mp3` `ogg` `opus` + * needs FFmpeg and FFprobe, can be disabled with `--no-athumb` +* **textfile viewer** + * with syntax hilighting + * can be disabled by deleting `web/deps/prism.js.gz` or building the sfx with `no-hl` + * and list of textfiles in the navpane; toggle with hotkey `v` +* **navpane context dock** + * snap parent folders into a panel to keep track in huge folders + * toggle-button to disable it in the navpane toolbar +* **config reload** + * SIGUSR1 reloads the config files + * the [systemd example](https://github.com/9001/copyparty/blob/hovudstraum/contrib/systemd/copyparty.service) has been updated with `ExecReload` + * only does accounts, volumes, and volflags -- so any changes to args still require a full restart + * also available as a button in the control panel + * can be disabled with `--no-reload` +* option to specify args (command-line arguments) in the config file +* url parameter `?txt` to return file as utf-8 text + * or `?txt=iso-8859-1` to set a specific encoding +* url parameter `?mime=text/html;charset=shift_jis` to request a specific response mimetype +* [service script for freebsd](https://github.com/9001/copyparty/blob/hovudstraum/contrib/rc/copyparty), thx @kipukun + +# bugfixes +* [standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) was showing https warnings with `-td` +* trailing newline missing in `?ls=t` and `?ls=v` +* add a bunch of known mimetypes to help ms-windows a bit +* lowercase all content-type charsets (firefox became case-sensitive at some point) +* example for giving multiple users the same permission-set using config files did not actually work + +# other changes +* navpane is enabled by default on sufficiently large displays +* audio-player preload increased from 10 to 20 sec, giving the opus transcoder some time +* finally removed the deprecated `-e2s` option after 9 months (replaced by `-e2ds`) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1029-2237 `v1.0.14` party donuts + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: **this ver!** + +## argv changes +* `--th-mt 0` no longer means «*use all CPU cores*», however using all cores is (and was) the default when leaving it unset +* `--re-int` no longer serves a purpose and was removed (it is automatically inferred) +* `--no-mtag-mt` was replaced by `--mtag-mt 1` to allow setting exact core counts + +## new features +![copyparty-donut](https://user-images.githubusercontent.com/241032/139513444-c22fc17a-6f44-4308-9cb0-ab191e40660b.png) +* up2k tab (and favicon) become a donut / progress-ring while uploading / searching + * favicon becomes ETA when less than 99sec remains and ETA is sufficiently stable +* tag scanning is now multithreaded for recent uploads as well, like the initial scan is/was +* url parameter `?ls=t` returns a plaintext directory listing, and `?ls=v` adds terminal colors +* less cpu wakeups! *conserve electricity and be power smart :^)* +* add refresh and logout buttons to the control-panel +* try to catch and warn about some common config mistakes +* when launched without arguments: try to use port 80 and 443 by default on windows (and when running as root) + +## bugfixes +* couldn't delete empty folders +* spacebar now triggers the OK/Cancel buttons in modal popups +* navpane didn't have locale-aware sorting like the file listing does +* uploading a blank file would glitch the browser tab until the next page refresh +* the [standalone up2k client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) tried to mimic rsync behavior for source folder selection but had it the other way around +* if files were deleted while scanning for tags, the file hash was permanently marked as not having tags +* if some endpoints fail to bind, don't print them as "available" during startup +* navpane scroll glitch when loading new folders +* toast-positioning in ie11 + +## other changes +* truncate file "extensions" longer than 16 characters +* remove the multiprocessing warning on startup since it's mostly confusing +* mention selinux (fedora/centos/rhel-specific) setup steps in the systemd example +* new cheatcode in the javascript repl (bottom-left pi symbol) which turns all file links into download links + +## release-specific notes +this release includes two additional sfx builds: +* [copyparty-enterprise.py](https://github.com/9001/copyparty/releases/download/v1.0.14/copyparty-enterprise.py) was built with `./scripts/make-sfx.sh re no-sh no-dd no-ogv`, removing `ogv` (the iOS ogg/opus/vorbis audio decoder) and `dd` (the audio-tray mouse cursor) to save some space +* [copyparty-sfx-gz.py](https://github.com/9001/copyparty/releases/download/v1.0.14/copyparty-sfx-gz.py) was built with `./scripts/make-sfx.sh re no-sh no-dd no-ogv no-cm gz`, also removing `cm` (the codemirror-based markdown editor), but more importantly using gzip compression rather than the usual bzip2, mostly useful for smoketests on feature-reduced python builds and embedded platforms + +for future releases, you can use a script to automatically grab the latest sfx and create the two additional builds: +* download and run [copyparty-repack.sh](https://github.com/9001/copyparty/blob/hovudstraum/scripts/copyparty-repack.sh) on either linux, macos, or windows-msys2 +* the two additional builds in this release are `sfx-ent/copyparty-sfx.py` and `sfx-lite/copyparty-sfx-gz.py` -- see [sfx-repack](https://github.com/9001/copyparty#sfx-repack) for more info + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1024-1906 `v1.0.13` css fix + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## bugfixes +* currently-playing song didn't hilight correctly + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1024-0112 `v1.0.12` some polish + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## upgrade notes +* [minimal-up2k.html](https://github.com/9001/copyparty/blob/hovudstraum/docs/minimal-up2k.html) has changed slightly, [diff](https://github.com/9001/copyparty/commit/d77ec2200781cc1d381a074831c0bffc749e835d#diff-8b665a140ab1a0dde9b487df3b60ba38718253dddc3c7e3513eec5116ab6c11e) + +## new features +* better thumbnail caching + * 1 week expiration time + * persist the webp-support test results for faster init +* add `--js-browser` to add custom javascript +* hop into subfolders from the file-list without doing full reloads + * still does a full reload if navigating up to the parent folder, so use the navpane for that +* support searching on ie9 + +## bugfixes +* thumbnail toggle didn't take effect until the next navigation +* file indexing when mounting an entire disk on windows + +## other changes +* general ux improvements + * reflow the up2k panel for superwide screens + * make the "close search results" button more obvious + * banner over inlined readme files +* some cleanup of the dark theme + * visible panels (for the navpane etc) + * thumbnail alignment + +thx to @Bevinsky and @icxes for the ux suggestions + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1018-2310 `v1.0.11` jeg fant jeg fant + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## new features +* search results are now shareable URLs +* optionally provide a filename when uploading with PUT or `?raw` POST + * add a trailing slash to the URL to autogenerate a filename like before + * and `?raw` POST without content-type is now allowed +* file-listing is refreshed when all up2k uploads complete +* new option `--ign-ebind` to continue startup even if one of the IPs / ports couldn't be listened on +* new option `--ign-ebind-all` to run even if copyparty can't receieve any connections at all + * maybe useful for monitoring folders and hashing new files on a timer or something + +## bugfixes +* unpost in jumpvols (inside `/foo/bar/` if `/foo/` and `/foo/bar/qux/` are volumes) +* u2cli: aggressive flushing to show uploaded files in realtime + +## other changes +* replaced the "press button to play music" splashpage with a regular modal +* replace `:` with `.` in filenames from ipv6 clients +* volume listing on the frontpage is sorted alphabetically + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1011-2343 `v1.0.10` favicon + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## breaking changes +* the argument `--no-hash` and volume-flags `dhash`, `ehash` (booleans) have been replaced with regex patterns; continue reading below + +## new features +* optional favicon! configurable client-side in the `[⚙️]` config tab + * the selected favicon is remembered per-server (good for keeping track of tabs) +* new argument `--no-idx '\.iso$'`, also available as volume-flag `[...]:c,noidx=\.iso$` + * every filepath matching the given regex (`iso$`) will be ignored/skipped during indexing + * uses OS-defined separators, so use `\\` as path-separator on windows +* "new" argument `--no-hash foo` and volume-flag `[...]:c,nohash=foo` + * like `--no-idx`, but it only skips the file-contents indexing, so filename/path/size is still searchable + * this replaces the boolean `--no-hash` and volume-flags `dhash`, `ehash` + +## bugfixes +* fix ui race-condition (mkdir with navpane closed) +* mkdir was broken on python 2.7 since [v0.12.1 (july 28)](https://github.com/9001/copyparty/releases/tag/v0.12.1) +* try to support some buggy python builds (invalid ffi symbols) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1009-2029 `v1.0.9` cirno reference + +* latest important update: [v1.0.8](https://github.com/9001/copyparty/releases/tag/v1.0.8) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## new features +* readme: [run a program when a file is uploaded](https://github.com/9001/copyparty#upload-events) + * add `-mtp` support for non-python programs +* better performance in the `-e2ds` filesystem indexer, particularly for samba/nfs shares +* support clients with read-only `localStorage` (private-browsing on certain iOS versions according to MDN) + +## bugfixes +* a case of symlink-loops not being detected during `-e2ds` filesystem indexing +* #4 fixes incorrect protocol in the basic-upload response, thx Daedren +* flickering when refreshing the browser in lightmode +* sfx-repack: fix `no-dd` also disabling the loader animation by producing a bit of css with invalid syntax + +## other news +* the [standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) can detect and skip existing files much faster than the regular web client if you give it `-z` + * (not part of this release, grab it from the link) + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-1004-2050 `v1.0.8` 1.0.8 sketches + +* latest important update: **this ver** (if you have non-https users) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* [portable / standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py) now included in the pypi package, [readme](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) / [webm](https://ocv.me/stuff/u2cli.webm) +* empty / zero-byte files can now be uploaded +* up to 20 results are listed for filesearches, rather than just 1 +* audio player progressbar now has textlabels next to the minute markers +* new argument `--vague-403` makes copyparty reply with 404 (not found) when it's actually a 403 (permission denied), which was the entirely-too-confusing default behavior for versions `1.0.3` through `1.0.7` +* new mtp plugin [cksum.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/cksum.py) generates various checksums + +## bugfixes +* race-condition initializing the up2k-client when dropping files into the browser and you're not using https +* hilight active folder in the navpane even when the browser and copyparty disagrees on how to urlencode +* hide prologue/epilogue while search results are open +* toasts could redefine css + +## other changes +* better focus outlines +* less verbose debug toasts +* dropzones more obvious at a glance / in a rush + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0926-1815 `v1.0.7` pool party + +* latest important update: [v1.0.3](https://github.com/9001/copyparty/releases/tag/v1.0.3) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* [portable / standalone up2k upload client](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py): early beta, apparently faster than browsers, [readme](https://github.com/9001/copyparty/tree/hovudstraum/bin#up2kpy) / [webm](https://ocv.me/stuff/u2cli.webm) +* up2k: fully parallelized handshakes and uploads + * uploading smol files is way faster now + * some files may temporarily display as "failed" until all uploads complete +* browser: `mkdir` and `msg` can be used during uploads (no longer does a full page reload) +* up2k: option to keep destination files open during uploads (fd pool) + * on windows: default-ON, due to Microsoft Defender "real-time protection" being hella expensive + * on linux/macos: default-OFF, but can be enabled with `--use-fpool` for things like nfs +* up2k: new option `--no-symlink` to fully dupe files instead of adding symlinks +* add minimal support for some more eccentric browsers (including Hv3) + +## bugfixes +* up2k: check all dupes for a matching filesystem path + * prevents duplicate symlinks if the same dupe is repeatedly uploaded to the same place +* don't crash the tag collector thread if there are invalid tags +* up2k-client: don't DDoS the server if the http response is invalid +* when running without `-e2d`, recently uploaded files could not be deleted +* on windows, absolute filesystem-paths could appear in exceptions sent to the client +* misc url escaping fixes, mostly regarding files/folders where name contains `?` +* sort-order being reset if you visit an empty folder + +## other changes +* moved the up2k fence-toggle into the settings pane since probably nobody uses it +* readme: add a section on recovering from [client crashes](https://github.com/9001/copyparty#client-crashes) + * firefox (the whole browser and all its tabs) can crash during upload + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0919-1311 `v1.0.5` one more + +* latest important update: [v1.0.3](https://github.com/9001/copyparty/releases/tag/v1.0.3) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## bugfixes +* basic-upload into `fk` (accesskey-enabled) folders + * affected sharex, scripts, old browsers + * files were uploaded correctly but the reply from copyparty was garbage + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0918-2241 `v1.0.4` early bird gets the bugs + +* latest important update: [v1.0.3](https://github.com/9001/copyparty/releases/tag/v1.0.3) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## bugfixes +* folders and volumes being out-of-order in the initial listing +* it was possible to shrink the navpane so much that the shrink/grow buttons disappeared +* a bunch of features stopped working in folders where `fk` (per-file accesskeys) was enabled + +## other changes +* increased cache timeout for static resources +* can no longer open the markdown editor without write-access +* the argument parser can handle multiple volume flags in one group now, so `c,e2ds,dupe` instead of `c,e2ds:c,dupe` + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0918-1550 `v1.0.3` unlisted + +* latest important update: **this one** +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## known bugs +* on phones, it is *possible* to make the navpane so small that the resize buttons disappear + * happens if you navigate into a folder 7+ levels deep, reduce the navpane size so the `a` button is barely visible, then disable `a` + * **fix:** open the js prompt (click the bottom-left `π`) then execute `,.` (comma dot) and click `reset settings` + +## new features +* new permission `g`: read-access only if you know the full URL to a file; folder contents are hidden, cannot download zip/tar +* new volume flag `fk`: generate per-file accesskeys, which are then required by `g` users to access files, making it harder to bruteforce URLs + * users with full read-access can see the accesskeys appended to the URLs when browsing folders +* [wget.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/wget.py): download files to the copyparty server by POSTing file URLs in the web-UI +* show a login prompt on 404/403 pages +* option to disable wordwrap in the navpane + +## bugfixes +* loss of access to anon-read/write folders after logging in + * affected filesearch, regular searching, and volume listings +* more aggressively `no-cache`, preventing cloudflare from eating api calls +* after deleteing all files inside a folder, don't delete the folder itself + * was intended behavior but fairly confusing +* don't reshow tooltips when alt-tabbing +* accessibility: always hilight focused things +* markdown-editor modification poller doesn't cause performance issues after having a document open for several months +* mtp plugins [audio-bpm.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-bpm.py) and [audio-key.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-key.py) explicitly asks for just the first audio stream, which prevents ffmpeg from transcoding video (nice) + +## other changes +* updated some web-deps + * marked: `v1.1.0` -> `v3.0.4` (with modifications) + * easymde: `v2.14.0` -> `v2.15.0` (with modifications) + * codemirror: `v5.59.3` -> `v5.62.3` (with modifications) + * hashwasm: `v4.7.0` -> `v4.9.0` +* easymde uses the external `marked.js` to save some space +* README.md has the same maxwidth as in the viewer/editor +* show a toast if there's an unhandled promise reject +* markdown-editor shows the current line number +* cfssl.sh (certificate generator) asks for fqdn instead of inventing something +* sfx binaries try to use python3 explicitly since a lot of distros don't have a /usr/bin/python at all + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0909-0721 `v1.0.2` it is still 9/9 + +blessed by the strongest, *this will surely be the final version* +* latest important update: [v1.0.1](https://github.com/9001/copyparty/releases/tag/v1.0.1) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## bugfixes +* audio equalizer (broke in v1.0.1) + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0908-2259 `v1.0.1` happy 9/9 + +blessed by the strongest, this will surely be the final version +* latest important update: **this one** +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* click an open tab to close it (thx daniiooo) + +## bugfixes +* multipart POSTs could get incorrectly rejected with `protocol error after field value` + * had a `0.14%` chance of happening (worst-case; 1400 mtu, 2 offsets) + * affected stuff like saving markdown documents, renaming files, ... + * did **not** affect file uploads, and reverseproxy probably helped prevent it +* filedrop UI could let you try to upload/search without the necessary permissions + * purely cosmetic, would immediately fail with a slightly cryptic error message +* apply a different equalizer tuning for some browsers + * some permutations of chrome and win10, and also some phones, have incorrect Q scaling at higher frequencies, causing treble to be massively boosted + * now tries to detect this by sampling the frequency response at 15khz and setting different gains (less dangerous than touching Q) + +## other changes +* search ui does not initiate searches as eagerly if the textbox has a very short value + * helps prevent overloading slow browsers with accidental wildcard searches + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0907-2118 `v1.0.0` sufficient + +we did it reddit 👉😎👉 +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## known bugs (all harmless) +* the website may let you attempt to upload stuff without write-access + * fails gracefully with an error-message so it's all good + +## new features +* separate dropzones for uploading and searching! no more confusing modeswitching + * and the dropzone is global, so just drop files into the browser to upload / search 🚀🚀🚀 +* add 10-minute indicators to the audio player seekbar +* make-sfx: argument `fast` reduces compression level + +![2021-0908-010348-firefox-fs8](https://user-images.githubusercontent.com/241032/132421531-efdc1165-785b-422d-bb5f-8b551c335c39.png) + +## bugfixes +* moving/deleting files when running without `-e2d` (thx ixces) +* zip/tar downloads: single folders are now the root element of the archive (not their contents) + * not really a bug but sufficiently unexpected +* tiny lightmode fix + minor errormessage cleanups + +## other changes +* crashpage: replace irc handle with new-github-issue link (i'm `+G` anyways heh) +* meta/github stuff + * renamed `master` branch to `hovudstraum` ("primary river" in nynorsk) + * add [CONTRIBUTING](https://github.com/9001/copyparty/blob/hovudstraum/CONTRIBUTING.md), [code of conduct](https://github.com/9001/copyparty/blob/hovudstraum/CODE_OF_CONDUCT.md), and [issue templates](https://github.com/9001/copyparty/tree/hovudstraum/.github/ISSUE_TEMPLATE) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0905-2306 `v0.13.14` inline readme.md + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* `README.md` is shown below the directory listing + * can be disabled with `--no-readme` +* new option `--no-logues` disables prologue/epilogues in directory listings +* new option `--no-dot-mv` disallows moving dotfiles (or folders containing them) +* new option `--no-dot-ren` disallows renaming dotfiles (or making something a dotfile) + +## bugfixes +* fix upload ETA if there is some idle time between batches +* upload/filesearch with turbo enabled should be even faster now +* markdown-editor scroll desync if document contains offsite images +* better fix for the upload status list pushing the rest of the page around + +## other changes +* sfx repacks with `no-fnt` will use `Consolas` instead which does not look terrible on windows + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0903-1921 `v0.13.13` basic-auth + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +note: `copyparty-sfx.py` is https://github.com/9001/copyparty/commit/5955940b82adddb7149125a60463aba22f1c8c31 which fixes upload eta + +## new features +* provide password using basic-authentication + * useful for clients which don't support cookies or appending queries to the URL + * order of precedence: `?pw=foo query` > `cppwd cookie` > `basic-auth` +* show OK/Cancel buttons in OS-defined order + * Windows does OK/Cancel, everything else is Cancel/OK +* crashpage: include recent console messages +* js-repl: command history / presets + +## bugfixes +* "fix" the file-list jumping around during uploads + * ...by adding a massive padding to the uploads list +* make-sfx: set correct version-info on repack +* make-sfx: fix no-dd css modifier + +## other changes +* move column-hider buttons above the header so they're not as easy to hit by accident +* jpeg thumbnails are slightly smaller + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0901-2148 `v0.13.12` september + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* show useragent on the crashpage (plus some ui cleanup) + +## bugfixes +* thumbnail-zoom hotkeys +* add vertical scrollbar to toasts if necessary +* cut/paste of more than roughly 30'000 files at once + +## other changes +* replaced the video icon with a play button in the [browser-icons.css](https://github.com/9001/copyparty/tree/master/docs#example-browser-css) example: + +![2021-0902-002101-firefox-fs8](https://user-images.githubusercontent.com/241032/131753177-6741d2af-6220-4f42-aaef-8439171cc0be.png) + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0830-2032 `v0.13.11` selective listening + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## bugfixes +* bind specific interfaces which are not `127.0.0.1` + +## other changes +* sfx should be a tiny bit smaller + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0830-0102 `v0.13.10` The Net reference + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* click the bottom-left `π` for a js eval prompt + * good for debugging on phones (and a nice meme) + +## bugfixes +* file uploads now happen in alphabetical order +* the default text is selected in prompts (text-input messageboxes) +* crash-page was slightly out-of-bounds on phones +* cheap performance fix when renaming >500 files +* minor ux fixes for old browsers / iOS ~10 + +## other changes +* return to volume listing after logging in +* fully drop support for playing ogg/vorbis/opus on iOS older than 14 + * final version where this *somewhat* worked was [v0.13.9](https://github.com/9001/copyparty/releases/tag/v0.13.9) + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0829-0024 `v0.13.9` the iOS update + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* iOS: play ogg/vorbis/opus files in the background and when the screen is off + * but please don't touch the lockscreen play/pause button unless `os-ctl` is enabled in the `🎺 media player options` tab + * safari 15 is rumored to support `MediaSession` so it should *magically work* when that is out + +## bugfixes +* iOS: browsers no longer randomly crash when playing an ogg file + +## other changes +* tray drawer is a bit smaller (the bottom right burger thing) + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0828-0255 `v0.13.7` dot-dot-dot + +(throw more dots, more dots) + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* grid-view: filenames longer than 3 lines are truncated with `...` + * the full filename appears as a tooltip on hover + * use the `chop` buttons to adjust the limit + +## bugfixes +* the 300 msec delay when tapping just about *anything* on phones + * iphones got slightly better too (still needs the tooltip workaround) +* center tooltips horizontally + close on scroll + fix vertical margin + +## other changes +* folder icons are now displayed top-left on thumbnails since it crashed with the ellipsis stuff + * which also simplifies the [browser-icons.css](https://github.com/9001/copyparty/blob/master/docs/browser-icons.css) example + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0826-2209 `v0.13.6` the final countdown + +* latest important update: [v0.13.5](https://github.com/9001/copyparty/releases/tag/v0.13.5) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* total ETA until all the queued upload/searches are finished +* shows a toast notification with a summary after all uploads finish +* colored status indication for uploads/searches +* shows a warning if uploads/searches are blocked by the up2k flag/mutex +* replaced most monospace text with SourceCodePro + * looks SO MUCH BETTER on windows + +![nu_2-fs8](https://user-images.githubusercontent.com/241032/131047767-8844c829-d336-438e-b7db-c28f084c3397.png) + +## bugfixes +* lock navigation focus inside popup messages, we proper modals now +* hashing didn't pause when `parallel uploads` was 0 (arguably a bug) +* navpane could scroll horizontally +* toggling file-search in the middle of an upload queue would affect the remainder of the queue + * now the files are tagged with search/upload labels as they're added which makes much more sense +* top-level folder thumbnails could 404 +* fix up2k-turbo for markdown documents +* fix files skipping the busy-list entirely with turbo enabled +* more predictable(?) file-search behavior when turbo is enabled +* the up2k flag/mutex could get stuck in limbo between two browser tabs if disabled while that tab holds it +* add missing hotkey hint (thumbnail toggle, bottom right) +* minor rice and html-escape fixes for modals and toasts +* avoid android-firefox bug where `number.toFixed(1)` returns `10.00` instead of `10.0` for certain values of 10 + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0816-0640 `v0.13.5` time-travelers friend + +* latest important update: **this version** +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* button to scroll navpane to the open folder + * also automatically does this on page load + +## bugfixes +* unpost only worked for the `/` volume +* up2k-client could break on interesting folder-names +* moving more than 100 files at once across browser tabs +* basic-upload into folders with upload rules didn't really work +* ui indicated that renaming multiple files was impossible (but you still could tho) + +## other changes +* tiny js optimizations +* even more ancient browsers (including opera 11, hipp hipp) can now use the thumbnail-view and image viewer + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0814-2046 `v0.13.3` this side up + +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* image-viewer: rotate images and videos (hotkeys `R` and `shift-R`) +* video-thumbnails: apply rotation hints from container +* image-thumbnails: apply rotation hints from exif +* image-thumbnails: higher quality AND slightly smaller + * fix loss of detail on resize +* argument `--th-mt` specifices number of cores to use for thumbnailing + * default is 0 which means all cores + +## bugfixes +* image-viewer: fix pinch-zoom (broke in 0.11.19) + * on the bright side: zoom is now less buggy than ever + +## other changes +* (probably extremely minor) performance tweaks in the image-viewer + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0812-2042 `v0.13.2` jet engine removal + +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* toggle file-selection in the image viewer with hotkey `s` or using the `sel` button + +## bugfixes +* chrome would max a cpu core (and consume even more ram than usual) after sitting idle in the browser for a few weeks due to recursive setTimeouts + * just the `setTimeout` call itself took like 67 msec seriously + * (firefox was completely fine) +* button placement in huge modals +* play videos in the gallery when clicked +* cut/paste files on ancient chrome versions + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0809-2028 `v0.13.1` ephemeral + +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* ephemeral uploads - set the volume flag `:c,lifetime=600` to delete files 10 minutes after upload + * feature can be disabled with `--no-lifetime` +* volume flag `:c,rescan=60` to rescan a volume for new/modified files every 60 seconds + * same as the old `--re-maxage` except per-volume +* [prisonparty.sh](https://github.com/9001/copyparty/blob/master/bin/prisonparty.sh) - run copyparty in a chroot if you don't trust the volumes + +## bugfixes +* handle more exceptions +* dont crash on startup if `XDG_CONFIG_HOME` is invalid +* up2k-ui: toggle button to continue hashing while uploading did nothing +* replace filesystem paths with vfs paths in exceptions returned to the user +* sfx.py: return 1 on exceptions + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0808-0214 `v0.13.0` future-proof + +* **latest stable release:** [v0.12.12](https://github.com/9001/copyparty/releases/tag/v0.12.12) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) + +## new features +* reinvented `alert`/`confirm`/`prompt` because [google/whatwg is getting rid of them](https://github.com/whatwg/html/issues/6897#issuecomment-885773622) +* upload quotas (num.files, total bytes) and rotation, see [readme#upload-rules](https://github.com/9001/copyparty#upload-rules) +* streaming compression of uploads to gz or xz, see [readme#compress-uploads](https://github.com/9001/copyparty#compress-uploads) + * not compatible with up2k and breaks file checksums (dupe-detection, file-search) +* another mtp example ([youtube manifest parser](https://github.com/9001/copyparty/blob/master/bin/mtag/yt-ipr.py)) + +## bugfixes +none! just new bugs this time + +## other changes +* more accurate advice from the up2k searchmode explainer +* warning prompt if you try to open a massive transfer log in the up2k ui +* additional --help sections and early vt100 stripper +* chrome performance fixes in file selection + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0806-0910 `v0.12.12` lock your doors + +[terribly stable](https://www.youtube.com/watch?v=FAVR-FnWGjo) +* if upgrading from v0.11.x or before, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## bugfixes +* forgot a mutex on renames/moves +* file metadata could persist after delete +* relative moves of relative symlinks could break/unlink + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0805-2253 `v0.12.11` batch-rename + +"stable" +* if upgrading from v0.11.x, see [v0.12.4](https://github.com/9001/copyparty/releases/tag/v0.12.4) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## known bugs +* mtp indexing can halt if files are renamed/moved in the middle of a rebuild + * restart copyparty and it'll resume just fine + +## new features +* batch-rename! inspired by foobar2000 + * rename multiple files based on regex and/or media tags +* [`media-hash.py`](https://github.com/9001/copyparty/tree/master/bin/mtag), new mtp module + * generates `vhash` and `ahash` -- video and audio checksums which can help in spotting dupes + * usage: `-mtp ahash,vhash=f,media-hash.py` or per-volume `:c,mtp=ahash,vhash=f,media-hash.py` + +![batch-rename-fs8](https://user-images.githubusercontent.com/241032/128434204-eb136680-3c07-4ec7-92e0-ae86af20c241.png) + +## bugfixes +* renaming single symlinks +* upgrading v0.11 volume arguments on windows +* thumbnails of files with multiple video tracks (theoretically) +* race in the httpd threadpool which could cause a tiny performance drop +* sfx-repack with `no-fnt` / `no-dd` +* funky padding in some browsers + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0801-2249 `v0.12.10` mth + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## new features +* `-mth`: list of tags to hide by default in the browser + +## bugfixes +* better codec detection when using mutagen for tag parsing + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0731-2240 `v0.12.9` ah yes lightmode + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## bugfixes +* lightmode rename ui + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0731-2217 `v0.12.8` better rename ui + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## new features +* better rename ui + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0731-1121 `v0.12.7` preserve tags + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## bugfixes +* loss of tags when renaming / moving files within a volume, and when deleting dupes + * restart copyparty (or rescan in the admin panel) to fix the missing tags + + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0731-1038 `v0.12.6` it keeps happening + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## new features +* toggle-button to show dotfiles (hidden files) + +## bugfixes +* renaming files which contain url-escaped characters +* access display (top-right) didn't include move permissions +* thumbnails aren't thumbnailed + +## other changes +* move toasts bottom-right (next to the edit buttons) due to phones +* make-sfx is faster and better + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0730-1728 `v0.12.5` rfc3986 2nd season + +this release was made from all-natural, free-range code [PXL_20210730_160240244.jpg](https://ocv.me/i/PXL_20210730_160240244.jpg) (☞゚∀゚)☞ [PXL_20210730_174219083.jpg](https://ocv.me/i/PXL_20210730_174219083.jpg) + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## upgrade notes +nothing new since v0.12.3 -- short summary of [v0.12.3](https://github.com/9001/copyparty/releases/tag/v0.12.3) and [v0.12.1](https://github.com/9001/copyparty/releases/tag/v0.12.1): +* `--no-mv` disables file/folder move ops +* `--no-del` disables file/folder delete and unpost +* `--unpost 0` disables unpost +* databases upgrade to v5; incompatible with v0.12.1 and older + +## bugfixes +* multiselect zip download (broke in v0.12.1) +* filenames of multiselect zip downloads when first item contains " or % (was always broken) +* renaming files inside folders with url-escaped characters + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0730-0652 `v0.12.4` fix permission groups + +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) (v0.12.x is almost there) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +## upgrade notes +short summary of [v0.12.3](https://github.com/9001/copyparty/releases/tag/v0.12.3) and [v0.12.1](https://github.com/9001/copyparty/releases/tag/v0.12.1): +* `--no-mv` disables file/folder move ops +* `--no-del` disables file/folder delete and unpost +* `--unpost 0` disables just unpost +* databases upgrade to v5; incompatible with v0.12.1 and older + +## bugfixes +* fix listing multiple users for the same permission-set + * `-v .::rw,u1,u2,u3` now works, the workaround was `-v .::rw,u1:rw,u2:rw,u3` + + + +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2021-0729-2232 `v0.12.3` unpost + +1001GET (;_;) +* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47) +* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version) +* latest gzip edition of the sfx is [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18) + +see [v0.12.1](https://github.com/9001/copyparty/releases/tag/v0.12.1) upgrade-notes regarding new opt-out features + +## upgrade notes +* new argument `--unpost 0` (and/or `--no-del`) disables the new unpost feature +* your up2k databases will upgrade from v4 to v5; backups are made automatically + * v5 DBs require copyparty v0.12.3 or newer, so use the backups for older versions + +## new features +* unpost! uploaders can delete their uploads within `--unpost` seconds (default is 12 hours) + * can be disabled by setting `--unpost 0` or with `--no-del` + +## bugfixes +* deleting single files (metadata could persist in db) +* `--ls` broke in v0.12.1 +* toasts with `
` tags had massive margins
+* hopefully fix a bug where malicious POSTs through an nginx reverse-proxy could put the connection in a bad state, causing the next legit request to fail with bad headers
+
+## other changes
+* uploader-ip and upload-time is stored in the database
+  * but only viewable through an sqlite3 shell;
+    `sqlite3 .hist/up2k.db 'select ip, rd, fn from up where ip'`
+
+
+
+
+▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
+# 2021-0727-2355  `v0.12.1`  filed
+
+```
+ <&ed> copyparty became a file manager, trying to think of a release name
+ <&ed> "far out", pun on far manager, there we go
+<+des> ed: filed
+<+des> fil-ed
+```
+
+* **latest stable release:** [v0.11.47](https://github.com/9001/copyparty/releases/tag/v0.11.47)
+* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to v0.11.47 or this version)
+* latest gzip edition of the sfx is [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18)
+
+## upgrade notes
+* permission `a` no longer exists; is automatically translated to `r` + `w`
+* new argument `--no-del` disables all delete operations
+* new argument `--no-mv` disables all move/rename operations
+* new argument `--no-voldump` disables the volume/permission summary on startup
+
+## new features
+* file manager! cut/paste, rename, delete files
+  * new permission `m` (move) allows renaming files in (and moving files *out of*) that volume
+  * new permission `d` (delete) allows deleting things in that volume
+  * hotkeys `ctrl-X`, `ctrl-V` to cut/paste, `F2` to rename, `ctrl-K` to delete
+  * tags follow the files when moved; thumbnails just regenerate
+* select files/folders in the browser using the keyboard
+  * click a file row and use cursor-keys to navigate
+  * ctrl-cursor to also scroll the viewport
+  * shift-cursors to expand selection
+  * spacebar and `ctrl-A` toggles selection
+* periodic volume rescan
+  * detect and index files coming into volumes from the outside (sftp, rsync, ...)
+  * will probably get an inotify alternative at some point but this is more reliable
+* list all volumes and permissions on startup
+* print server IPs on macos and windows too
+
+## bugfixes
+* tags are displayed for symlinked/dupe files
+* mkdir defaults to 755, used to be the python-default 777, sorry
+* ensure that the multiprocessing workers start correctly (and crash otherwise)
+* more reliable db backups on upgrade, using the native sqlite3 backup feature
+* signal handler; macos could get stuck on shutdown
+* other minor stuff
+  * centos7 support fixes
+  * missing mojibake support (centralized most of it)
+  * better support for buggy windows smb drives
+  * edgecases with relative symlinks
+
+## other changes
+* replaced the md-editor toasts with the new general-purpose ones
+
+
+
+
+▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
+# 2021-0722-0809  `v0.11.47`  On Error Resume Next
+
+* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version)
+* recent maybe-important updates:
+  * [v0.11.45](https://github.com/9001/copyparty/releases/tag/v0.11.45) if clients use up2k over plaintext http
+  * [v0.11.43](https://github.com/9001/copyparty/releases/tag/v0.11.43) fixes stability in the uploader client
+  * [v0.11.41](https://github.com/9001/copyparty/releases/tag/v0.11.41) if running as a service with `-lo`
+  * [v0.11.32](https://github.com/9001/copyparty/releases/tag/v0.11.32) fixes a case of filesystem paths being unmasked
+  * [v0.11.28](https://github.com/9001/copyparty/releases/tag/v0.11.28) fixes crash if no accounts are defined
+* latest gzip edition of the sfx is [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18)
+
+## new features
+* crashpage: add option to ignore exceptions and continue
+  * but please do report them so they can be fixed properly w
+
+
+
+▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
+# 2021-0722-0642  `v0.11.46`  chrome friendly
+
+* latest important update: [v0.11.20](https://github.com/9001/copyparty/releases/tag/v0.11.20) (but skip right to this version)
+* recent maybe-important updates:
+  * [v0.11.45](https://github.com/9001/copyparty/releases/tag/v0.11.45) if clients use up2k over plaintext http
+  * [v0.11.43](https://github.com/9001/copyparty/releases/tag/v0.11.43) fixes stability in the uploader client
+  * [v0.11.41](https://github.com/9001/copyparty/releases/tag/v0.11.41) if running as a service with `-lo`
+  * [v0.11.32](https://github.com/9001/copyparty/releases/tag/v0.11.32) fixes a case of filesystem paths being unmasked
+  * [v0.11.28](https://github.com/9001/copyparty/releases/tag/v0.11.28) fixes crash if no accounts are defined
+* latest gzip edition of the sfx is [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18)
+
+## bugfixes
+* ignored `ResizeObserver loop limit exceeded` in the exception handler
+  * chrome [randomly throws this](https://bugs.chromium.org/p/chromium/issues/detail?id=809574) from the `