This commit is contained in:
Rewrite0
2023-05-21 17:24:14 +08:00
parent 235d2bdb8d
commit ff17d3f0cf
7 changed files with 211 additions and 61 deletions

View File

@@ -1,25 +1,75 @@
import axios from 'axios';
import type { BangumiItem } from '#/bangumi';
/**
* 添加番剧订阅
* @param type 'new' 添加新番, old 添加旧番
* @param rss_link
*/
function addBangumi(type: string, rss_link: string) {
if (type === 'new') {
return axios.post('api/v1/subscribe', { rss_link });
} else if (type === 'old') {
return axios.post('api/v1/collection', { rss_link });
} else {
console.error('type错误, type应为 new 或 old');
return false;
}
}
export const apiBangumi = {
/**
* 获取所有 bangumi 数据
* @returns 所有 bangumi 数据
*/
async getAll() {
const { data } = await axios.get<BangumiItem[]>('api/v1/bangumi/getAll');
/**
* 获取订阅番剧数据
*/
const getABData = () => axios.get<BangumiItem[]>('api/v1/bangumi/getAll');
return data;
},
export { addBangumi, getABData };
/**
* 获取指定 bangumiId 的数据
* @param bangumiId 需要获取数据的 bangumi 的 id
* @returns 获取指定 bangumi 的数据
*/
async getData(bangumiId: number) {
const { data } = await axios.get<BangumiItem>(
`api/v1/bangumi/getData/${bangumiId}`
);
return data;
},
/**
* 更新指定 bangumiId 的数据
* @param bangumiData - 需要更新的数据
* @returns axios 请求返回的数据
*/
async updateData(bangumiData: BangumiItem) {
const { data } = await axios.post('api/v1/bangumi/updateData', bangumiData);
return data;
},
/**
* 删除指定 bangumiId 的数据
* @param bangumiId - 需要删除的 bangumi 的 id
* @returns axios 请求返回的数据
*/
async deleteData(bangumiId: number) {
const { data } = await axios.delete(
`api/v1/bangumi/deleteData/${bangumiId}`
);
return data;
},
/**
* 删除指定 bangumiId 的规则。如果 file 为 true则同时删除关联文件。
* @param bangumiId - 需要删除规则的 bangumi 的 id。
* @param file - 是否同时删除关联文件。
* @returns axios 请求返回的数据
*/
async deleteRule(bangumiId: number, file: boolean) {
const { data } = await axios.delete(
`api/v1/bangumi/deleteRule/${bangumiId}`,
{
params: {
file,
},
}
);
return data;
},
/**
* 重置所有 bangumi 数据
*/
async resetAll() {
const { data } = await axios.post('api/v1/bangumi/resetAll');
return data;
},
};

27
src/api/check.ts Normal file
View File

@@ -0,0 +1,27 @@
import axios from 'axios';
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;
},
};

View File

@@ -1,15 +1,24 @@
import axios from 'axios';
import type { Config } from '#/config';
export async function setConfig(newConfig: Config) {
const { data } = await axios.post<{
message: 'Success' | 'Failed to update config';
}>('api/v1/updateConfig', newConfig);
export const apiConfig = {
/**
* 获取 config 数据
*/
async getConfig() {
const { data } = await axios.get<Config>('api/v1/getConfig');
return data;
},
return data.message === 'Success';
}
/**
* 更新 config 数据
* @param newConfig - 需要更新的 config
*/
async updateConfig(newConfig: Config) {
const { data } = await axios.post<{
message: 'Success' | 'Failed to update config';
}>('api/v1/updateConfig', newConfig);
export async function getConfig() {
const { data } = await axios.get<Config>('api/v1/getConfig');
return data;
}
return data.message === 'Success';
},
};

View File

@@ -1,15 +0,0 @@
import axios from 'axios';
/**
* 获取AB的日志
*/
async function getABLog() {
const { data } = await axios.get('api/v1/log');
return data;
}
/**
* 重置 AB 的数据,程序会在下一轮检索中重新添加 RSS 订阅信息。
*/
const resetRule = () => axios.get('api/v1/resetRule');
export { getABLog, resetRule };

43
src/api/download.ts Normal file
View File

@@ -0,0 +1,43 @@
import axios from 'axios';
import type { BangumiItem } from '#/bangumi';
type Status = {
status: 'Success' | 'Failed to parse link';
};
export const apiDownload = {
/**
* 解析 RSS 链接
* @param rss_link - RSS 链接
*/
async analysis(rss_link: string) {
const { data } = await axios.post<BangumiItem>('api/v1/download/analysis', {
rss_link,
});
return data;
},
/**
* 旧番
* @param bangumiData - Bangumi 数据
*/
async collection(bangumiData: BangumiItem) {
const { data } = await axios.post<Status>(
'api/v1/download/collection',
bangumiData
);
return data.status === 'Success';
},
/**
* 新番
* @param bangumiData - Bangumi 数据
*/
async subscribe(bangumiData: BangumiItem) {
const { data } = await axios.post<Status>(
'api/v1/download/subscribe',
bangumiData
);
return data.status === 'Success';
},
};

8
src/api/log.ts Normal file
View File

@@ -0,0 +1,8 @@
import axios from 'axios';
export const apiLog = {
async getLog() {
const { data } = await axios.get('api/v1/log');
return data;
},
};

View File

@@ -1,21 +1,49 @@
import axios from 'axios';
/** 重启 */
export async function appRestart() {
const { data } = await axios.get<{ status: 'ok' }>('api/v1/restart');
return data.status === 'ok';
}
type Success = {
status: 'ok';
};
/** 启动 */
export const appStart = () => axios.get('api/v1/start');
export const apiProgram = {
/**
* 重启
*/
async restart() {
const { data } = await axios.get<Success>('api/v1/restart');
return data.status === 'ok';
},
/** 停止 */
export const appStop = () => axios.get('api/v1/stop');
/**
* 启动
*/
async start() {
const { data } = await axios.get<Success>('api/v1/start');
return data.status === 'ok';
},
/** 状态 */
export async function appStatus() {
const { data } = await axios.get<{ status: 'stop' | 'running' }>(
'api/v1/status'
);
return data.status !== 'stop';
}
/**
* 停止
*/
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';
},
};