mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-13 13:09:43 +08:00
apis
This commit is contained in:
@@ -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
27
src/api/check.ts
Normal 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;
|
||||
},
|
||||
};
|
||||
@@ -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';
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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
43
src/api/download.ts
Normal 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
8
src/api/log.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import axios from 'axios';
|
||||
|
||||
export const apiLog = {
|
||||
async getLog() {
|
||||
const { data } = await axios.get('api/v1/log');
|
||||
return data;
|
||||
},
|
||||
};
|
||||
@@ -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';
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user