@@ -405,77 +405,7 @@ <h1 id="page-title">Dashboard</h1>
405405 </ div >
406406 </ div >
407407
408- <!-- ── Automation ────────────────────────────────────────────────── -->
409- < div class ="help-panel " id ="htab-automation ">
410- < div class ="card " style ="margin-top:0;border-radius:0 0 var(--radius) var(--radius) ">
411- < div class ="card-body " style ="max-width:760px;display:flex;flex-direction:column;gap:24px;padding:20px 24px ">
412408
413- < div >
414- < h3 style ="margin:0 0 10px;color:var(--accent);font-size:15px "> 🧠 Rule Engine</ h3 >
415- < p style ="margin:0 0 10px;color:var(--text2);font-size:13px ">
416- The Rule Engine automatically applies actions to new torrents before they are uploaded to AllDebrid.
417- Enable it in < b > Settings → Automation → Rule Engine</ b > .
418- </ p >
419- < p style ="margin:0 0 6px;font-size:12px;font-weight:600 "> Example rules (JSON):</ p >
420- < pre style ="background:var(--surface2);padding:14px;border-radius:var(--radius);font-size:11px;overflow-x:auto;line-height:1.6;margin:0 0 10px "> [
421- {"if": {"label_contains": "anime"}, "then": {"download_path": "/media/anime"}},
422- {"if": {"title_contains": "REMUX"}, "then": {"priority": -10}},
423- {"if": {"size_gb_gt": 80}, "then": {"pause": true}},
424- {"if": {"title_matches": ".*FLUX.*"}, "then": {"priority": 5}},
425- {"if": {"title_contains": "sample"}, "then": {"block": true}},
426- {"if": {"source_is": "jackett"}, "then": {"label": "auto"}}
427- ]</ pre >
428- < div style ="display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px ">
429- < div style ="background:var(--surface2);padding:10px;border-radius:var(--radius) ">
430- < div style ="font-weight:600;margin-bottom:6px;color:var(--text2) "> Conditions</ div >
431- < div > < code > title_contains</ code > — substring match</ div >
432- < div > < code > title_matches</ code > — regex (re.search)</ div >
433- < div > < code > size_gb_gt / size_gb_lt</ code > — size in GB</ div >
434- < div > < code > label_contains</ code > — label/category</ div >
435- < div > < code > source_is</ code > — manual, jackett, watch…</ div >
436- </ div >
437- < div style ="background:var(--surface2);padding:10px;border-radius:var(--radius) ">
438- < div style ="font-weight:600;margin-bottom:6px;color:var(--text2) "> Actions</ div >
439- < div > < code > priority</ code > — int, added to current</ div >
440- < div > < code > pause</ code > — true = start paused</ div >
441- < div > < code > download_path</ code > — override folder</ div >
442- < div > < code > label</ code > — set/override label</ div >
443- < div > < code > block</ code > — true = skip upload</ div >
444- </ div >
445- </ div >
446- </ div >
447-
448- < div >
449- < h3 style ="margin:0 0 10px;color:var(--accent);font-size:15px "> 🎯 Download Profiles</ h3 >
450- < p style ="margin:0 0 10px;color:var(--text2);font-size:13px ">
451- Named presets that bundle download path, priority, and label.
452- Only one profile can be active at a time.
453- Configure in < b > Settings → Automation → Download Profiles</ b > .
454- </ p >
455- < p style ="margin:0 0 6px;font-size:12px;font-weight:600 "> Example profiles (JSON):</ p >
456- < pre style ="background:var(--surface2);padding:14px;border-radius:var(--radius);font-size:11px;overflow-x:auto;line-height:1.6;margin:0 "> [
457- {"name": "Streaming", "download_path": "/media/stream", "priority": 10, "label": "stream"},
458- {"name": "Archive", "download_path": "/media/archive", "priority": -5, "label": "archive"},
459- {"name": "Anime", "download_path": "/media/anime", "priority": 5, "label": "anime"},
460- {"name": "Low Bandwidth", "download_path": "/media/lowbw", "priority": -10,"label": "low-bw"},
461- {"name": "High Quality", "download_path": "/media/remux", "priority": 0, "label": "remux"}
462- ]</ pre >
463- </ div >
464-
465- </ div >
466- </ div >
467- </ div >
468- < div class ="view " id ="view-learning ">
469- < div class ="card ">
470- < div class ="card-header ">
471- < span class ="card-title "> 🧠 Historical Learning</ span >
472- < button class ="btn btn-ghost btn-sm " onclick ="loadLearningStats() "> ↻ Refresh</ button >
473- </ div >
474- < div style ="padding:14px " id ="learning-body ">
475- < div style ="color:var(--text3) "> Click Refresh to load indexer performance data.</ div >
476- </ div >
477- </ div >
478- </ div >
479409
480410 < div class ="view " id ="view-analytics ">
481411 < div class ="card ">
@@ -829,6 +759,18 @@ <h2 class="view-title">▼ Downloads</h2>
829759 </ div >
830760 </ div >
831761
762+ < div class ="view " id ="view-learning ">
763+ < div class ="card ">
764+ < div class ="card-header ">
765+ < span class ="card-title "> 🧠 Historical Learning</ span >
766+ < button class ="btn btn-ghost btn-sm " onclick ="loadLearningStats() "> ↻ Refresh</ button >
767+ </ div >
768+ < div style ="padding:14px " id ="learning-body ">
769+ < div style ="color:var(--text3) "> Click Refresh to load indexer performance data.</ div >
770+ </ div >
771+ </ div >
772+ </ div >
773+
832774 <!-- Help -->
833775 < div class ="view " id ="view-help ">
834776 < div class ="view-header ">
@@ -1176,6 +1118,66 @@ <h3 style="margin:0;color:var(--accent);font-size:15px">Troubleshooting</h3>
11761118 </ div >
11771119 </ div >
11781120
1121+ <!-- ── Automation ────────────────────────────────────────────────── -->
1122+ < div class ="help-panel " id ="htab-automation ">
1123+ < div class ="card " style ="margin-top:0;border-radius:0 0 var(--radius) var(--radius) ">
1124+ < div class ="card-body " style ="max-width:760px;display:flex;flex-direction:column;gap:24px;padding:20px 24px ">
1125+
1126+ < div >
1127+ < h3 style ="margin:0 0 10px;color:var(--accent);font-size:15px "> 🧠 Rule Engine</ h3 >
1128+ < p style ="margin:0 0 10px;color:var(--text2);font-size:13px ">
1129+ The Rule Engine automatically applies actions to new torrents before they are uploaded to AllDebrid.
1130+ Enable it in < b > Settings → Automation → Rule Engine</ b > .
1131+ </ p >
1132+ < p style ="margin:0 0 6px;font-size:12px;font-weight:600 "> Example rules (JSON):</ p >
1133+ < pre style ="background:var(--surface2);padding:14px;border-radius:var(--radius);font-size:11px;overflow-x:auto;line-height:1.6;margin:0 0 10px "> [
1134+ {"if": {"label_contains": "anime"}, "then": {"download_path": "/media/anime"}},
1135+ {"if": {"title_contains": "REMUX"}, "then": {"priority": -10}},
1136+ {"if": {"size_gb_gt": 80}, "then": {"pause": true}},
1137+ {"if": {"title_matches": ".*FLUX.*"}, "then": {"priority": 5}},
1138+ {"if": {"title_contains": "sample"}, "then": {"block": true}},
1139+ {"if": {"source_is": "jackett"}, "then": {"label": "auto"}}
1140+ ]</ pre >
1141+ < div style ="display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px ">
1142+ < div style ="background:var(--surface2);padding:10px;border-radius:var(--radius) ">
1143+ < div style ="font-weight:600;margin-bottom:6px;color:var(--text2) "> Conditions</ div >
1144+ < div > < code > title_contains</ code > — substring match</ div >
1145+ < div > < code > title_matches</ code > — regex (re.search)</ div >
1146+ < div > < code > size_gb_gt / size_gb_lt</ code > — size in GB</ div >
1147+ < div > < code > label_contains</ code > — label/category</ div >
1148+ < div > < code > source_is</ code > — manual, jackett, watch…</ div >
1149+ </ div >
1150+ < div style ="background:var(--surface2);padding:10px;border-radius:var(--radius) ">
1151+ < div style ="font-weight:600;margin-bottom:6px;color:var(--text2) "> Actions</ div >
1152+ < div > < code > priority</ code > — int, added to current</ div >
1153+ < div > < code > pause</ code > — true = start paused</ div >
1154+ < div > < code > download_path</ code > — override folder</ div >
1155+ < div > < code > label</ code > — set/override label</ div >
1156+ < div > < code > block</ code > — true = skip upload</ div >
1157+ </ div >
1158+ </ div >
1159+ </ div >
1160+
1161+ < div >
1162+ < h3 style ="margin:0 0 10px;color:var(--accent);font-size:15px "> 🎯 Download Profiles</ h3 >
1163+ < p style ="margin:0 0 10px;color:var(--text2);font-size:13px ">
1164+ Named presets that bundle download path, priority, and label.
1165+ Only one profile can be active at a time.
1166+ Configure in < b > Settings → Automation → Download Profiles</ b > .
1167+ </ p >
1168+ < p style ="margin:0 0 6px;font-size:12px;font-weight:600 "> Example profiles (JSON):</ p >
1169+ < pre style ="background:var(--surface2);padding:14px;border-radius:var(--radius);font-size:11px;overflow-x:auto;line-height:1.6;margin:0 "> [
1170+ {"name": "Streaming", "download_path": "/media/stream", "priority": 10, "label": "stream"},
1171+ {"name": "Archive", "download_path": "/media/archive", "priority": -5, "label": "archive"},
1172+ {"name": "Anime", "download_path": "/media/anime", "priority": 5, "label": "anime"},
1173+ {"name": "Low Bandwidth", "download_path": "/media/lowbw", "priority": -10,"label": "low-bw"},
1174+ {"name": "High Quality", "download_path": "/media/remux", "priority": 0, "label": "remux"}
1175+ ]</ pre >
1176+ </ div >
1177+
1178+ </ div >
1179+ </ div >
1180+ </ div >
11791181 </ div > <!-- /help-panels-wrap -->
11801182 </ div >
11811183
0 commit comments