Skip to content

Commit

Permalink
Removed AnimeFlix [TEMP]
Browse files Browse the repository at this point in the history
  • Loading branch information
Eltik committed Aug 28, 2023
1 parent 9a28f99 commit 3d51710
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 14 deletions.
1 change: 0 additions & 1 deletion anify-backend/src/lib/upload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ export const uploadPages = async (data: { id: string; providerId: string; chapte
clearInterval(interval);
return;
} else {
if (threshold >= maxThreshold) console.warn(colors.yellow("WARNING: ") + colors.blue(`Mixdrop upload for ${data.chapter.title} is taking too long.`));
if (threshold >= maxThreshold + 5) {
console.error(colors.red("ERROR: ") + colors.blue(`Mixdrop upload for ${data.chapter.title} is taking too long.`));
await unlink(pdfPath);
Expand Down
47 changes: 35 additions & 12 deletions anify-backend/src/mapping/impl/anime/animeflix.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import AnimeProvider, { Episode, Source, StreamingServers, SubType } from ".";
import { Format, Result } from "../..";
import Extractor from "@/src/helper/extractor";
import * as crypto from "crypto";

export default class AnimeFlix extends AnimeProvider {
override rateLimit = 250;
override id = "animeflix";
override url = "https://animeflix.live";

private api = "https://api.animeflix.live";
private userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.171 Safari/537.36";
private userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.111 Safari/537.36";

override formats: Format[] = [Format.MOVIE, Format.ONA, Format.OVA, Format.SPECIAL, Format.TV, Format.TV_SHORT];

Expand All @@ -27,7 +28,7 @@ export default class AnimeFlix extends AnimeProvider {
headers: {
"User-Agent": this.userAgent,
},
});
}, true);
if (!request.ok) {
return [];
}
Expand All @@ -46,22 +47,29 @@ export default class AnimeFlix extends AnimeProvider {
}

override async fetchEpisodes(id: string): Promise<Episode[] | undefined> {
const queryParams = new URLSearchParams({
id,
dub: "false",
// /getslug/fuufu-ijou-koibito-miman
// /idtoinfo?ids=[]
// /episodes?id=fuufu-ijou-koibito-miman&dub=false&a=j43o4d4d3o4d1j4142474d1j4347413k414c471j4541453j46

const hash = this.generateRandomStringWithSameLength("j43o4d4d3o4d1j4142474d1j4347413k414c471j4541453j46");

const test = await this.request(`${this.api}/episodes?id=${id}&dub=false&a=${hash}`, {
headers: {
"User-Agent": this.userAgent
},
});

const [dataResponse, dubResponse] = await Promise.all([
this.request(`${this.api}/episodes?${queryParams}&dub=false`, {
this.request(`${this.api}/episodes?id=${id}&dub=false&a=${hash}`, {
headers: {
"User-Agent": this.userAgent,
"User-Agent": this.userAgent
},
}),
this.request(`${this.api}/episodes?${queryParams}&dub=true`, {
}, true),
this.request(`${this.api}/episodes?id=${id}&dub=true&a=${hash}`, {
headers: {
"User-Agent": this.userAgent,
"User-Agent": this.userAgent
},
}),
}, true),
]);

if (!dataResponse.ok || !dubResponse.ok) {
Expand All @@ -70,6 +78,8 @@ export default class AnimeFlix extends AnimeProvider {

const [data, dubData] = await Promise.all([dataResponse.json(), dubResponse.json()]);

console.log("yeah baby");

const dubNumbers = new Set((dubData?.episodes ?? []).map((dub) => dub.number));

const results: Episode[] = data.episodes.map((res) => ({
Expand Down Expand Up @@ -97,7 +107,7 @@ export default class AnimeFlix extends AnimeProvider {
"User-Agent": this.userAgent,
};

const response = await fetch(`${this.api}${id}`, { headers });
const response = await this.request(`${this.api}${id}`, { headers }, true);
const data = await response.json();

const result: Source = {
Expand All @@ -118,4 +128,17 @@ export default class AnimeFlix extends AnimeProvider {

return await new Extractor(data.source, result).extract(server);
}

private generateRandomStringWithSameLength(source: string): string {
const characters = "abcdefghijklmnopqrstuvwxyz0123456789";
let result = "";

for (let i = 0; i < source.length; i++) {
const randomIndex = Math.floor(Math.random() * characters.length);
result += characters[randomIndex];
}

return result;
}

}
2 changes: 1 addition & 1 deletion anify-backend/src/mapping/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import Simkl from "./impl/information/simkl";
import ColoredManga from "./impl/manga/coloredmanga";
import AnimeFlix from "./impl/anime/animeflix";

const ANIME_PROVIDERS: AnimeProvider[] = [new NineAnime(), new GogoAnime(), new Zoro(), new AnimePahe(), new AnimeFlix()];
const ANIME_PROVIDERS: AnimeProvider[] = [new NineAnime(), new GogoAnime(), new Zoro(), new AnimePahe()];
const animeProviders: Record<string, AnimeProvider> = ANIME_PROVIDERS.reduce((acc, provider) => {
acc[provider.id] = provider;
return acc;
Expand Down

0 comments on commit 3d51710

Please sign in to comment.