feat: lint & format

This commit is contained in:
Rewrite0
2023-10-06 04:32:33 +00:00
committed by GitHub
parent 664a121092
commit edf697e68a
36 changed files with 821 additions and 833 deletions

View File

@@ -1,137 +1,136 @@
import type {BangumiAPI, BangumiRule} from '#/bangumi';
import type {ApiSuccess} from '#/api';
import type { BangumiAPI, BangumiRule } from '#/bangumi';
import type { ApiSuccess } from '#/api';
export const apiBangumi = {
/**
* 获取所有 bangumi 数据
* @returns 所有 bangumi 数据
*/
async getAll() {
const {data} = await axios.get<BangumiAPI[]>('api/v1/bangumi/get/all');
const result: BangumiRule[] = data.map((bangumi) => (
{
...bangumi,
filter: bangumi.filter.split(','),
rss_link: bangumi.rss_link.split(','),
}
));
return result;
},
/**
* 获取所有 bangumi 数据
* @returns 所有 bangumi 数据
*/
async getAll() {
const { data } = await axios.get<BangumiAPI[]>('api/v1/bangumi/get/all');
const result: BangumiRule[] = data.map((bangumi) => ({
...bangumi,
filter: bangumi.filter.split(','),
rss_link: bangumi.rss_link.split(','),
}));
return result;
},
/**
* 获取指定 bangumiId 的规则
* @param bangumiId bangumi id
* @returns 指定 bangumi 的规则
*/
async getRule(bangumiId: number) {
const {data} = await axios.get<BangumiAPI>(
`api/v1/bangumi/get/${bangumiId}`
);
const result: BangumiRule = {
...data,
filter: data.filter.split(','),
rss_link: data.rss_link.split(','),
}
return result;
},
/**
* 获取指定 bangumiId 的规则
* @param bangumiId bangumi id
* @returns 指定 bangumi 的规则
*/
async getRule(bangumiId: number) {
const { data } = await axios.get<BangumiAPI>(
`api/v1/bangumi/get/${bangumiId}`
);
const result: BangumiRule = {
...data,
filter: data.filter.split(','),
rss_link: data.rss_link.split(','),
};
return result;
},
/**
* 更新指定 bangumiId 的规则
* @param bangumiId - 需要更新的 bangumi 的 id
* @param bangumiRule
* @returns axios 请求返回的数据
*/
async updateRule(bangumiId: number, bangumiRule: BangumiRule) {
const rule: BangumiAPI = {
...bangumiRule,
filter: bangumiRule.filter.join(','),
rss_link: bangumiRule.rss_link.join(','),
}
const post = omit(rule, ['id'])
const {data} = await axios.patch<ApiSuccess>(
`api/v1/bangumi/update/${bangumiId}`,
post
);
return data;
},
/**
* 更新指定 bangumiId 的规则
* @param bangumiId - 需要更新的 bangumi 的 id
* @param bangumiRule
* @returns axios 请求返回的数据
*/
async updateRule(bangumiId: number, bangumiRule: BangumiRule) {
const rule: BangumiAPI = {
...bangumiRule,
filter: bangumiRule.filter.join(','),
rss_link: bangumiRule.rss_link.join(','),
};
const post = omit(rule, ['id']);
const { data } = await axios.patch<ApiSuccess>(
`api/v1/bangumi/update/${bangumiId}`,
post
);
return data;
},
/**
* 删除指定 bangumiId 的数据库规则,会在重新匹配到后重建
* @param bangumiId - 需要删除的 bangumi 的 id
* @param file - 是否同时删除关联文件。
* @returns axios 请求返回的数据
*/
async deleteRule(bangumiId: number | number[], file: boolean) {
let url = 'api/v1/bangumi/delete';
let ids: undefined | number[];
/**
* 删除指定 bangumiId 的数据库规则,会在重新匹配到后重建
* @param bangumiId - 需要删除的 bangumi 的 id
* @param file - 是否同时删除关联文件。
* @returns axios 请求返回的数据
*/
async deleteRule(bangumiId: number | number[], file: boolean) {
let url = 'api/v1/bangumi/delete';
let ids: undefined | number[];
if (typeof bangumiId === 'number') {
url = `${url}/${bangumiId}`;
} else {
url = `${url}/many`;
ids = bangumiId;
}
const {data} = await axios.delete<ApiSuccess>(url, {
data: ids,
params: {
file,
},
});
return data;
},
/**
* 删除指定 bangumiId 的规则。如果 file 为 true则同时删除关联文件。
* @param bangumiId - 需要删除规则的 bangumi 的 id。
* @param file - 是否同时删除关联文件。
* @returns axios 请求返回的数据
*/
async disableRule(bangumiId: number | number[], file: boolean) {
let url = 'api/v1/bangumi/disable';
let ids: undefined | number[];
if (typeof bangumiId === 'number') {
url = `${url}/${bangumiId}`;
} else {
url = `${url}/many`;
ids = bangumiId;
}
const {data} = await axios.delete<ApiSuccess>(url, {
data: ids,
params: {
file,
},
});
return data;
},
/**
* 启用指定 bangumiId 的规则
* @param bangumiId - 需要启用的 bangumi 的 id
*/
async enableRule(bangumiId: number) {
const {data} = await axios.get<ApiSuccess>(
`api/v1/bangumi/enable/${bangumiId}`
);
return data;
},
/**
* 重置所有 bangumi 数据
*/
async resetAll() {
const {data} = await axios.get<ApiSuccess>('api/v1/bangumi/reset/all');
return data;
},
/**
* 刷新所有没有海报的 bangumi 海报
*/
async refreshPoster() {
const {data} = await axios.get<ApiSuccess>('api/v1/bangumi/refresh/poster/all');
return data;
if (typeof bangumiId === 'number') {
url = `${url}/${bangumiId}`;
} else {
url = `${url}/many`;
ids = bangumiId;
}
const { data } = await axios.delete<ApiSuccess>(url, {
data: ids,
params: {
file,
},
});
return data;
},
/**
* 删除指定 bangumiId 的规则。如果 file 为 true则同时删除关联文件。
* @param bangumiId - 需要删除规则的 bangumi 的 id。
* @param file - 是否同时删除关联文件。
* @returns axios 请求返回的数据
*/
async disableRule(bangumiId: number | number[], file: boolean) {
let url = 'api/v1/bangumi/disable';
let ids: undefined | number[];
if (typeof bangumiId === 'number') {
url = `${url}/${bangumiId}`;
} else {
url = `${url}/many`;
ids = bangumiId;
}
const { data } = await axios.delete<ApiSuccess>(url, {
data: ids,
params: {
file,
},
});
return data;
},
/**
* 启用指定 bangumiId 的规则
* @param bangumiId - 需要启用的 bangumi 的 id
*/
async enableRule(bangumiId: number) {
const { data } = await axios.get<ApiSuccess>(
`api/v1/bangumi/enable/${bangumiId}`
);
return data;
},
/**
* 重置所有 bangumi 数据
*/
async resetAll() {
const { data } = await axios.get<ApiSuccess>('api/v1/bangumi/reset/all');
return data;
},
/**
* 刷新所有没有海报的 bangumi 海报
*/
async refreshPoster() {
const { data } = await axios.get<ApiSuccess>(
'api/v1/bangumi/refresh/poster/all'
);
return data;
},
};

View File

@@ -6,5 +6,4 @@ export const apiCheck = {
const { data } = await axios.get<Boolean>('api/v1/check/downloader');
return data;
},
}
};

View File

@@ -1,6 +1,6 @@
import type { BangumiAPI, BangumiRule } from '#/bangumi';
import type { RSS } from '#/rss';
import type { ApiError, ApiSuccess } from '#/api';
import type { ApiSuccess } from '#/api';
export const apiDownload = {
/**
@@ -10,14 +10,14 @@ export const apiDownload = {
async analysis(rss_item: RSS) {
const { data } = await axios.post<BangumiAPI>(
'api/v1/rss/analysis',
rss_item
rss_item
);
const result: BangumiRule = {
...data,
filter: data.filter.split(','),
rss_link: data.rss_link.split(','),
}
...data,
filter: data.filter.split(','),
rss_link: data.rss_link.split(','),
};
return result;
},
@@ -30,7 +30,7 @@ export const apiDownload = {
...bangumiData,
filter: bangumiData.filter.join(','),
rss_link: bangumiData.rss_link.join(','),
}
};
const { data } = await axios.post<ApiSuccess>(
'api/v1/rss/collect',
postData
@@ -44,10 +44,10 @@ export const apiDownload = {
*/
async subscribe(bangumiData: BangumiRule) {
const postData: BangumiAPI = {
...bangumiData,
filter: bangumiData.filter.join(','),
rss_link: bangumiData.rss_link.join(','),
}
...bangumiData,
filter: bangumiData.filter.join(','),
rss_link: bangumiData.rss_link.join(','),
};
const { data } = await axios.post<ApiSuccess>(
'api/v1/rss/subscribe',
postData

View File

@@ -1,4 +1,4 @@
import type { ApiSuccess } from "#/api";
import type { ApiSuccess } from '#/api';
export const apiLog = {
async getLog() {

View File

@@ -1,5 +1,4 @@
import type { ApiSuccess } from "#/api";
import type { ApiSuccess } from '#/api';
export const apiProgram = {
/**

View File

@@ -14,32 +14,48 @@ export const apiRSS = {
},
async delete(rss_id: number) {
const { data } = await axios.delete<ApiSuccess>(`api/v1/rss/delete/${rss_id}`);
const { data } = await axios.delete<ApiSuccess>(
`api/v1/rss/delete/${rss_id}`
);
return data!;
},
async deleteMany(rss_list: number[]) {
const { data } = await axios.post<ApiSuccess>(`api/v1/rss/delete/many`, rss_list);
const { data } = await axios.post<ApiSuccess>(
`api/v1/rss/delete/many`,
rss_list
);
return data!;
},
async disable(rss_id: number) {
const { data } = await axios.patch<ApiSuccess>(`api/v1/rss/disable/${rss_id}`);
const { data } = await axios.patch<ApiSuccess>(
`api/v1/rss/disable/${rss_id}`
);
return data!;
},
async disableMany(rss_list: number[]) {
const { data } = await axios.post<ApiSuccess>(`api/v1/rss/disable/many`, rss_list);
const { data } = await axios.post<ApiSuccess>(
`api/v1/rss/disable/many`,
rss_list
);
return data!;
},
async update(rss_id: number, rss: RSS) {
const { data } = await axios.patch<ApiSuccess>(`api/v1/rss/update/${rss_id}`, rss);
const { data } = await axios.patch<ApiSuccess>(
`api/v1/rss/update/${rss_id}`,
rss
);
return data!;
},
async enableMany(rss_list: number[]) {
const { data } = await axios.post<ApiSuccess>(`api/v1/rss/enable/many`, rss_list);
const { data } = await axios.post<ApiSuccess>(
`api/v1/rss/enable/many`,
rss_list
);
return data!;
},
@@ -49,7 +65,9 @@ export const apiRSS = {
},
async refresh(rss_id: number) {
const { data } = await axios.get<ApiSuccess>(`api/v1/rss/refresh/${rss_id}`);
const { data } = await axios.get<ApiSuccess>(
`api/v1/rss/refresh/${rss_id}`
);
return data!;
},

View File

@@ -1,37 +1,47 @@
import {
Observable,
} from 'rxjs';
import { Observable } from 'rxjs';
import type { BangumiRule, BangumiAPI } from '#/bangumi';
import type { BangumiAPI, BangumiRule } from '#/bangumi';
export const apiSearch = {
/**
* 番剧搜索接口是 Server Send 流式数据,每条是一个 Bangumi JSON 字符串,
* 使用接口方式是监听连接消息后,转为 Observable 配合外层调用时 switchMap 订阅使用
*/
get(keyword: string, site = 'mikan'): Observable<BangumiRule> {
const bangumiInfo$ = new Observable<BangumiRule>(observer => {
get(keyword: string, site = 'mikan'): Observable<BangumiRule> {
const bangumiInfo$ = new Observable<BangumiRule>((observer) => {
const eventSource = new EventSource(
`api/v1/search/bangumi?site=${site}&keywords=${encodeURIComponent(keyword)}`,
{ withCredentials: true },
`api/v1/search/bangumi?site=${site}&keywords=${encodeURIComponent(
keyword
)}`,
{ withCredentials: true }
);
eventSource.onmessage = ev => {
eventSource.onmessage = (ev) => {
try {
const apiData: BangumiAPI = JSON.parse(ev.data);
const data: BangumiRule = {
...apiData,
filter: apiData.filter.split(','),
rss_link: apiData.rss_link.split(','),
}
const data: BangumiRule = {
...apiData,
filter: apiData.filter.split(','),
rss_link: apiData.rss_link.split(','),
};
observer.next(data);
} catch (error) {
console.error('[/search/bangumi] Parse Error |', { keyword }, 'response:', ev.data)
console.error(
'[/search/bangumi] Parse Error |',
{ keyword },
'response:',
ev.data
);
}
};
eventSource.onerror = ev => {
console.error('[/search/bangumi] Server Error |', { keyword }, 'error:', ev)
eventSource.onerror = (ev) => {
console.error(
'[/search/bangumi] Server Error |',
{ keyword },
'error:',
ev
);
// 目前后端搜索完成关闭连接时会触发 error 事件,前端手动调用 close 不再自动重连
eventSource.close();
};
@@ -47,6 +57,5 @@ export const apiSearch = {
async getProvider() {
const { data } = await axios.get<string[]>('api/v1/search/provider');
return data;
}
},
};