mirror of
https://github.com/9001/copyparty.git
synced 2026-02-20 09:19:58 +10:00
v1.20.2
This commit is contained in:
@@ -1882,7 +1882,7 @@ see the beautiful mess of a dictionary in [mtag.py](https://github.com/9001/copy
|
||||
|
||||
### metadata from xattrs
|
||||
|
||||
unix extended file attributes can be indexed into the db and made searchable;
|
||||
unix extended file attributes (Linux-only) can be indexed into the db and made searchable;
|
||||
|
||||
* `--db-xattr user.foo,user.bar` will index the xattrs `user.foo` and `user.bar`,
|
||||
* `--db-xattr user.foo=foo,user.bar=bar` will index them with the names `foo` and `bar`,
|
||||
@@ -1893,6 +1893,9 @@ however note that the tags must also be enabled with `-mte` so here are some com
|
||||
* `-e2ts --db-xattr user.foo,user.bar -mte +user.foo,user.bar`
|
||||
* `-e2ts --db-xattr user.foo=foo,user.bar=bar -mte +foo,bar`
|
||||
|
||||
as for actually adding the xattr `user.foo` to a file in the first place,
|
||||
* `setfattr -n user.foo -v 'utsikt fra fløytoppen' photo.jpg`
|
||||
|
||||
|
||||
## file parser plugins
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# coding: utf-8
|
||||
|
||||
VERSION = (1, 20, 1)
|
||||
VERSION = (1, 20, 2)
|
||||
CODENAME = "sftp is fine too"
|
||||
BUILD_DT = (2026, 1, 9)
|
||||
BUILD_DT = (2026, 1, 19)
|
||||
|
||||
S_VERSION = ".".join(map(str, VERSION))
|
||||
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
|
||||
|
||||
@@ -2117,15 +2117,23 @@ class AuthSrv(object):
|
||||
if errors:
|
||||
sys.exit(1)
|
||||
for vol in dropvols:
|
||||
vol.realpath = ""
|
||||
vol.axs = AXS()
|
||||
vol.uaxs = {}
|
||||
vfs.all_vols.pop(vol.vpath, None)
|
||||
vfs.all_nodes.pop(vol.vpath, None)
|
||||
for zv in vfs.all_nodes.values():
|
||||
try:
|
||||
zv.all_aps.remove(vol.realpath)
|
||||
zv.all_vps.remove(vol.vpath)
|
||||
# pointless but might as well:
|
||||
zv.all_vols.pop(vol.vpath)
|
||||
zv.all_nodes.pop(vol.vpath)
|
||||
except:
|
||||
pass
|
||||
zs = next((x for x, y in zv.nodes.items() if y == vol), "")
|
||||
if zs:
|
||||
zv.nodes.pop(zs)
|
||||
vol.realpath = ""
|
||||
|
||||
promote = []
|
||||
demote = []
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
var J_BRW = 1;
|
||||
|
||||
if (!window.drcm) alert('FATAL ERROR: receiving stale data from the server; this may be due to a broken reverse-proxy (stuck cache). Try restarting copyparty and press CTRL-SHIFT-R in the browser');
|
||||
|
||||
var XHR = XMLHttpRequest,
|
||||
img_re = /\.(a?png|avif|bmp|gif|heif|jpe?g|jfif|svg|webp|webm|mkv|mp4|m4v|mov)(\?|$)/i;
|
||||
|
||||
|
||||
@@ -1,3 +1,36 @@
|
||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
# 2026-0109-0052 `v1.20.1` sftp fixes
|
||||
|
||||
## 🧪 new features
|
||||
|
||||
* #1174 add Japanese translation (thx @tkymmm!) b918b592
|
||||
* #1164 rightclick-menu now works in the gridview too (thx @Foox-dev!) feabbf3e
|
||||
* #1176 IP to bind can be specified per protocol 87a5c22a
|
||||
|
||||
## 🩹 bugfixes
|
||||
|
||||
* various SFTP fixes (i blame the single [tschunk](https://germanfoods.org/tschunk/) on day 3):
|
||||
* #1170 be more lenient regarding `stat` permissions 90308284
|
||||
* #1170 deletes could return EPERM when ENOENT was more appropriate 8c9e1016
|
||||
* #1170 files would be created with an extremely restrictive chmod 2f4a30b6
|
||||
* certified octal moment
|
||||
* write-only folders could return ENOENT 6c41bac6
|
||||
* #1177 disk-usage quotas became incompatible with shares in v1.20.0 038af507
|
||||
* appending to existing files with `?apnd` was possible in volumes with non-reflink dedup, where it could propagate to deduped copies of the file 738a419b
|
||||
* (was only possible for users with write+delete perms, so at least it couldn't be used for nefarious purposes)
|
||||
* rightclick-menu: "copy link" would strip filekeys 3a16d346
|
||||
|
||||
## 🔧 other changes
|
||||
|
||||
* copyparty.exe: updated pillow to 12.1.0 a9ae6d51
|
||||
|
||||
## 🌠 fun facts
|
||||
|
||||
* [tschunk](https://germanfoods.org/tschunk/) is the sound a hacker makes as they faceplant onto the table after having one too many
|
||||
* also see the funfacts in [the previous release](https://github.com/9001/copyparty/releases/tag/v1.20.0) for more CCC hijinks :p
|
||||
|
||||
|
||||
|
||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
# 2026-0102-0007 `v1.20.0` sftp is fine too
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ class Cfg(Namespace):
|
||||
ex = "ah_alg bname chdir chmod_f chpw_db db_xattr doctitle df epilogues exit favico ipa ipar html_head html_head_d html_head_s idp_login idp_logout lg_sba lg_sbf log_date log_fk md_sba md_sbf name og_desc og_site og_th og_title og_title_a og_title_v og_title_i opds_exts preadmes prologues readmes shr shr_site site tcolor textfiles txt_eol ufavico ufavico_h unlist up_site vname xff_src zipmaxt R RS SR"
|
||||
ka.update(**{k: "" for k in ex.split()})
|
||||
|
||||
ex = "apnd_who ban_403 ban_404 ban_422 ban_pw ban_pwc ban_url dont_ban cachectl http_vary rss_fmt_d rss_fmt_t spinner"
|
||||
ex = "apnd_who ban_403 ban_404 ban_422 ban_pw ban_pwc ban_url dont_ban cachectl http_vary rcm rss_fmt_d rss_fmt_t spinner"
|
||||
ka.update(**{k: "no" for k in ex.split()})
|
||||
|
||||
ex = "ext_th grp idp_h_usr idp_hm_usr ipr on403 on404 qr_file xac xad xar xau xban xbc xbd xbr xbu xiu xm"
|
||||
|
||||
Reference in New Issue
Block a user