refactor: 在后端处理字段映射与 invalid 判断 (#367)

This commit is contained in:
ᴀᴍᴛᴏᴀᴇʀ
2025-06-17 13:44:23 +08:00
committed by GitHub
parent bad00af147
commit a35794ed7a
7 changed files with 25 additions and 29 deletions

View File

@@ -89,14 +89,9 @@
function isDisabled(): boolean {
switch (type) {
case 'collection':
return (item as CollectionWithSubscriptionStatus).state === 1;
return (item as CollectionWithSubscriptionStatus).invalid;
case 'upper': {
const upper = item as UpperWithSubscriptionStatus;
// 没看到有 status 标记,这样判断应该没什么大问题
return (
upper.uname === '账号已注销' &&
upper.face === 'https://i0.hdslb.com/bfs/face/member/noface.jpg'
);
return (item as UpperWithSubscriptionStatus).invalid;
}
default:
return false;

View File

@@ -95,9 +95,7 @@
case 'favorite': {
const favorite = item as FavoriteWithSubscriptionStatus;
const request: UpsertFavoriteRequest = {
// 数据库中保存的 fid 实际上是 favorite.id
fid: favorite.id,
name: favorite.title,
fid: favorite.fid,
path: customPath.trim()
};
response = await api.upsertFavorite(request);
@@ -106,7 +104,7 @@
case 'collection': {
const collection = item as CollectionWithSubscriptionStatus;
const request: UpsertCollectionRequest = {
id: collection.id,
sid: collection.sid,
mid: collection.mid,
path: customPath.trim()
};

View File

@@ -107,7 +107,6 @@ export interface UpdateVideoStatusResponse {
export interface FavoriteWithSubscriptionStatus {
title: string;
media_count: number;
id: number;
fid: number;
mid: number;
subscribed: boolean;
@@ -119,10 +118,10 @@ export interface FavoritesResponse {
// 合集相关类型
export interface CollectionWithSubscriptionStatus {
id: number;
mid: number;
state: number;
title: string;
sid: number;
mid: number;
invalid: boolean;
subscribed: boolean;
}
@@ -137,6 +136,7 @@ export interface UpperWithSubscriptionStatus {
uname: string;
face: string;
sign: string;
invalid: boolean;
subscribed: boolean;
}
@@ -147,12 +147,11 @@ export interface UppersResponse {
export interface UpsertFavoriteRequest {
fid: number;
name: string;
path: string;
}
export interface UpsertCollectionRequest {
id: number;
sid: number;
mid: number;
path: string;
}