增强追番订阅:关键词表达式、字幕组快捷、右键添加与缺集补搜

- 过滤/排除支持 & | (),兼容旧逗号语义
- 字幕组快捷单选填入;同名订阅拒绝重复
- 单集只下一次、缺集按「番名+补零集数」重搜
- VideoCard 管理员可添加追番;PlayRecord 增加 is_anime 及迁移
This commit is contained in:
mtvpls
2026-07-26 14:48:58 +08:00
parent ca798177b9
commit 333c482e19
23 changed files with 1433 additions and 103 deletions
+7 -4
View File
@@ -116,9 +116,9 @@ export class D1Storage implements IStorage {
INSERT INTO play_records (
username, key, title, source_name, cover, year,
episode_index, total_episodes, play_time, total_time,
save_time, search_title, new_episodes
save_time, search_title, new_episodes, is_anime
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT(username, key) DO UPDATE SET
title = excluded.title,
source_name = excluded.source_name,
@@ -130,7 +130,8 @@ export class D1Storage implements IStorage {
total_time = excluded.total_time,
save_time = excluded.save_time,
search_title = excluded.search_title,
new_episodes = excluded.new_episodes
new_episodes = excluded.new_episodes,
is_anime = excluded.is_anime
`
)
.bind(
@@ -146,7 +147,8 @@ export class D1Storage implements IStorage {
record.total_time,
record.save_time,
record.search_title || '',
record.new_episodes || null
record.new_episodes || null,
record.is_anime ? 1 : 0
)
.run();
} catch (err) {
@@ -1239,6 +1241,7 @@ export class D1Storage implements IStorage {
save_time: row.save_time,
search_title: row.search_title || '',
new_episodes: row.new_episodes || undefined,
is_anime: row.is_anime === 1 || row.is_anime === true,
};
}