diff --git a/copyparty/__main__.py b/copyparty/__main__.py index 9696530e..d40cc63c 100644 --- a/copyparty/__main__.py +++ b/copyparty/__main__.py @@ -1461,6 +1461,7 @@ def add_ui(ap, retry): ap2.add_argument("--au-vol", metavar="0-100", type=int, default=50, choices=range(0, 101), help="default audio/video volume percent") ap2.add_argument("--sort", metavar="C,C,C", type=u, default="href", help="default sort order, comma-separated column IDs (see header tooltips), prefix with '-' for descending. Examples: \033[32mhref -href ext sz ts tags/Album tags/.tn\033[0m (volflag=sort)") ap2.add_argument("--nsort", action="store_true", help="default-enable natural sort of filenames with leading numbers (volflag=nsort)") + 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("--unlist", metavar="REGEX", type=u, default="", help="don't show files matching \033[33mREGEX\033[0m 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("--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])") diff --git a/copyparty/authsrv.py b/copyparty/authsrv.py index 74b3991d..bfe14223 100644 --- a/copyparty/authsrv.py +++ b/copyparty/authsrv.py @@ -2331,6 +2331,7 @@ class AuthSrv(object): "idx": "e2d" in vf, "itag": "e2t" in vf, "dnsort": "nsort" in vf, + "dhsortn": vf["hsortn"], "dsort": vf["sort"], "dcrop": vf["crop"], "dth3x": vf["th3x"], @@ -2356,6 +2357,7 @@ class AuthSrv(object): "dgrid": "grid" in vf, "dgsel": "gsel" in vf, "dnsort": "nsort" in vf, + "dhsortn": vf["hsortn"], "dsort": vf["sort"], "dcrop": vf["crop"], "dth3x": vf["th3x"], diff --git a/copyparty/cfg.py b/copyparty/cfg.py index a7641adb..5e5f4b16 100644 --- a/copyparty/cfg.py +++ b/copyparty/cfg.py @@ -70,6 +70,7 @@ def vf_vmap() -> dict[str, str]: } for k in ( "dbd", + "hsortn", "html_head", "lg_sbf", "md_sbf", diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index c4cc0290..643d566c 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -206,6 +206,7 @@ var Ls = { "cl_uopts": "up2k switches", "cl_favico": "favicon", "cl_bigdir": "big dirs", + "cl_hsort": "#sort", "cl_keytype": "key notation", "cl_hiddenc": "hidden columns", "cl_hidec": "hide", @@ -248,6 +249,7 @@ var Ls = { "cdt_lim": "max number of files to show in a folder", "cdt_ask": "when scrolling to the bottom,$Ninstead of loading more files,$Nask what to do", + "cdt_hsort": "how many sorting rules (<code>,sorthref</code>) to include in media-URLs. Setting this to 0 will also ignore sorting-rules included in media links when clicking them", "tt_entree": "show navpane (directory tree sidebar)$NHotkey: B", "tt_detree": "show breadcrumbs$NHotkey: B", @@ -791,6 +793,7 @@ var Ls = { "cl_uopts": "up2k-brytere", "cl_favico": "favicon", "cl_bigdir": "store mapper", + "cl_hsort": "#sort", "cl_keytype": "notasjon for musikalsk dur", "cl_hiddenc": "skjulte kolonner", "cl_hidec": "skjul", @@ -833,6 +836,7 @@ var Ls = { "cdt_lim": "maks antall filer å vise per mappe", "cdt_ask": "vis knapper for å laste flere filer nederst på siden istedenfor å gradvis laste mer av mappen når man scroller ned", + "cdt_hsort": "antall sorterings-regler (<code>,sorthref</code>) som skal inkluderes når media-URL'er genereres. Hvis denne er 0 så vil sorterings-regler i URL'er hverken bli generert eller lest", "tt_entree": "bytt til mappehierarki$NSnarvei: B", "tt_detree": "bytt til tradisjonell sti-visning$NSnarvei: B", @@ -1376,6 +1380,7 @@ var Ls = { "cl_uopts": "up2k 开关", "cl_favico": "网站图标", "cl_bigdir": "最大目录数", + "cl_hsort": "#sort", //m "cl_keytype": "键位符号", "cl_hiddenc": "隐藏列", "cl_hidec": "隐藏", @@ -1418,6 +1423,7 @@ var Ls = { "cdt_lim": "文件夹中显示的最大文件数", "cdt_ask": "滚动到底部时,$N不会加载更多文件,$N而是询问你该怎么做", + "cdt_hsort": "包含在媒体 URL 中的排序规则 (<code>,sorthref</code>) 数量。将其设置为 0 时,点击媒体链接时也会忽略排序规则。", //m "tt_entree": "显示导航面板(目录树侧边栏)$N快捷键: B", "tt_detree": "显示面包屑导航$N快捷键: B", @@ -2021,6 +2027,13 @@ ebi('op_cfg').innerHTML = ( ' \n' + ' \n' + '\n' + + '