2021-03-25 14:22:43 +00:00
|
|
|
import BaseApi from "./base";
|
|
|
|
|
|
|
|
class EpisodeApi extends BaseApi {
|
|
|
|
constructor() {
|
|
|
|
super("/episodes");
|
|
|
|
}
|
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
async bySeriesId(seriesid: number[]): Promise<Item.Episode[]> {
|
|
|
|
return new Promise<Item.Episode[]>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<Item.Episode[]>>("", { seriesid })
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
async byEpisodeId(episodeid: number[]): Promise<Item.Episode[]> {
|
|
|
|
return new Promise<Item.Episode[]>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<Item.Episode[]>>("", { episodeid })
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((result) => {
|
2021-05-08 14:25:29 +00:00
|
|
|
resolve(result.data.data);
|
2021-03-25 14:22:43 +00:00
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
async wanted(params: Parameter.Range) {
|
2021-03-25 14:22:43 +00:00
|
|
|
return new Promise<AsyncDataWrapper<Wanted.Episode>>((resolve, reject) => {
|
2021-08-14 12:59:08 +00:00
|
|
|
this.get<AsyncDataWrapper<Wanted.Episode>>("/wanted", params)
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-05-08 14:25:29 +00:00
|
|
|
async wantedBy(episodeid: number[]) {
|
|
|
|
return new Promise<AsyncDataWrapper<Wanted.Episode>>((resolve, reject) => {
|
|
|
|
this.get<AsyncDataWrapper<Wanted.Episode>>("/wanted", { episodeid })
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((result) => {
|
2021-05-08 14:25:29 +00:00
|
|
|
resolve(result.data);
|
2021-03-25 14:22:43 +00:00
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-08-17 14:27:33 +00:00
|
|
|
async history(params: Parameter.Range) {
|
|
|
|
const response = await this.get<AsyncDataWrapper<History.Episode>>(
|
|
|
|
"/history",
|
|
|
|
params
|
|
|
|
);
|
|
|
|
return response.data;
|
|
|
|
}
|
|
|
|
|
|
|
|
async historyBy(episodeid: number) {
|
|
|
|
const response = await this.get<AsyncDataWrapper<History.Episode>>(
|
|
|
|
"/history",
|
|
|
|
{ episodeid }
|
|
|
|
);
|
|
|
|
return response.data;
|
2021-03-25 14:22:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
async downloadSubtitles(
|
|
|
|
seriesid: number,
|
|
|
|
episodeid: number,
|
|
|
|
form: FormType.Subtitle
|
|
|
|
): Promise<void> {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.patch("/subtitles", form, { seriesid, episodeid })
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async uploadSubtitles(
|
|
|
|
seriesid: number,
|
|
|
|
episodeid: number,
|
|
|
|
form: FormType.UploadSubtitle
|
|
|
|
): Promise<void> {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.post("/subtitles", form, { seriesid, episodeid })
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async deleteSubtitles(
|
|
|
|
seriesid: number,
|
|
|
|
episodeid: number,
|
|
|
|
form: FormType.DeleteSubtitle
|
|
|
|
): Promise<void> {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.delete("/subtitles", form, { seriesid, episodeid })
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
async blacklist(): Promise<Blacklist.Episode[]> {
|
|
|
|
return new Promise<Blacklist.Episode[]>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<Blacklist.Episode[]>>("/blacklist")
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((res) => {
|
|
|
|
resolve(res.data.data);
|
|
|
|
})
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async addBlacklist(
|
|
|
|
seriesid: number,
|
|
|
|
episodeid: number,
|
|
|
|
form: FormType.AddBlacklist
|
|
|
|
): Promise<void> {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
this.post<void>("/blacklist", form, { seriesid, episodeid })
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async deleteBlacklist(
|
|
|
|
all?: boolean,
|
|
|
|
form?: FormType.DeleteBlacklist
|
|
|
|
): Promise<void> {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
this.delete<void>("/blacklist", form, { all })
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default new EpisodeApi();
|