mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 00:52:16 -06:00
v1.8.1
This commit is contained in:
parent
8568b7702a
commit
a10cad54fc
|
@ -533,8 +533,8 @@ def get_sects():
|
||||||
"use plugins to handle certain events",
|
"use plugins to handle certain events",
|
||||||
dedent(
|
dedent(
|
||||||
"""
|
"""
|
||||||
usually copyparty returns a 404 if a file does not exist, and
|
usually copyparty returns a \033[33m404\033[0m if a file does not exist, and
|
||||||
403 if a user tries to access a file they don't have access to
|
\033[33m403\033[0m if a user tries to access a file they don't have access to
|
||||||
|
|
||||||
you can load a plugin which will be invoked right before this
|
you can load a plugin which will be invoked right before this
|
||||||
happens, and the plugin can choose to override this behavior
|
happens, and the plugin can choose to override this behavior
|
||||||
|
@ -543,31 +543,30 @@ def get_sects():
|
||||||
--on404 ~/partyhandlers/not404.py
|
--on404 ~/partyhandlers/not404.py
|
||||||
-v .::r:c,on404=~/partyhandlers/not404.py
|
-v .::r:c,on404=~/partyhandlers/not404.py
|
||||||
\033[0m
|
\033[0m
|
||||||
|
the file must define the function \033[35mmain(cli,vn,rem)\033[0m:
|
||||||
the file must define a `main(cli,vn,rem)` function:
|
\033[35mcli\033[0m: the copyparty HttpCli instance
|
||||||
cli: the HttpCli instance
|
\033[35mvn\033[0m: the VFS which overlaps with the requested URL
|
||||||
vn: the VFS which overlaps with the requested URL
|
\033[35mrem\033[0m: the remainder of the URL below the VFS mountpoint
|
||||||
rem: the remainder of the URL below the VFS mountpoint
|
|
||||||
|
|
||||||
`main` must return a string; one of the following:
|
`main` must return a string; one of the following:
|
||||||
|
|
||||||
> "true": the plugin has responded to the request,
|
> \033[32m"true"\033[0m: the plugin has responded to the request,
|
||||||
and the TCP connection should be kept open
|
and the TCP connection should be kept open
|
||||||
|
|
||||||
> "false": the plugin has responded to the request,
|
> \033[32m"false"\033[0m: the plugin has responded to the request,
|
||||||
and the TCP connection should be terminated
|
and the TCP connection should be terminated
|
||||||
|
|
||||||
> "retry": the plugin has done something to resolve the 404
|
> \033[32m"retry"\033[0m: the plugin has done something to resolve the 404
|
||||||
situation, and copyparty should reattempt reading the file.
|
situation, and copyparty should reattempt reading the file.
|
||||||
if it still fails, a regular 404 will be returned
|
if it still fails, a regular 404 will be returned
|
||||||
|
|
||||||
> "allow": should ignore the insufficient permissions
|
> \033[32m"allow"\033[0m: should ignore the insufficient permissions
|
||||||
and let the client continue anyways
|
and let the client continue anyways
|
||||||
|
|
||||||
> "": the plugin has not handled the request;
|
> \033[32m""\033[0m: the plugin has not handled the request;
|
||||||
try the next plugin or return the usual 404 or 403
|
try the next plugin or return the usual 404 or 403
|
||||||
|
|
||||||
PS! the folder that contains the python file should ideally
|
\033[1;35mPS!\033[0m the folder that contains the python file should ideally
|
||||||
not contain many other python files, and especially nothing
|
not contain many other python files, and especially nothing
|
||||||
with filenames that overlap with modules used by copyparty
|
with filenames that overlap with modules used by copyparty
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
|
|
||||||
VERSION = (1, 8, 0)
|
VERSION = (1, 8, 1)
|
||||||
CODENAME = "argon"
|
CODENAME = "argon"
|
||||||
BUILD_DT = (2023, 6, 26)
|
BUILD_DT = (2023, 7, 7)
|
||||||
|
|
||||||
S_VERSION = ".".join(map(str, VERSION))
|
S_VERSION = ".".join(map(str, VERSION))
|
||||||
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
|
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
|
||||||
|
|
|
@ -1,3 +1,59 @@
|
||||||
|
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||||
|
# 2023-0626-0005 `v1.8.0` argon
|
||||||
|
|
||||||
|
News: if you use rclone as a copyparty webdav client, upgrading to [rclone v1.63](https://github.com/rclone/rclone/releases/tag/v1.63.0) (just released) will give you [a huge speed boost](https://github.com/rclone/rclone/pull/6897) for small files
|
||||||
|
|
||||||
|
## new features
|
||||||
|
* #39 hashed passwords
|
||||||
|
* instead of keeping plaintext account passwords in config files, you can now store hashed ones instead
|
||||||
|
* `--ah-alg` specifies algorithm; best to worst: `argon2`, `scrypt`, `sha2`, or the default `none`
|
||||||
|
* the default settings of each algorithm takes `0.4 sec` to hash a password, and argon2 eats `256 MiB` RAM
|
||||||
|
* can be adjusted with optional comma-separated args after the algorithm name; see `--help-pwhash`
|
||||||
|
* `--ah-salt` is the [static salt](https://github.com/9001/copyparty/blob/hovudstraum/docs/devnotes.md#hashed-passwords) for all passwords, and is autogenerated-and-persisted if not specified
|
||||||
|
* `--ah-cli` switches copyparty into a shell where you can hash passwords interactively
|
||||||
|
* but copyparty will also autoconvert any unhashed passwords on startup and give you the values to insert into the config anyways
|
||||||
|
* #40 volume size limit
|
||||||
|
* volflag `vmaxb` specifies max size of a volume
|
||||||
|
* volflag `vmaxn` specifies max number of files in a volume
|
||||||
|
* example: `-v [...]:c,vmaxb=900g:c,vmaxn=20k` blocks uploads if the volume reaches 900 GiB or a total of 20480 files
|
||||||
|
* good alternative to `--df` since it works per-volume
|
||||||
|
|
||||||
|
## bugfixes
|
||||||
|
* autogenerated TLS certs didn't include the mDNS name
|
||||||
|
|
||||||
|
## other changes
|
||||||
|
* improved cloudflare challenge detection
|
||||||
|
* markdown edits will now trigger upload hooks
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||||
|
# 2023-0611-0814 `v1.7.6` NO_COLOR
|
||||||
|
|
||||||
|
## new features
|
||||||
|
* #31 `--grid` shows thumbnails instead of file-list by default
|
||||||
|
* #28 `--unlist` regex-exclude files from browser listings
|
||||||
|
* for example `--unlist '\.(js|css)$'` hides all `.js` and `.css` files
|
||||||
|
* **purely cosmetic!** the files are still fully accessible, and still appear in API calls
|
||||||
|
* auto-generate TLS certificates on startup / network-change
|
||||||
|
* mostly good for LAN, requires [cfssl](https://github.com/cloudflare/cfssl/releases/latest), can be disabled with `--no-crt`
|
||||||
|
* creates a self-signed CA and certs with SANs of all detected server IPs
|
||||||
|
* so it's still recommended to use a reverse-proxy / letsencrypt for WAN servers
|
||||||
|
* the default `--fk-salt` is now much stronger
|
||||||
|
* all existing installations will keep the previously selected seed -- you can choose to upgrade by deleting `~/.config/copyparty/cert.pem` but this will change all filekeys / per-file passwords
|
||||||
|
* the `NO_COLOR` environment-variable is now supported, removing colors from stdout
|
||||||
|
* see https://no-color.org/ and more importantly https://youtu.be/biW5UVGkPMA?t=150
|
||||||
|
* `--ansi` and `--no-ansi` can also be used to force-enable/disable colored output
|
||||||
|
* #33 disable colors when stdout is redirected to a pipe/file -- by @clach04
|
||||||
|
* #32 simplify building sfx from source
|
||||||
|
* upgraded [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) to [python 3.11.4](https://pythoninsider.blogspot.com/2023/06/python-3114-31012-3917-3817-3717-and.html)
|
||||||
|
|
||||||
|
## bugfixes
|
||||||
|
* #30 `--ftps` didn't work without `--ftp`
|
||||||
|
* tiny css bug in light themes (opaque thumbnail controls)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||||
# 2023-0513-0000 `v1.7.2` hard resolve
|
# 2023-0513-0000 `v1.7.2` hard resolve
|
||||||
|
|
||||||
|
|
|
@ -26,5 +26,5 @@ ba91ab0518c61eff13e5612d9e6b532940813f6b56e6ed81ea6c7c4d45acee4d98136a383a250675
|
||||||
00558cca2e0ac813d404252f6e5aeacb50546822ecb5d0570228b8ddd29d94e059fbeb6b90393dee5abcddaca1370aca784dc9b095cbb74e980b3c024767fb24 Jinja2-3.1.2-py3-none-any.whl
|
00558cca2e0ac813d404252f6e5aeacb50546822ecb5d0570228b8ddd29d94e059fbeb6b90393dee5abcddaca1370aca784dc9b095cbb74e980b3c024767fb24 Jinja2-3.1.2-py3-none-any.whl
|
||||||
7f8f4daa4f4f2dbf24cdd534b2952ee3fba6334eb42b37465ccda3aa1cccc3d6204aa6bfffb8a83bf42ec59c702b5b5247d4c8ee0d4df906334ae53072ef8c4c MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl
|
7f8f4daa4f4f2dbf24cdd534b2952ee3fba6334eb42b37465ccda3aa1cccc3d6204aa6bfffb8a83bf42ec59c702b5b5247d4c8ee0d4df906334ae53072ef8c4c MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl
|
||||||
4a20aeb52d4fde6aabcba05ee261595eeb5482c72ee27332690f34dd6e7a49c0b3ba3813202ac15c9d21e29f1cd803f2e79ccc1c45ec314fcd0a937016bcbc56 mutagen-1.46.0-py3-none-any.whl
|
4a20aeb52d4fde6aabcba05ee261595eeb5482c72ee27332690f34dd6e7a49c0b3ba3813202ac15c9d21e29f1cd803f2e79ccc1c45ec314fcd0a937016bcbc56 mutagen-1.46.0-py3-none-any.whl
|
||||||
78414808cb9a5fa74e7b23360b8f46147952530e3cc78a3ad4b80be3e26598080537ac691a1be1f35b7428a22c1f65a6adf45986da2752fbe9d9819d77a58bf8 Pillow-9.5.0-cp311-cp311-win_amd64.whl
|
926d408a886059a75cf12706fa061146f9f042b27fb6e65be7d49f398ed23fb0227639d84804586ac014c6bcf7d08cd86a09c1a20793d341aa0802d3d32a546b Pillow-10.0.0-cp311-cp311-win_amd64.whl
|
||||||
a48ee8992eee60a0d620dced71b9f96596f5dd510e3024015aca55884cdb3f9e2405734bfc13f3f40b79106a77bc442cce02ac4c8f5d16207448052b368fd52a python-3.11.4-amd64.exe
|
a48ee8992eee60a0d620dced71b9f96596f5dd510e3024015aca55884cdb3f9e2405734bfc13f3f40b79106a77bc442cce02ac4c8f5d16207448052b368fd52a python-3.11.4-amd64.exe
|
||||||
|
|
Loading…
Reference in a new issue