mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
add dmzj,copymanga,jmccomic
This commit is contained in:
360
javascript/manga/src/zh/dmzj.js
Normal file
360
javascript/manga/src/zh/dmzj.js
Normal file
@@ -0,0 +1,360 @@
|
||||
const mangayomiSources = [{
|
||||
"name": "动漫之家",
|
||||
"lang": "zh",
|
||||
"baseUrl": "https://www.dmzj.com",
|
||||
"apiUrl": "",
|
||||
"iconUrl": "https://www.dmzj.com/_nuxt/logo_dmzj.1c94014a.png",
|
||||
"typeSource": "single",
|
||||
"isManga": true,
|
||||
"isNsfw": false,
|
||||
"version": "0.0.1",
|
||||
"dateFormat": "",
|
||||
"dateFormatLocale": "manga/src/zh/dmzj.js",
|
||||
"pkgPath": ""
|
||||
}];
|
||||
|
||||
class DefaultExtension extends MProvider {
|
||||
getHeaders(url) {
|
||||
throw new Error("getHeaders not implemented");
|
||||
}
|
||||
async getManga(url) {
|
||||
const res = await new Client().get(url);
|
||||
const datas = JSON.parse(res.body);
|
||||
const mangas = [];
|
||||
for (const data of datas) {
|
||||
mangas.push({
|
||||
name: data["name"],
|
||||
imageUrl: "https://images.idmzj.com/" + data["cover"],
|
||||
link: data["comic_py"]
|
||||
});
|
||||
}
|
||||
return {
|
||||
list: mangas,
|
||||
hasNextPage: true
|
||||
};
|
||||
}
|
||||
async getPopular(page) {
|
||||
return await this.getManga(`https://m.idmzj.com/classify/0-0-0-0-0-${page-1}.json`);
|
||||
}
|
||||
async getLatestUpdates(page) {
|
||||
return await this.getManga(`https://m.idmzj.com/classify/0-0-0-0-1-${page-1}.json`);
|
||||
}
|
||||
async search(query, page, filters) {
|
||||
if (query == "") {
|
||||
var type, region, status, sort;
|
||||
for (const filter of filters) {
|
||||
if (filter["type"] == "type") {
|
||||
type = filter["values"][filter["state"]]["value"];
|
||||
}
|
||||
if (filter["type"] == "region") {
|
||||
region = filter["values"][filter["state"]]["value"];
|
||||
}
|
||||
if (filter["type"] == "status") {
|
||||
status = filter["values"][filter["state"]]["value"];
|
||||
}
|
||||
if (filter["type"] == "sort") {
|
||||
sort = filter["values"][filter["state"]]["value"];
|
||||
}
|
||||
}
|
||||
return await this.getManga(`https://m.idmzj.com/classify/${type}-0-${status}-${region}-${sort}-${page - 1}.json`);
|
||||
}
|
||||
const res = await new Client().get(`http://sacg.dmzj.com/comicsum/search.php?s=${query}`);
|
||||
const datas = JSON.parse(res.body.slice(20, -1));
|
||||
const mangas = [];
|
||||
for (const data of datas) {
|
||||
mangas.push({
|
||||
name: data["comic_name"],
|
||||
imageUrl: data["comic_cover"],
|
||||
link: data["comic_url"].replace("//manhua.dmzj.com/", "")
|
||||
});
|
||||
}
|
||||
return {
|
||||
list: mangas,
|
||||
hasNextPage: true
|
||||
};
|
||||
}
|
||||
|
||||
async getDetail(url) {
|
||||
const preference = new SharedPreferences();
|
||||
const res = await new Client().get(`https://www.dmzj.com/api/v1/comic1/comic/detail?comic_py=${url}&channel=pc&app_name=dmzj&version=1.0.0&uid=${preference.get("uid")}`);
|
||||
const datas = JSON.parse(res.body);
|
||||
if (datas["errno"] != 0) {
|
||||
return {
|
||||
name: datas["errmsg"]
|
||||
};
|
||||
}
|
||||
const title = datas["data"]["comicInfo"]["title"];
|
||||
const status = datas["data"]["comicInfo"]["status"] == "连载中" ? 0 : 1;
|
||||
const cover = datas["data"]["comicInfo"]["cover"];
|
||||
const author = datas["data"]["comicInfo"]["authorInfo"]["authorName"];
|
||||
const genres = datas["data"]["comicInfo"]["types"].split("/");
|
||||
const desc = datas["data"]["comicInfo"]["description"]
|
||||
const chapters = [];
|
||||
if (datas["data"]["comicInfo"]["chapterList"] != null) {
|
||||
for (const chlist of datas["data"]["comicInfo"]["chapterList"]) {
|
||||
for (const ch of chlist["data"]) {
|
||||
chapters.push({
|
||||
name: `[[${chlist["title"]}]]` + ch["chapter_title"],
|
||||
url: datas["data"]["comicInfo"]["id"].toString() + "|" + ch["chapter_id"].toString(),
|
||||
dateUpload: ch["updatetime"].toString()
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
chapters.reverse();
|
||||
return {
|
||||
name: title,
|
||||
imageUrl: cover,
|
||||
author: author,
|
||||
genre: genres,
|
||||
description: desc,
|
||||
episodes: chapters,
|
||||
status: status,
|
||||
link: this.source.baseUrl + "/info/" + url
|
||||
};
|
||||
}
|
||||
|
||||
async getPageList(url) {
|
||||
const preference = new SharedPreferences();
|
||||
const ids = url.split("|");
|
||||
const res = await new Client().get(`https://www.dmzj.com/api/v1/comic1/chapter/detail?channel=pc&app_name=dmzj&version=1.0.0&comic_id=${ids[0]}&chapter_id=${ids[1]}&uid=${preference.get("uid")}`);
|
||||
const datas = JSON.parse(res.body);
|
||||
if (datas["errno"] != 0) {
|
||||
return [];
|
||||
}
|
||||
if (preference.get("hd") && "page_url_hd" in datas["data"]["chapterInfo"]) {
|
||||
return datas["data"]["chapterInfo"]["page_url_hd"];
|
||||
}
|
||||
return datas["data"]["chapterInfo"]["page_url"];
|
||||
}
|
||||
|
||||
getFilterList() {
|
||||
return [{
|
||||
type: "type",
|
||||
name: "分类",
|
||||
type_name: "SelectFilter",
|
||||
values: [{
|
||||
type_name: "SelectOption",
|
||||
name: "全部",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "冒险",
|
||||
value: "1"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "欢乐向",
|
||||
value: "2"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "格斗",
|
||||
value: "3"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "科幻",
|
||||
value: "4"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "爱情",
|
||||
value: "5"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "竞技",
|
||||
value: "6"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "魔法",
|
||||
value: "7"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "校园",
|
||||
value: "8"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "悬疑",
|
||||
value: "9"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "恐怖",
|
||||
value: "10"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "生活亲情",
|
||||
value: "11"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "百合",
|
||||
value: "12"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "伪娘",
|
||||
value: "13"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "耽美",
|
||||
value: "14"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "后宫",
|
||||
value: "15"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "萌系",
|
||||
value: "16"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "治愈",
|
||||
value: "17"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "武侠",
|
||||
value: "18"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "职场",
|
||||
value: "19"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "奇幻",
|
||||
value: "20"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "节操",
|
||||
value: "21"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "轻小说",
|
||||
value: "22"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "搞笑",
|
||||
value: "23"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "region",
|
||||
name: "地区",
|
||||
type_name: "SelectFilter",
|
||||
values: [{
|
||||
type_name: "SelectOption",
|
||||
name: "全部",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "日本",
|
||||
value: "1"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "内地",
|
||||
value: "2"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "欧美",
|
||||
value: "3"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "港台",
|
||||
value: "4"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "韩国",
|
||||
value: "5"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "其他",
|
||||
value: "6"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "status",
|
||||
name: "状态",
|
||||
type_name: "SelectFilter",
|
||||
values: [{
|
||||
type_name: "SelectOption",
|
||||
name: "全部",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "连载中",
|
||||
value: "1"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "已完结",
|
||||
value: "2"
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "sort",
|
||||
name: "排序",
|
||||
type_name: "SelectFilter",
|
||||
values: [{
|
||||
type_name: "SelectOption",
|
||||
name: "浏览次数",
|
||||
value: "0"
|
||||
},
|
||||
{
|
||||
type_name: "SelectOption",
|
||||
name: "更新时间",
|
||||
value: "1"
|
||||
},
|
||||
]
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
getSourcePreferences() {
|
||||
return [{
|
||||
"key": "uid",
|
||||
"editTextPreference": {
|
||||
"title": "用户uid",
|
||||
"summary": "设置后可以解锁部分漫画",
|
||||
"value": "2665531",
|
||||
"dialogTitle": "UID",
|
||||
"dialogMessage": "",
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "hd",
|
||||
"switchPreferenceCompat": {
|
||||
"title": "高清画质",
|
||||
"summary": "启用后使用高清画质",
|
||||
"value": false
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user