mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
option to regex-exclude files in browser listings
This commit is contained in:
parent
705b58c741
commit
9c28ba417e
|
@ -969,6 +969,7 @@ def add_ui(ap, retry):
|
||||||
ap2.add_argument("--lang", metavar="LANG", type=u, default="eng", help="language")
|
ap2.add_argument("--lang", metavar="LANG", type=u, default="eng", help="language")
|
||||||
ap2.add_argument("--theme", metavar="NUM", type=int, default=0, help="default theme to use")
|
ap2.add_argument("--theme", metavar="NUM", type=int, default=0, help="default theme to use")
|
||||||
ap2.add_argument("--themes", metavar="NUM", type=int, default=8, help="number of themes installed")
|
ap2.add_argument("--themes", metavar="NUM", type=int, default=8, help="number of themes installed")
|
||||||
|
ap2.add_argument("--unlist", metavar="REGEX", type=u, default="", help="don't show files matching REGEX in file list. Purely cosmetic! Does not affect API calls, just the browser. Example: [\033[32m\.(js|css)$\033[0m] (volflag=unlist)")
|
||||||
ap2.add_argument("--favico", metavar="TXT", type=u, default="c 000 none" if retry else "🎉 000 none", help="\033[33mfavicon-text\033[0m [ \033[33mforeground\033[0m [ \033[33mbackground\033[0m ] ], set blank to disable")
|
ap2.add_argument("--favico", metavar="TXT", type=u, default="c 000 none" if retry else "🎉 000 none", help="\033[33mfavicon-text\033[0m [ \033[33mforeground\033[0m [ \033[33mbackground\033[0m ] ], set blank to disable")
|
||||||
ap2.add_argument("--mpmc", metavar="URL", type=u, default="", help="change the mediaplayer-toggle mouse cursor; URL to a folder with {2..5}.png inside (or disable with [\033[32m.\033[0m])")
|
ap2.add_argument("--mpmc", metavar="URL", type=u, default="", help="change the mediaplayer-toggle mouse cursor; URL to a folder with {2..5}.png inside (or disable with [\033[32m.\033[0m])")
|
||||||
ap2.add_argument("--js-browser", metavar="L", type=u, help="URL to additional JS to include")
|
ap2.add_argument("--js-browser", metavar="L", type=u, help="URL to additional JS to include")
|
||||||
|
|
|
@ -41,7 +41,7 @@ def vf_bmap() -> dict[str, str]:
|
||||||
def vf_vmap() -> dict[str, str]:
|
def vf_vmap() -> dict[str, str]:
|
||||||
"""argv-to-volflag: simple values"""
|
"""argv-to-volflag: simple values"""
|
||||||
ret = {}
|
ret = {}
|
||||||
for k in ("lg_sbf", "md_sbf"):
|
for k in ("lg_sbf", "md_sbf", "unlist"):
|
||||||
ret[k] = k
|
ret[k] = k
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
@ -135,6 +135,7 @@ flagcats = {
|
||||||
},
|
},
|
||||||
"client and ux": {
|
"client and ux": {
|
||||||
"grid": "show grid/thumbnails by default",
|
"grid": "show grid/thumbnails by default",
|
||||||
|
"unlist": "dont list files matching REGEX",
|
||||||
"html_head=TXT": "includes TXT in the <head>",
|
"html_head=TXT": "includes TXT in the <head>",
|
||||||
"robots": "allows indexing by search engines (default)",
|
"robots": "allows indexing by search engines (default)",
|
||||||
"norobots": "kindly asks search engines to leave",
|
"norobots": "kindly asks search engines to leave",
|
||||||
|
|
|
@ -3459,6 +3459,7 @@ class HttpCli(object):
|
||||||
break
|
break
|
||||||
|
|
||||||
vf = vn.flags
|
vf = vn.flags
|
||||||
|
unlist = vf.get("unlist", "")
|
||||||
ls_ret = {
|
ls_ret = {
|
||||||
"dirs": [],
|
"dirs": [],
|
||||||
"files": [],
|
"files": [],
|
||||||
|
@ -3469,6 +3470,7 @@ class HttpCli(object):
|
||||||
"itag": e2t,
|
"itag": e2t,
|
||||||
"lifetime": vn.flags.get("lifetime") or 0,
|
"lifetime": vn.flags.get("lifetime") or 0,
|
||||||
"frand": bool(vn.flags.get("rand")),
|
"frand": bool(vn.flags.get("rand")),
|
||||||
|
"unlist": unlist,
|
||||||
"perms": perms,
|
"perms": perms,
|
||||||
"logues": logues,
|
"logues": logues,
|
||||||
"readme": readme,
|
"readme": readme,
|
||||||
|
@ -3501,6 +3503,7 @@ class HttpCli(object):
|
||||||
"title": html_escape(self.vpath, crlf=True) or "💾🎉",
|
"title": html_escape(self.vpath, crlf=True) or "💾🎉",
|
||||||
"srv_info": srv_infot,
|
"srv_info": srv_infot,
|
||||||
"dgrid": "grid" in vf,
|
"dgrid": "grid" in vf,
|
||||||
|
"unlist": unlist,
|
||||||
"dtheme": self.args.theme,
|
"dtheme": self.args.theme,
|
||||||
"themes": self.args.themes,
|
"themes": self.args.themes,
|
||||||
"turbolvl": self.args.turbo,
|
"turbolvl": self.args.turbo,
|
||||||
|
@ -3730,7 +3733,12 @@ class HttpCli(object):
|
||||||
dirs.sort(key=itemgetter("name"))
|
dirs.sort(key=itemgetter("name"))
|
||||||
|
|
||||||
if is_js:
|
if is_js:
|
||||||
j2a["ls0"] = {"dirs": dirs, "files": files, "taglist": taglist}
|
j2a["ls0"] = {
|
||||||
|
"dirs": dirs,
|
||||||
|
"files": files,
|
||||||
|
"taglist": taglist,
|
||||||
|
"unlist": unlist,
|
||||||
|
}
|
||||||
j2a["files"] = []
|
j2a["files"] = []
|
||||||
else:
|
else:
|
||||||
j2a["files"] = dirs + files
|
j2a["files"] = dirs + files
|
||||||
|
|
|
@ -5726,6 +5726,12 @@ var treectl = (function () {
|
||||||
seen = {};
|
seen = {};
|
||||||
|
|
||||||
r.lsc = res;
|
r.lsc = res;
|
||||||
|
if (res.unlist) {
|
||||||
|
var ptn = new RegExp(res.unlist);
|
||||||
|
for (var a = nodes.length - 1; a >= 0; a--)
|
||||||
|
if (ptn.exec(nodes[a].href.split('?')[0]))
|
||||||
|
nodes.splice(a, 1);
|
||||||
|
}
|
||||||
nodes = sortfiles(nodes);
|
nodes = sortfiles(nodes);
|
||||||
window.removeEventListener('scroll', r.tscroll);
|
window.removeEventListener('scroll', r.tscroll);
|
||||||
r.trunc = nodes.length > r.nvis && location.hash.length < 2;
|
r.trunc = nodes.length > r.nvis && location.hash.length < 2;
|
||||||
|
|
|
@ -113,7 +113,7 @@ class Cfg(Namespace):
|
||||||
ex = "df loris re_maxage rproxy rsp_jtr rsp_slp s_wr_slp theme themes turbo"
|
ex = "df loris re_maxage rproxy rsp_jtr rsp_slp s_wr_slp theme themes turbo"
|
||||||
ka.update(**{k: 0 for k in ex.split()})
|
ka.update(**{k: 0 for k in ex.split()})
|
||||||
|
|
||||||
ex = "doctitle favico html_head lg_sbf log_fk md_sbf mth textfiles R RS SR"
|
ex = "doctitle favico html_head lg_sbf log_fk md_sbf mth textfiles unlist R RS SR"
|
||||||
ka.update(**{k: "" for k in ex.split()})
|
ka.update(**{k: "" for k in ex.split()})
|
||||||
|
|
||||||
ex = "xad xar xau xbd xbr xbu xiu xm"
|
ex = "xad xar xau xbd xbr xbu xiu xm"
|
||||||
|
|
Loading…
Reference in a new issue