feat(timer): diskten dosya silme seçeneği ekle
Timer kurallarına torrent silinirken dosyaların diskten de silinip silinmeyeceğini belirleyen `deleteFiles` alanı eklendi. Web arayüzüne ilgili ayar checkbox'ı eklendi. Varsayılan değer dosyaları silmek (`true`) olarak ayarlandı. Torrent listesinde eklenme tarihi görünümü eklendi.
This commit is contained in:
@@ -10,6 +10,7 @@ const router = Router();
|
||||
const ruleSchema = z.object({
|
||||
tags: z.array(z.string().min(1)).min(1),
|
||||
seedLimitSeconds: z.number().int().min(60).max(60 * 60 * 24 * 365),
|
||||
deleteFiles: z.boolean().optional(),
|
||||
});
|
||||
|
||||
router.get("/rules", async (_req, res) => {
|
||||
@@ -27,6 +28,7 @@ router.post("/rules", async (req, res) => {
|
||||
id: randomUUID(),
|
||||
tags: parsed.data.tags,
|
||||
seedLimitSeconds: parsed.data.seedLimitSeconds,
|
||||
deleteFiles: parsed.data.deleteFiles ?? true,
|
||||
createdAt: nowIso(),
|
||||
};
|
||||
db.timerRules = [...(db.timerRules ?? []), rule];
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export interface TimerRuleInput {
|
||||
tags: string[];
|
||||
seedLimitSeconds: number;
|
||||
deleteFiles?: boolean;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ export const startTimerWorker = (qbit: QbitClient, intervalMs: number) => {
|
||||
}
|
||||
|
||||
try {
|
||||
await qbit.deleteTorrent(torrent.hash, true);
|
||||
await qbit.deleteTorrent(torrent.hash, matchingRule.deleteFiles ?? true);
|
||||
} catch (error) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@ export interface TimerRule {
|
||||
id: string;
|
||||
tags: string[];
|
||||
seedLimitSeconds: number;
|
||||
deleteFiles: boolean;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user