Miguel Palhas
29c31beceb
feat(arr): one sidecar per language, in the schema
...
DESIGN.md §15 as amended: a language is satisfied by exactly one
sidecar, and no filename segment distinguishes forced from plain from
SDH. A unique index over sidecar rows says so; embedded rows keep their
own key, since several tracks for one language can legitimately coexist
inside a video.
Existing databases may hold a duplicate from a manual grab that beat the
API's path check, so the migration resolves them rather than failing: a
real subtitle beats a machine translation, and of two of the same kind
the newest wins. The files stay on disk for the manual delete to clean
up.
`record_file` no longer swallows every conflict — only the two that mean
"arr already knows this file".
2026-08-25 08:28:51 +01:00
..
2026-08-22 22:38:31 +01:00
2026-08-23 14:56:51 +01:00
2026-08-23 14:56:51 +01:00
2026-08-22 21:00:35 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 05:32:08 +01:00
2026-08-22 23:21:30 +01:00
2026-08-24 18:12:10 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 21:43:03 +01:00
2026-08-22 21:43:03 +01:00
2026-08-25 02:16:20 +01:00
2026-08-25 03:03:17 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-25 08:28:51 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:13:37 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 21:43:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-22 23:02:34 +01:00
2026-08-22 20:40:31 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 14:56:51 +01:00
2026-08-25 02:29:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-25 03:03:17 +01:00
2026-08-22 21:00:35 +01:00
2026-08-25 02:40:12 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-22 23:42:36 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:08:52 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 09:13:37 +01:00
2026-08-23 22:12:05 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:40:12 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 20:14:48 +01:00
2026-08-23 19:34:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:26:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:10:49 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 22:28:31 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 03:03:17 +01:00
2026-08-25 02:40:12 +01:00
2026-08-22 23:02:34 +01:00
2026-08-22 21:43:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:12:10 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 18:23:41 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 03:03:17 +01:00
2026-08-22 23:42:36 +01:00
2026-08-23 09:13:37 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-23 09:08:52 +01:00
2026-08-25 05:32:08 +01:00
2026-08-25 03:15:33 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 02:31:50 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:16:20 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 19:51:28 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 20:10:23 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:10:49 +01:00
2026-08-25 02:29:13 +01:00
2026-08-23 19:34:55 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 21:46:13 +01:00
2026-08-23 01:40:53 +01:00
2026-08-22 23:23:56 +01:00
2026-08-22 23:21:30 +01:00
2026-08-22 23:21:30 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:59:45 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 21:43:03 +01:00
2026-08-23 17:45:09 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 23:02:34 +01:00
2026-08-23 17:45:09 +01:00
2026-08-24 23:27:03 +01:00
2026-08-23 01:40:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 16:43:53 +01:00
2026-08-23 19:34:55 +01:00
2026-08-23 22:12:05 +01:00
2026-08-23 18:24:50 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 21:46:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 17:45:09 +01:00
2026-08-24 23:27:03 +01:00
2026-08-25 08:28:51 +01:00
2026-08-24 19:51:28 +01:00
2026-08-22 22:38:31 +01:00
2026-08-24 22:28:31 +01:00
2026-08-23 09:02:42 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 20:40:31 +01:00
2026-08-24 19:51:28 +01:00
2026-08-23 14:56:51 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:16:20 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-23 22:12:05 +01:00
2026-08-24 20:14:48 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-25 02:29:13 +01:00
2026-08-24 18:10:53 +01:00
2026-08-22 22:38:31 +01:00
2026-08-24 23:27:03 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 18:10:53 +01:00
2026-08-24 21:46:13 +01:00
2026-08-22 23:21:30 +01:00
2026-08-23 17:45:09 +01:00