feat: add download detection job with Prowlarr integration
For each series with missing volumes and an approved metadata link, calls Prowlarr to find available matching releases and stores them in a report (no auto-download). Includes per-series detail page, Telegram notifications with per-event toggles, and stats display in the jobs table. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,12 @@ export const DEFAULT_EVENTS = {
|
||||
metadata_batch_failed: true,
|
||||
metadata_refresh_completed: true,
|
||||
metadata_refresh_failed: true,
|
||||
reading_status_match_completed: true,
|
||||
reading_status_match_failed: true,
|
||||
reading_status_push_completed: true,
|
||||
reading_status_push_failed: true,
|
||||
download_detection_completed: true,
|
||||
download_detection_failed: true,
|
||||
};
|
||||
|
||||
export function TelegramCard({ handleUpdateSetting }: { handleUpdateSetting: (key: string, value: unknown) => Promise<void> }) {
|
||||
@@ -191,6 +197,24 @@ export function TelegramCard({ handleUpdateSetting }: { handleUpdateSetting: (ke
|
||||
{ key: "metadata_refresh_failed" as const, label: t("settings.eventRefreshFailed") },
|
||||
],
|
||||
},
|
||||
{
|
||||
category: t("settings.eventCategoryReadingStatus"),
|
||||
icon: "books" as const,
|
||||
items: [
|
||||
{ key: "reading_status_match_completed" as const, label: t("settings.eventMatchCompleted") },
|
||||
{ key: "reading_status_match_failed" as const, label: t("settings.eventMatchFailed") },
|
||||
{ key: "reading_status_push_completed" as const, label: t("settings.eventPushCompleted") },
|
||||
{ key: "reading_status_push_failed" as const, label: t("settings.eventPushFailed") },
|
||||
],
|
||||
},
|
||||
{
|
||||
category: t("settings.eventCategoryDownloadDetection"),
|
||||
icon: "download" as const,
|
||||
items: [
|
||||
{ key: "download_detection_completed" as const, label: t("settings.eventCompleted") },
|
||||
{ key: "download_detection_failed" as const, label: t("settings.eventFailed") },
|
||||
],
|
||||
},
|
||||
]).map(({ category, icon, items }) => (
|
||||
<div key={category}>
|
||||
<p className="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 flex items-center gap-1.5">
|
||||
|
||||
Reference in New Issue
Block a user