Skip to content

Commit

Permalink
FIX : AllAnimeSite : fixes and improvements (#5919)
Browse files Browse the repository at this point in the history
* AllAnimeSite : update PersistentQueries hashes

Fixes #5917

* Allanimesite2: decode video url

* Allanimesite: support more video hosters

* Update Allanimesite2.mjs

* Update Allanimesite2.mjs

* AllAnime : fix particular manga slug

* Update Allanimesite2.mjs

* fix lint
  • Loading branch information
MikeZeDev authored Oct 3, 2023
1 parent 5e7f7af commit eb3c211
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/web/mjs/connectors/Allanimesite.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export default class Allanimesite extends Connector {
const jsonExtensions = {
persistedQuery : {
version : 1,
sha256Hash : "edbe1fb23e711aa2bf493874a2d656a5438fe9b0b3a549c4b8a831cc2e929bae"
sha256Hash : "a27e57ef5de5bae714db701fb7b5cf57e13d57938fc6256f7d5c70a975d11f3d"
}
};

Expand Down
68 changes: 52 additions & 16 deletions src/web/mjs/connectors/Allanimesite2.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Allanimesite from './Allanimesite.mjs';
import Manga from '../engine/Manga.mjs';
import FileMoon from '../videostreams/FileMoon.mjs';
import StreamSB from '../videostreams/StreamSB.mjs';

export default class Allanimesite2 extends Allanimesite {
constructor() {
Expand Down Expand Up @@ -38,7 +40,7 @@ export default class Allanimesite2 extends Allanimesite {
const jsonExtensions = {
persistedQuery : {
version : 1,
sha256Hash : "b645a686b1988327795e1203867ed24f27c6338b41e5e3412fc1478a8ab6774e"
sha256Hash : "06327bc10dd682e1ee7e07b6db9c16e9ad2fd56c1b769e47513128cd5c9fc77a"
}
};

Expand All @@ -48,20 +50,23 @@ export default class Allanimesite2 extends Allanimesite {
const data = await this.fetchJSON(request);
if (!data.data) return [];
return data.data.shows.edges.map(element => {
let id = '/anime/'+element._id+'/'+element.name.replace(/[^a-zA-Z0-9]+/g, '-').toLowerCase();
id += element.slugTime ? '-st-'+element.slugTime : '';
return {
id: '/anime/'+element._id,
id: id,
title: element.englishName ? element.englishName : element.name,
};
});
}
async _getChapters(manga) {
const request = new Request(new URL(manga.id, this.url), this.requestOptions);
let request = new Request(new URL(manga.id, this.url), this.requestOptions);
let script = `
new Promise(resolve => {
resolve(__NUXT__);
});
`;
let data = await Engine.Request.fetchUI(request, script);

let chapterlist = [];
const mangaid = manga.id.replace('/anime/', '/watch/');
let subchapters = data.fetch['anime:0'].show.availableEpisodesDetail.sub;
Expand Down Expand Up @@ -91,26 +96,57 @@ export default class Allanimesite2 extends Allanimesite {
return chapterlist;
}
async _getPages(chapter) {
const validSources = ['Default', 'Luf-hls', 'Luf-mp4', 'Fm-Hls', 'Ss-Hls'];
let request = new Request(new URL(chapter.id, this.url), this.requestOptions);
const script = `
new Promise(resolve => {
resolve(__NUXT__);
});
`;
let data = await Engine.Request.fetchUI(request, script);
const sourcesArray = data.fetch['episode:0'].episodeSelections;
const goodSource = sourcesArray.find(source => source.sourceName == 'Default');
if (!goodSource) throw new Error('No Default source found ! Hakuneko supports only default video source.');
let uri = new URL(goodSource.sourceUrl.replace('clock', 'clock.json'), 'https://blog.allanime.pro');
request = new Request(uri, this.requestOptions);
data = await this.fetchJSON(request);
let stream = [];
let link = data.links[0];
if (link.hls) {
stream = { mirrors: [ link.link ], subtitles: [], referer : 'https://blog.allanime.pro'};
} else {
stream = {video: [ link.link ], subtitles: []};
let sourcesArray = data.fetch['episode:0'].episodeSelections;
sourcesArray = sourcesArray.sort(function (a, b) {
return b.priority - a.priority;
});
const goodSource = sourcesArray.find(source => validSources.includes(source.sourceName));
if (!goodSource) throw new Error('No source found ! Hakuneko supports only some video source.');

switch (goodSource.sourceName.toLowerCase()) {
case 'fm-hls': { //FileMoon
let fMoon = new FileMoon(goodSource.sourceUrl);
let playlist = await fMoon.getPlaylist();
return {
hash: 'id,language,resolution',
mirrors: [ playlist ],
subtitles: []
};
}
case 'ss-hls': {//StreamSB
const SB = new StreamSB(goodSource.sourceUrl);
let playlist = await SB.getStream();
return {
hash: 'id,language,resolution',
mirrors: [ playlist ],
subtitles: []
};
}
default: { //"Default, Luf-hls, Luf-mp4"
let decodedurl = goodSource.sourceUrl.replace('#', '');
decodedurl = decodedurl.split(/(\w\w)/g).filter(p => !!p).map(c => String.fromCharCode(parseInt(c, 16))).join("");

let uri = new URL(decodedurl.replace('clock', 'clock.json'), 'https://blog.allanime.pro');
request = new Request(uri, this.requestOptions);
data = await this.fetchJSON(request);
let stream = [];
let link = data.links.pop();
if (link.hls) {
stream = { mirrors: [ link.link ], subtitles: [], referer : 'https://blog.allanime.pro'};
} else {
stream = {video: [ link.link ], subtitles: []};
}
return stream;
}
}
return stream;

}
}

0 comments on commit eb3c211

Please sign in to comment.