mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
extension(animez): Added anime details
This commit is contained in:
@@ -6,7 +6,7 @@ const mangayomiSources = [{
|
|||||||
"iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://animez.org/",
|
"iconUrl": "https://www.google.com/s2/favicons?sz=256&domain=https://animez.org/",
|
||||||
"typeSource": "multi",
|
"typeSource": "multi",
|
||||||
"itemType": 1,
|
"itemType": 1,
|
||||||
"version": "0.0.1",
|
"version": "0.0.2",
|
||||||
"pkgPath": "anime/src/en/animez.js"
|
"pkgPath": "anime/src/en/animez.js"
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ class DefaultExtension extends MProvider {
|
|||||||
animes.forEach(anime => {
|
animes.forEach(anime => {
|
||||||
var link = anime.selectFirst("a").getHref
|
var link = anime.selectFirst("a").getHref
|
||||||
var name = anime.selectFirst('h2.Title').text;
|
var name = anime.selectFirst('h2.Title').text;
|
||||||
var imageUrl = this.source.baseUrl + anime.selectFirst('img').getSrc;
|
var imageUrl = this.source.baseUrl +"/"+ anime.selectFirst('img').getSrc;
|
||||||
|
|
||||||
list.push({ name, link, imageUrl });
|
list.push({ name, link, imageUrl });
|
||||||
});
|
});
|
||||||
@@ -51,46 +51,46 @@ class DefaultExtension extends MProvider {
|
|||||||
return { list, hasNextPage }
|
return { list, hasNextPage }
|
||||||
}
|
}
|
||||||
|
|
||||||
sortByPref(key){
|
sortByPref(key) {
|
||||||
var sort = parseInt(this.getPreference(key))
|
var sort = parseInt(this.getPreference(key))
|
||||||
var sortBy = "hot"
|
var sortBy = "hot"
|
||||||
switch(sort){
|
switch (sort) {
|
||||||
case 1:{
|
case 1: {
|
||||||
sortBy = "lastest-chap"
|
sortBy = "lastest-chap"
|
||||||
break;
|
break;
|
||||||
}case 2:{
|
} case 2: {
|
||||||
sortBy = "hot"
|
sortBy = "hot"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 3:{
|
case 3: {
|
||||||
sortBy = "lastest-manga"
|
sortBy = "lastest-manga"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 4:{
|
case 4: {
|
||||||
sortBy = "top-manga"
|
sortBy = "top-manga"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 5:{
|
case 5: {
|
||||||
sortBy = "top-month"
|
sortBy = "top-month"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 6:{
|
case 6: {
|
||||||
sortBy = "top-week"
|
sortBy = "top-week"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 7:{
|
case 7: {
|
||||||
sortBy = "top-day"
|
sortBy = "top-day"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8:{
|
case 8: {
|
||||||
sortBy = "follow"
|
sortBy = "follow"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 9:{
|
case 9: {
|
||||||
sortBy = "comment"
|
sortBy = "comment"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 10:{
|
case 10: {
|
||||||
sortBy = "num-chap"
|
sortBy = "num-chap"
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -118,7 +118,77 @@ class DefaultExtension extends MProvider {
|
|||||||
return await this.page(slug)
|
return await this.page(slug)
|
||||||
}
|
}
|
||||||
async getDetail(url) {
|
async getDetail(url) {
|
||||||
throw new Error("getDetail not implemented");
|
var link = this.source.baseUrl + url;
|
||||||
|
var body = await this.request(url);
|
||||||
|
var name = body.selectFirst("#title-detail-manga").text
|
||||||
|
var animeId = body.selectFirst("#title-detail-manga").attr("data-manga")
|
||||||
|
var genre = []
|
||||||
|
body.select("li.AAIco-adjust")[3].select("a").forEach(g => genre.push(g.text))
|
||||||
|
var description = body.selectFirst("#summary_shortened").text
|
||||||
|
|
||||||
|
|
||||||
|
var chapters = []
|
||||||
|
var chapLen = 0
|
||||||
|
var pageNum = 1
|
||||||
|
var hasNextPage = true;
|
||||||
|
while(hasNextPage) {
|
||||||
|
var pageSlug = `?act=ajax&code=load_list_chapter&manga_id=${animeId}&page_num=${pageNum}&chap_id=0&keyword=`
|
||||||
|
var pageBody = await this.request(pageSlug);
|
||||||
|
var parsedBody = JSON.parse(pageBody.html);
|
||||||
|
var nav = parsedBody.nav
|
||||||
|
if(nav==null){ // if "nav" doesnt exists there is no next page
|
||||||
|
hasNextPage = false;
|
||||||
|
|
||||||
|
}else{
|
||||||
|
var navLi = new Document(nav).select(".page-link.next").length
|
||||||
|
if(navLi>0){ // if "nav" exists and has li.next then there is next page
|
||||||
|
pageNum++;
|
||||||
|
}else{// if "nav" exists and doesn't have li.next then there is no next page
|
||||||
|
hasNextPage = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var list_chap = new Document(parsedBody.list_chap).select('li.wp-manga-chapter')
|
||||||
|
|
||||||
|
list_chap.forEach(chapter => {
|
||||||
|
var a = chapter.selectFirst("a")
|
||||||
|
var title = a.text
|
||||||
|
var epLink = a.getHref
|
||||||
|
var scanlator = "Sub"
|
||||||
|
if(title.indexOf("Dub")>0){
|
||||||
|
title = title.replace("-Dub","")
|
||||||
|
scanlator = "Dub"
|
||||||
|
|
||||||
|
}
|
||||||
|
var epData = {
|
||||||
|
name:title,
|
||||||
|
url:epLink,
|
||||||
|
scanlator
|
||||||
|
}
|
||||||
|
if(chapLen>0){
|
||||||
|
var pos = chapLen -1
|
||||||
|
var lastEntry = chapters[pos]
|
||||||
|
if(lastEntry.name == epData.name){ // if last entries name is same then append url and scanlator to last entry
|
||||||
|
chapters.pop() // remove the last entry
|
||||||
|
epData.url = `${epData.url} || ${lastEntry.url}`
|
||||||
|
epData.scanlator = `${lastEntry.scanlator}, ${epData.scanlator}`
|
||||||
|
chapLen = pos; // since the last entry is removed the chapLen will decrease
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
chapters.push(epData)
|
||||||
|
chapLen++;
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
link,
|
||||||
|
description,
|
||||||
|
chapters,
|
||||||
|
genre,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
// For novel html content
|
// For novel html content
|
||||||
async getHtmlContent(url) {
|
async getHtmlContent(url) {
|
||||||
@@ -146,17 +216,17 @@ class DefaultExtension extends MProvider {
|
|||||||
title: 'Preferred popular content',
|
title: 'Preferred popular content',
|
||||||
summary: '',
|
summary: '',
|
||||||
valueIndex: 1,
|
valueIndex: 1,
|
||||||
entries: ["Latest update", "Hot", "New releases", "Top all","Top month","Top week","Top day","Top follow","Top comments","Number of episodes"],
|
entries: ["Latest update", "Hot", "New releases", "Top all", "Top month", "Top week", "Top day", "Top follow", "Top comments", "Number of episodes"],
|
||||||
entryValues: ["1", "2" ,"3", "4","5","6","7","8","9","10"]
|
entryValues: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
|
||||||
}
|
}
|
||||||
},{
|
}, {
|
||||||
key: 'animez_pref_latest_section',
|
key: 'animez_pref_latest_section',
|
||||||
listPreference: {
|
listPreference: {
|
||||||
title: 'Preferred latest content',
|
title: 'Preferred latest content',
|
||||||
summary: '',
|
summary: '',
|
||||||
valueIndex: 0,
|
valueIndex: 0,
|
||||||
entries: ["Latest update", "Hot", "New releases", "Top all","Top month","Top week","Top day","Top follow","Top comments","Number of episodes"],
|
entries: ["Latest update", "Hot", "New releases", "Top all", "Top month", "Top week", "Top day", "Top follow", "Top comments", "Number of episodes"],
|
||||||
entryValues: ["1", "2" ,"3", "4","5","6","7","8","9","10"]
|
entryValues: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
|
||||||
}
|
}
|
||||||
},]
|
},]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user