mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-24 10:31:09 +08:00
chore: move Auto_Bangumi_WebUI -> Auto_Bangumi_WebUI/webui/, prepare for merge into AutoBangumi repo
This commit is contained in:
41
webui/src/api/auth.ts
Normal file
41
webui/src/api/auth.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import type { LoginSuccess, Logout, Update } from '#/auth';
|
||||
|
||||
export const apiAuth = {
|
||||
async login(username: string, password: string) {
|
||||
const formData = new URLSearchParams({
|
||||
username,
|
||||
password,
|
||||
});
|
||||
|
||||
const { data } = await axios.post<LoginSuccess>(
|
||||
'api/v1/auth/login',
|
||||
formData,
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
async refresh() {
|
||||
const { data } = await axios.get<LoginSuccess>('api/v1/auth/refresh_token');
|
||||
return data;
|
||||
},
|
||||
|
||||
async logout() {
|
||||
const { data } = await axios.get<Logout>('api/v1/auth/logout');
|
||||
return data.message === 'logout success';
|
||||
},
|
||||
|
||||
async update(username: string, password: string) {
|
||||
const { data } = await axios.post<Update>('api/v1/auth/update', {
|
||||
username,
|
||||
password,
|
||||
});
|
||||
|
||||
return data;
|
||||
},
|
||||
};
|
||||
97
webui/src/api/bangumi.ts
Normal file
97
webui/src/api/bangumi.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
import type { BangumiRule } from '#/bangumi';
|
||||
import type { ApiSuccess } from '#/api';
|
||||
|
||||
export const apiBangumi = {
|
||||
/**
|
||||
* 获取所有 bangumi 数据
|
||||
* @returns 所有 bangumi 数据
|
||||
*/
|
||||
async getAll() {
|
||||
const { data } = await axios.get<BangumiRule[]>('api/v1/bangumi/getAll');
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取指定 bangumiId 的规则
|
||||
* @param bangumiId bangumi id
|
||||
* @returns 指定 bangumi 的规则
|
||||
*/
|
||||
async getRule(bangumiId: number) {
|
||||
const { data } = await axios.get<BangumiRule>(
|
||||
`api/v1/bangumi/getRule/${bangumiId}`
|
||||
);
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 更新指定 bangumiId 的规则
|
||||
* @param bangumiData - 需要更新的规则
|
||||
* @returns axios 请求返回的数据
|
||||
*/
|
||||
async updateRule(bangumiRule: BangumiRule) {
|
||||
const { data } = await axios.post<ApiSuccess>(
|
||||
'api/v1/bangumi/updateRule',
|
||||
bangumiRule
|
||||
);
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 删除指定 bangumiId 的数据库规则,会在重新匹配到后重建
|
||||
* @param bangumiId - 需要删除的 bangumi 的 id
|
||||
* @param file - 是否同时删除关联文件。
|
||||
* @returns axios 请求返回的数据
|
||||
*/
|
||||
async deleteRule(bangumiId: number, file: boolean) {
|
||||
const { data } = await axios.delete<ApiSuccess>(
|
||||
`api/v1/bangumi/deleteRule/${bangumiId}`,
|
||||
{
|
||||
params: {
|
||||
file,
|
||||
},
|
||||
}
|
||||
);
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 删除指定 bangumiId 的规则。如果 file 为 true,则同时删除关联文件。
|
||||
* @param bangumiId - 需要删除规则的 bangumi 的 id。
|
||||
* @param file - 是否同时删除关联文件。
|
||||
* @returns axios 请求返回的数据
|
||||
*/
|
||||
async disableRule(bangumiId: number, file: boolean) {
|
||||
const { data } = await axios.delete<ApiSuccess>(
|
||||
`api/v1/bangumi/disableRule/${bangumiId}`,
|
||||
{
|
||||
params: {
|
||||
file,
|
||||
},
|
||||
}
|
||||
);
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 启用指定 bangumiId 的规则
|
||||
* @param bangumiId - 需要启用的 bangumi 的 id
|
||||
*/
|
||||
async enableRule(bangumiId: number) {
|
||||
const { data } = await axios.get<ApiSuccess>(
|
||||
`api/v1/bangumi/enableRule/${bangumiId}`
|
||||
);
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 重置所有 bangumi 数据
|
||||
*/
|
||||
async resetAll() {
|
||||
const { data } = await axios.get<{
|
||||
message: 'OK';
|
||||
}>('api/v1/bangumi/resetAll');
|
||||
return data;
|
||||
},
|
||||
};
|
||||
25
webui/src/api/check.ts
Normal file
25
webui/src/api/check.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
export const apiCheck = {
|
||||
/**
|
||||
* 检测下载器
|
||||
*/
|
||||
async downloader() {
|
||||
const { data } = await axios.get('api/v1/check/downloader');
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 检测 RSS
|
||||
*/
|
||||
async rss() {
|
||||
const { data } = await axios.get('api/v1/check/rss');
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 检测所有
|
||||
*/
|
||||
async all() {
|
||||
const { data } = await axios.get('api/v1/check');
|
||||
return data;
|
||||
},
|
||||
};
|
||||
23
webui/src/api/config.ts
Normal file
23
webui/src/api/config.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import type { Config } from '#/config';
|
||||
|
||||
export const apiConfig = {
|
||||
/**
|
||||
* 获取 config 数据
|
||||
*/
|
||||
async getConfig() {
|
||||
const { data } = await axios.get<Config>('api/v1/getConfig');
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 更新 config 数据
|
||||
* @param newConfig - 需要更新的 config
|
||||
*/
|
||||
async updateConfig(newConfig: Config) {
|
||||
const { data } = await axios.post<{
|
||||
message: 'Success' | 'Failed to update config';
|
||||
}>('api/v1/updateConfig', newConfig);
|
||||
|
||||
return data.message === 'Success';
|
||||
},
|
||||
};
|
||||
61
webui/src/api/download.ts
Normal file
61
webui/src/api/download.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import type { BangumiRule } from '#/bangumi';
|
||||
|
||||
interface Status {
|
||||
status: 'Success';
|
||||
}
|
||||
|
||||
interface AnalysisError {
|
||||
status: 'Failed to parse link';
|
||||
}
|
||||
|
||||
export const apiDownload = {
|
||||
/**
|
||||
* 解析 RSS 链接
|
||||
* @param rss_link - RSS 链接
|
||||
*/
|
||||
async analysis(rss_link: string) {
|
||||
const fetchResult = createEventHook<BangumiRule>();
|
||||
const fetchError = createEventHook<AnalysisError>();
|
||||
|
||||
axios
|
||||
.post<any>('api/v1/download/analysis', {
|
||||
rss_link,
|
||||
})
|
||||
.then(({ data }) => {
|
||||
if (data.status) {
|
||||
fetchError.trigger(data as AnalysisError);
|
||||
} else {
|
||||
fetchResult.trigger(data as BangumiRule);
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
onResult: fetchResult.on,
|
||||
onError: fetchError.on,
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* 旧番
|
||||
* @param bangumiData - Bangumi 数据
|
||||
*/
|
||||
async collection(bangumiData: BangumiRule) {
|
||||
const { data } = await axios.post<Status>(
|
||||
'api/v1/download/collection',
|
||||
bangumiData
|
||||
);
|
||||
return data.status === 'Success';
|
||||
},
|
||||
|
||||
/**
|
||||
* 新番
|
||||
* @param bangumiData - Bangumi 数据
|
||||
*/
|
||||
async subscribe(bangumiData: BangumiRule) {
|
||||
const { data } = await axios.post<Status>(
|
||||
'api/v1/download/subscribe',
|
||||
bangumiData
|
||||
);
|
||||
return data.status === 'Success';
|
||||
},
|
||||
};
|
||||
11
webui/src/api/log.ts
Normal file
11
webui/src/api/log.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
export const apiLog = {
|
||||
async getLog() {
|
||||
const { data } = await axios.get<string>('api/v1/log');
|
||||
return data;
|
||||
},
|
||||
|
||||
async clearLog() {
|
||||
const { data } = await axios.get<{ status: 'ok' }>('api/v1/log/clear');
|
||||
return data.status === 'ok';
|
||||
},
|
||||
};
|
||||
47
webui/src/api/program.ts
Normal file
47
webui/src/api/program.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
interface Success {
|
||||
status: 'ok';
|
||||
}
|
||||
|
||||
export const apiProgram = {
|
||||
/**
|
||||
* 重启
|
||||
*/
|
||||
async restart() {
|
||||
const { data } = await axios.get<Success>('api/v1/restart');
|
||||
return data.status === 'ok';
|
||||
},
|
||||
|
||||
/**
|
||||
* 启动
|
||||
*/
|
||||
async start() {
|
||||
const { data } = await axios.get<Success>('api/v1/start');
|
||||
return data.status === 'ok';
|
||||
},
|
||||
|
||||
/**
|
||||
* 停止
|
||||
*/
|
||||
async stop() {
|
||||
const { data } = await axios.get<Success>('api/v1/stop');
|
||||
return data.status === 'ok';
|
||||
},
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
async status() {
|
||||
const { data } = await axios.get<{ status: 'running' | 'stop' }>(
|
||||
'api/v1/status'
|
||||
);
|
||||
return data.status === 'running';
|
||||
},
|
||||
|
||||
/**
|
||||
* 终止
|
||||
*/
|
||||
async shutdown() {
|
||||
const { data } = await axios.get<Success>('api/v1/shutdown');
|
||||
return data.status === 'ok';
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user