add gfmanhua && fix mikan

This commit is contained in:
Ftbom
2025-03-07 19:24:17 +08:00
committed by GitHub
parent 73c24a1836
commit b75943ddb7
3 changed files with 1588 additions and 11 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

File diff suppressed because it is too large Load Diff