Skip to content

Commit

Permalink
Updated KASS
Browse files Browse the repository at this point in the history
  • Loading branch information
Eltik committed Aug 31, 2023
1 parent 54e36a8 commit 1bcde46
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 61 deletions.
11 changes: 0 additions & 11 deletions anify-backend/jest.config.ts

This file was deleted.

2 changes: 1 addition & 1 deletion anify-backend/src/database/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { randomUUID } from "crypto";
import { Anime, Format, Genres, Manga, Type } from "../mapping";
import cluster from "cluster";
import { info, media, prisma, recent, search, searchAdvanced, seasonal as seasonalPostgres, } from "./postgresql";
import { info, media, prisma, recent, search, searchAdvanced, seasonal as seasonalPostgres } from "./postgresql";

export default class Database {
private static type = "postgresql";
Expand Down
36 changes: 24 additions & 12 deletions anify-backend/src/mapping/impl/anime/animeflix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@ export default class AnimeFlix extends AnimeProvider {
}

override async search(query: string, format?: Format, year?: number): Promise<Result[] | undefined> {
const request = await this.request(`${this.api}/info?query=${encodeURIComponent(query)}&limit=20`, {
headers: {
"User-Agent": this.userAgent,
const request = await this.request(
`${this.api}/info?query=${encodeURIComponent(query)}&limit=20`,
{
headers: {
"User-Agent": this.userAgent,
},
},
}, true);
true
);
if (!request.ok) {
return [];
}
Expand All @@ -54,16 +58,24 @@ export default class AnimeFlix extends AnimeProvider {
const hash = this.generateHash(id);

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

if (!dataResponse.ok || !dubResponse.ok) {
Expand Down
42 changes: 23 additions & 19 deletions anify-backend/src/mapping/impl/anime/kass.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,25 @@ export default class Kass extends AnimeProvider {
}

override get headers(): Record<string, string> | undefined {
return undefined;
return { Origin: "https://vidnethub.net" };
}

override async search(query: string, format?: Format, year?: number): Promise<Result[] | undefined> {
const request = await this.request(`${this.url}/api/search`, {
method: "POST",
body: JSON.stringify({
query,
}),
headers: {
"Content-type": "application/json",
Referer: `${this.url}/`,
Origin: this.url,
const request = await this.request(
`${this.url}/api/search`,
{
method: "POST",
body: JSON.stringify({
query,
}),
headers: {
"Content-type": "application/json",
Referer: `${this.url}/`,
Origin: this.url,
},
},
});
true
);

if (!request.ok) {
return [];
Expand Down Expand Up @@ -56,7 +60,7 @@ export default class Kass extends AnimeProvider {
const episodeJSONs: { sub?: Episodes; dub?: Episodes } = { dub: undefined, sub: undefined };

try {
episodeJSONs.sub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=ja-JP`)).json();
episodeJSONs.sub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=ja-JP`, {}, true)).json();

try {
const promises: Promise<Response>[] = [];
Expand All @@ -66,7 +70,7 @@ export default class Kass extends AnimeProvider {
continue;
}

promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=ja-JP&page=${episodeJSONs["sub"]?.pages[i].number}`));
promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=ja-JP&page=${episodeJSONs["sub"]?.pages[i].number}`, {}, true));
}

const results = await Promise.all(promises);
Expand All @@ -83,7 +87,7 @@ export default class Kass extends AnimeProvider {
console.warn(err);
}
} catch (err) {
episodeJSONs.dub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=en-US`)).json();
episodeJSONs.dub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=en-US`, {}, true)).json();

try {
const promises: Promise<Response>[] = [];
Expand All @@ -93,7 +97,7 @@ export default class Kass extends AnimeProvider {
continue;
}

promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=en-US&page=${episodeJSONs["dub"]?.pages[i].number}`));
promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=en-US&page=${episodeJSONs["dub"]?.pages[i].number}`, {}, true));
}

const results = await Promise.all(promises);
Expand All @@ -112,7 +116,7 @@ export default class Kass extends AnimeProvider {
}

if (!episodeJSONs.dub) {
episodeJSONs.dub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=en-US`)).json();
episodeJSONs.dub = await (await this.request(`${this.url}/api/show/${id}/episodes?lang=en-US`, {}, true)).json();

try {
const promises: Promise<Response>[] = [];
Expand All @@ -122,7 +126,7 @@ export default class Kass extends AnimeProvider {
continue;
}

promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=en-US&page=${episodeJSONs["dub"]?.pages[i].number}`));
promises.push(this.request(`${this.url}/api/show/${id}/episodes?lang=en-US&page=${episodeJSONs["dub"]?.pages[i].number}`, {}, true));
}

const results = await Promise.all(promises);
Expand Down Expand Up @@ -201,7 +205,7 @@ export default class Kass extends AnimeProvider {
return episodes;
}

override async fetchSources(id: string, subType: SubType | undefined, server: StreamingServers = StreamingServers.DuckStream): Promise<Source | undefined> {
override async fetchSources(id: string, subType: SubType | undefined, server: StreamingServers = StreamingServers.BirdStream): Promise<Source | undefined> {
const source: Source = {
sources: [],
subtitles: [],
Expand Down Expand Up @@ -259,7 +263,7 @@ export default class Kass extends AnimeProvider {

for (const type in links) {
const slug = links[type];
const videoJSON = await (await this.request(`${this.url}/api/show/${id}/episode/${slug}`)).json();
const videoJSON = await (await this.request(`${this.url}/api/show/${id}/episode/${slug}`, {}, true)).json();
const servers = videoJSON.servers;

for (const s of servers) {
Expand Down
36 changes: 20 additions & 16 deletions anify-backend/src/mapping/impl/anime/nineanime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -207,37 +207,41 @@ export default class NineAnime extends AnimeProvider {
}

private async getVRF(query: string): Promise<VRF> {
if (!this.resolver) return {
url: query,
vrfQuery: "vrf",
}
if (!this.resolver)
return {
url: query,
vrfQuery: "vrf",
};

return await (await this.request(`${this.resolver}/vrf?query=${encodeURIComponent(query)}&apikey=${this.resolverKey}`, {})).json();
}

public async getSearchVRF(query: string): Promise<VRF> {
if (!this.resolver) return {
url: query,
vrfQuery: "vrf",
}
if (!this.resolver)
return {
url: query,
vrfQuery: "vrf",
};

return await (await this.request(`${this.resolver}/9anime-search?query=${encodeURIComponent(query)}&apikey=${this.resolverKey}`, {})).json();
}

private async getRawVRF(query: string): Promise<VRF> {
if (!this.resolver) return {
url: query,
vrfQuery: "vrf",
}
if (!this.resolver)
return {
url: query,
vrfQuery: "vrf",
};

return await (await this.request(`${this.resolver}/rawVrf?query=${encodeURIComponent(query)}&apikey=${this.resolverKey}`, {})).json();
}

private async decodeURL(query: string): Promise<VRF> {
if (!this.resolver) return {
url: query,
vrfQuery: "vrf",
}
if (!this.resolver)
return {
url: query,
vrfQuery: "vrf",
};

return await (await this.request(`${this.resolver}/decrypt?query=${encodeURIComponent(query)}&apikey=${this.resolverKey}`, {})).json();
}
Expand Down
4 changes: 2 additions & 2 deletions anify-backend/src/mapping/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ import TVDB from "./impl/information/tvdb";
import SimklMeta from "./impl/meta/simkl";
import Simkl from "./impl/information/simkl";
import ColoredManga from "./impl/manga/coloredmanga";
import AnimeFlix from "./impl/anime/animeflix";
import Kass from "./impl/anime/kass";

const ANIME_PROVIDERS: AnimeProvider[] = [new NineAnime(), new GogoAnime(), new Zoro(), new AnimePahe()];
const ANIME_PROVIDERS: AnimeProvider[] = [new NineAnime(), new GogoAnime(), new Zoro(), new AnimePahe(), new Kass()];
const animeProviders: Record<string, AnimeProvider> = ANIME_PROVIDERS.reduce((acc, provider) => {
acc[provider.id] = provider;
return acc;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,9 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
for (let i = 0; i < sources?.sources.length; i++) {
if (sources.headers && Object.keys(sources.headers).length > 0) {
Object.assign(sources.sources[i] ?? {}, { url: `${String(env.M3U8_PROXY)}/proxy/m3u8/${encodeURIComponent(String(sources.sources[i]?.url))}/${encodeURIComponent(JSON.stringify(sources.headers))}` })
//Object.assign(sources.sources[i] ?? {}, { url: `https://proxy.anistreme.live/proxy/m3u8/https%3A%2F%2Fvidstream.vidnethub.net%2Fmanifest%2F64a5b12944c6d04c129d45d5%2Fmaster.m3u8/%7B%22Origin%22%3A%22https%3A%2F%2Fvidnethub.net%22%7D` });

//console.log(`${String(env.M3U8_PROXY)}/proxy/m3u8/${encodeURIComponent(String(sources.sources[i]?.url))}/${encodeURIComponent(JSON.stringify(sources.headers))}`)
}
}

Expand Down

0 comments on commit 1bcde46

Please sign in to comment.