diff --git a/copyparty/__main__.py b/copyparty/__main__.py index d6d30f1a..7b5c32a1 100644 --- a/copyparty/__main__.py +++ b/copyparty/__main__.py @@ -1793,6 +1793,7 @@ def add_ui(ap, retry: int): ap2.add_argument("--hsortn", metavar="N", type=int, default=2, help="number of sorting rules to include in media URLs by default (volflag=hsortn)") ap2.add_argument("--see-dots", action="store_true", help="default-enable seeing dotfiles; only takes effect if user has the necessary permissions") ap2.add_argument("--qdel", metavar="LVL", type=int, default=2, help="number of confirmations to show when deleting files (2/1/0)") + ap2.add_argument("--dlni", action="store_true", help="force download (don't show inline) when files are clicked (volflag:dlni)") ap2.add_argument("--unlist", metavar="REGEX", type=u, default="", help="don't show files/folders matching \033[33mREGEX\033[0m in file list. WARNING: 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("--ufavico", metavar="TXT", type=u, default="", help="URL to .ico/png/gif/svg file; \033[33m--favico\033[0m takes precedence unless disabled (volflag=ufavico)") diff --git a/copyparty/authsrv.py b/copyparty/authsrv.py index 263912d9..de6dc18b 100644 --- a/copyparty/authsrv.py +++ b/copyparty/authsrv.py @@ -3049,6 +3049,8 @@ class AuthSrv(object): vn.js_ls = { "idx": "e2d" in vf, "itag": "e2t" in vf, + "dlni": "dlni" in vf, + "dgrid": "grid" in vf, "dnsort": "nsort" in vf, "dhsortn": vf["hsortn"], "dsort": vf["sort"], @@ -3091,7 +3093,8 @@ class AuthSrv(object): "unlist0": vf.get("unlist") or "", "see_dots": self.args.see_dots, "dqdel": self.args.qdel, - "dgrid": "grid" in vf, + "dlni": vn.js_ls["dlni"], + "dgrid": vn.js_ls["dgrid"], "dgsel": "gsel" in vf, "dnsort": "nsort" in vf, "dhsortn": vf["hsortn"], diff --git a/copyparty/cfg.py b/copyparty/cfg.py index 3c4ab467..588d7bb9 100644 --- a/copyparty/cfg.py +++ b/copyparty/cfg.py @@ -30,6 +30,7 @@ def vf_bmap() -> dict[str, str]: } for k in ( "dedup", + "dlni", "dotsrch", "e2d", "e2ds", @@ -318,6 +319,7 @@ flagcats = { "hsortn": "number of sort-rules to add to media URLs", "ufavico=URL": "per-volume favicon (.ico/png/gif/svg)", "unlist": "dont list files matching REGEX", + "dlni": "force-download (no-inline) files on click", "html_head=TXT": "includes TXT in the
, or @PATH for file at PATH", "html_head_s=TXT": "additional static text in the html ", "tcolor=#fc0": "theme color (a hint for webbrowsers, discord, etc.)", diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index f0f50e5a..17c21532 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -226,6 +226,7 @@ if (1) "ct_ttips": '◔ ◡ ◔">ℹ️ tooltips', "ct_thumb": 'in grid-view, toggle icons or thumbnails$NHotkey: T">🖼️ thumbs', "ct_csel": 'use CTRL and SHIFT for file selection in grid-view">sel', + "ct_dl": 'force download (don\'t display inline) when a file is clicked">dl', "ct_ihop": 'when the image viewer is closed, scroll down to the last viewed file">g⮯', "ct_dots": 'show hidden files (if server permits)">dotfiles', "ct_qdel": 'when deleting files, only ask for confirmation once">qdel', @@ -878,6 +879,7 @@ ebi('op_cfg').innerHTML = ( ' ' + L.ct_grid + '\n' + '