feat: 实现仅失败、仅成功、仅等待的筛选 (#610)

This commit is contained in:
ᴀᴍᴛᴏᴀᴇʀ
2026-01-16 15:10:39 +08:00
committed by GitHub
parent 269647ac22
commit 7f09a98d6c
8 changed files with 227 additions and 96 deletions

View File

@@ -4,6 +4,14 @@ use validator::Validate;
use crate::bilibili::CollectionType;
#[derive(Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum StatusFilter {
Failed,
Succeeded,
Waiting,
}
#[derive(Deserialize)]
pub struct VideosRequest {
pub collection: Option<i32>,
@@ -11,8 +19,7 @@ pub struct VideosRequest {
pub submission: Option<i32>,
pub watch_later: Option<i32>,
pub query: Option<String>,
#[serde(default)]
pub failed_only: bool,
pub status_filter: Option<StatusFilter>,
pub page: Option<u64>,
pub page_size: Option<u64>,
}
@@ -30,8 +37,7 @@ pub struct ResetFilteredVideoStatusRequest {
pub submission: Option<i32>,
pub watch_later: Option<i32>,
pub query: Option<String>,
#[serde(default)]
pub failed_only: bool,
pub status_filter: Option<StatusFilter>,
#[serde(default)]
pub force: bool,
}
@@ -68,8 +74,7 @@ pub struct UpdateFilteredVideoStatusRequest {
pub submission: Option<i32>,
pub watch_later: Option<i32>,
pub query: Option<String>,
#[serde(default)]
pub failed_only: bool,
pub status_filter: Option<StatusFilter>,
#[serde(default)]
#[validate(nested)]
pub video_updates: Vec<StatusUpdate>,