Merge pull request #180 from Ftbom/main

fix 77mh and mikan && add gfmanhua
This commit is contained in:
Moustapha Kodjo Amadou
2025-03-07 15:24:34 +01:00
committed by GitHub
4 changed files with 1841 additions and 264 deletions

View File

@@ -1,13 +1,13 @@
const mangayomiSources = [{ const mangayomiSources = [{
"name": "蜜柑计划", "name": "蜜柑计划",
"lang": "zh", "lang": "zh",
"baseUrl": "https://mikanime.tv", "baseUrl": "https://mikanani.me",
"apiUrl": "", "apiUrl": "",
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.mikan.png", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.mikan.png",
"typeSource": "torrent", "typeSource": "torrent",
"itemType": 1, "itemType": 1,
"isNsfw": false, "isNsfw": false,
"version": "0.0.2", "version": "0.0.25",
"dateFormat": "", "dateFormat": "",
"dateFormatLocale": "", "dateFormatLocale": "",
"pkgPath": "anime/src/zh/mikan.js" "pkgPath": "anime/src/zh/mikan.js"
@@ -24,6 +24,15 @@ class DefaultExtension extends MProvider {
return timestamp; return timestamp;
} }
baseURL () {
const preference = new SharedPreferences();
var base_url = preference.get("domain_url");
if (base_url.endsWith("/")) {
base_url = base_url.slice(0, -1);
}
return base_url;
}
getHeaders(url) { getHeaders(url) {
throw new Error("getHeaders not implemented"); throw new Error("getHeaders not implemented");
} }
@@ -32,11 +41,11 @@ class DefaultExtension extends MProvider {
var res; var res;
const identity = new SharedPreferences().get("cookies"); const identity = new SharedPreferences().get("cookies");
if ((cookies) && (identity.length > 0)) { if ((cookies) && (identity.length > 0)) {
res = await new Client().get(this.source.baseUrl + url, { res = await new Client().get(this.baseURL() + url, {
Cookie: `.AspNetCore.Identity.Application=${identity}` Cookie: `.AspNetCore.Identity.Application=${identity}`
}); });
} else { } else {
res = await new Client().get(this.source.baseUrl + url); res = await new Client().get(this.baseURL() + url);
} }
const doc = new Document(res.body); const doc = new Document(res.body);
const items = []; const items = [];
@@ -47,7 +56,7 @@ class DefaultExtension extends MProvider {
continue; continue;
} }
const title = element.selectFirst("a").attr("title"); const title = element.selectFirst("a").attr("title");
const cover = this.source.baseUrl + element.selectFirst("img").attr("data-src"); const cover = this.baseURL() + element.selectFirst("img").attr("data-src");
items.push({ items.push({
name: title, name: title,
imageUrl: cover, imageUrl: cover,
@@ -69,13 +78,13 @@ class DefaultExtension extends MProvider {
} }
async search(query, page, filters) { async search(query, page, filters) {
const res = await new Client().get(this.source.baseUrl + `/Home/Search?searchstr=${query}`); const res = await new Client().get(this.baseURL() + `/Home/Search?searchstr=${query}`);
const doc = new Document(res.body); const doc = new Document(res.body);
const items = []; const items = [];
const elements = doc.select("div.central-container ul.list-inline li"); const elements = doc.select("div.central-container ul.list-inline li");
for (const element of elements) { for (const element of elements) {
const title = element.selectFirst("div.an-text").text; const title = element.selectFirst("div.an-text").text;
const cover = this.source.baseUrl + element.selectFirst("span").attr("data-src"); const cover = this.baseURL() + element.selectFirst("span").attr("data-src");
const url = element.selectFirst("a").attr("href"); const url = element.selectFirst("a").attr("href");
items.push({ items.push({
name: title, name: title,
@@ -90,9 +99,9 @@ class DefaultExtension extends MProvider {
} }
async getDetail(url) { async getDetail(url) {
const res = await new Client().get(this.source.baseUrl + url); const res = await new Client().get(this.baseURL() + url);
const doc = new Document(res.body); const doc = new Document(res.body);
const cover = this.source.baseUrl + doc.selectFirst("div.content img").attr("src"); const cover = this.baseURL() + doc.selectFirst("div.content img").attr("src");
const title = doc.selectFirst("p.title").text; const title = doc.selectFirst("p.title").text;
const desc = doc.selectFirst("div.info").text; const desc = doc.selectFirst("div.info").text;
const eps = []; const eps = [];
@@ -101,7 +110,7 @@ class DefaultExtension extends MProvider {
//const header = list.selectFirst("span.title").text; //const header = list.selectFirst("span.title").text;
for (const item of list.select("div.m-bangumi-item")) { for (const item of list.select("div.m-bangumi-item")) {
const title = item.selectFirst("div.text").text; const title = item.selectFirst("div.text").text;
const url = this.source.baseUrl + item.selectFirst("div.right a").attr("href"); const url = this.baseURL() + item.selectFirst("div.right a").attr("href");
const date = this.dateStringToTimestamp(item.selectFirst("div.date").text.split(" ")[0]); const date = this.dateStringToTimestamp(item.selectFirst("div.date").text.split(" ")[0]);
eps.push({ eps.push({
name: title, name: title,
@@ -110,7 +119,7 @@ class DefaultExtension extends MProvider {
}); });
} }
} }
eps.reverse(); //eps.reverse();
return { return {
name: title, name: title,
imageUrl: cover, imageUrl: cover,
@@ -126,6 +135,15 @@ class DefaultExtension extends MProvider {
getSourcePreferences() { getSourcePreferences() {
return [{ return [{
"key": "domain_url",
"editTextPreference": {
"title": "Url",
"summary": "蜜柑计划网址",
"value": "https://mikanani.me",
"dialogTitle": "URL",
"dialogMessage": "",
}
},{
"key": "cookies", "key": "cookies",
"editTextPreference": { "editTextPreference": {
"title": "用户Cookies在webview中登陆则可不设", "title": "用户Cookies在webview中登陆则可不设",

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

View File

@@ -1,20 +1,20 @@
const mangayomiSources = [{ const mangayomiSources = [{
"name": "新新漫画", "name": "新新漫画",
"lang": "zh", "lang": "zh",
"baseUrl": "https://www.77mh.nl", "baseUrl": "http://www.77mh.xyz",
"apiUrl": "", "apiUrl": "",
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.77mh.png", "iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.77mh.png",
"typeSource": "single", "typeSource": "single",
"itemType": 0, "itemType": 0,
"isNsfw": false, "isNsfw": false,
"version": "0.0.25", "version": "0.0.3",
"apiUrl": "", "apiUrl": "",
"dateFormat": "", "dateFormat": "",
"dateFormatLocale": "", "dateFormatLocale": "",
"pkgName": "manga/src/zh/77mh.js" "pkgName": "manga/src/zh/77mh.js"
}]; }];
class DefaultExtension extends MProvider { class DefaultExtension extends MProvider {
StringResolve1(p, a, c, k, e, d) { StringResolve1(p, a, c, k, e, d) {
e = function(c) { e = function(c) {
return c.toString(36) return c.toString(36)
@@ -92,7 +92,7 @@ class DefaultExtension extends MProvider {
const mangas = []; const mangas = [];
for (const element of elements) { for (const element of elements) {
const title = element.selectFirst("h1 a").text.replace("<em>", "").replace("</em>", ""); const title = element.selectFirst("h1 a").text.replace("<em>", "").replace("</em>", "");
const url = element.selectFirst("h1 a").attr("href"); const url = "/" + element.selectFirst("h1 a").attr("href").split("/").slice(-1)[0];
const cover = element.selectFirst("img").attr("src"); const cover = element.selectFirst("img").attr("src");
mangas.push({ mangas.push({
name: title, name: title,
@@ -251,8 +251,8 @@ class DefaultExtension extends MProvider {
"summary": "", "summary": "",
"valueIndex": 0, "valueIndex": 0,
"entries": ["服务器1", "服务器2"], "entries": ["服务器1", "服务器2"],
"entryValues": ["https://picsh.77dm.top", "https://imgsh.dm365.top"], "entryValues": ["https://picsh.77dm.top", "https://imgsh.dm365.top", "https://hws.gdbyhtl.net"],
} }
}]; }];
} }
} }

File diff suppressed because it is too large Load Diff