[copy_manga] Fix search api (base & web) (#86)

* [copy_mange] Fix search api (base & web)

* [copy_mange] Auto fetch webapi
This commit is contained in:
角砂糖
2025-06-11 22:56:28 +08:00
committed by GitHub
parent aeb45146f3
commit 7064801f51
2 changed files with 44 additions and 29 deletions

View File

@@ -4,7 +4,7 @@ class CopyManga extends ComicSource {
key = "copy_manga" key = "copy_manga"
version = "1.3.4" version = "1.3.5"
minAppVersion = "1.2.1" minAppVersion = "1.2.1"
@@ -19,9 +19,10 @@ class CopyManga extends ComicSource {
} }
return { return {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0",
"Accept": "*/*", "Origin": `https://${this.loadSetting('base_url')}`,
"Accept-Encoding": "gzip", "Accept": "application/json",
"webp": "1", "platform": "1",
"version": "2025.05.09",
"region": this.copyRegion, "region": this.copyRegion,
"authorization": `Token${token}`, "authorization": `Token${token}`,
} }
@@ -37,6 +38,8 @@ class CopyManga extends ComicSource {
static defaultApiUrl = 'mapi.copy20.com' static defaultApiUrl = 'mapi.copy20.com'
static searchApi = "/api/kb/web/searchb/comics"
// get copyVersion() { // get copyVersion() {
// return this.loadSetting('version') // return this.loadSetting('version')
// } // }
@@ -60,6 +63,7 @@ class CopyManga extends ComicSource {
init() { init() {
// 用于储存 { 作者名 : 英文参数 } // 用于储存 { 作者名 : 英文参数 }
this.author_path_word_dict = {} this.author_path_word_dict = {}
this.refreshSearchApi()
} }
/// account /// account
@@ -378,8 +382,9 @@ class CopyManga extends ComicSource {
q_type = options[0]; q_type = options[0];
} }
keyword = encodeURIComponent(keyword) keyword = encodeURIComponent(keyword)
// let search_url = this.loadSetting('search_api') === "webAPI" ? `${this.apiUrl}/api/kb/web/searchbd/comics` : `${this.apiUrl}/api/v3/search/comic` let search_url = this.loadSetting('search_api') === "webAPI"
let search_url = `${this.apiUrl}/api/kb/web/searchc/comics` ? `${this.apiUrl}${CopyManga.searchApi}`
: `${this.apiUrl}/api/v3/search/comic`
res = await Network.get( res = await Network.get(
`${search_url}?limit=30&offset=${(page - 1) * 30}&q=${keyword}&q_type=${q_type}`, `${search_url}?limit=30&offset=${(page - 1) * 30}&q=${keyword}&q_type=${q_type}`,
this.headers this.headers
@@ -799,14 +804,14 @@ class CopyManga extends ComicSource {
title: "CDN线路", title: "CDN线路",
type: "select", type: "select",
options: [ options: [
{
value: "0",
text: '海外线路(丢失登陆状态)'
},
{ {
value: "1", value: "1",
text: '大陆线路' text: '大陆线路'
}, },
{
value: "0",
text: '海外线路'
},
], ],
default: CopyManga.defaultCopyRegion, default: CopyManga.defaultCopyRegion,
}, },
@@ -829,30 +834,27 @@ class CopyManga extends ComicSource {
], ],
default: CopyManga.defaultImageQuality, default: CopyManga.defaultImageQuality,
}, },
search_api: {
title: "搜索方式",
type: "select",
options: [
{
value: 'baseAPI',
text: '基础API'
},
{
value: 'webAPI',
text: '网页端API'
}
],
default: 'baseAPI'
},
base_url: { base_url: {
title: "API地址", title: "API地址",
type: "input", type: "input",
validator: '^(?!:\\/\\/)(?=.{1,253})([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$', validator: '^(?!:\\/\\/)(?=.{1,253})([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$',
default: CopyManga.defaultApiUrl, default: CopyManga.defaultApiUrl,
} }
// search_api: {
// // title
// title: "搜索方式",
// // type: input, select, switch
// type: "select",
// // options
// options: [
// {
// value: 'baseAPI',
// text: '基础API'
// },
// {
// value: 'webAPI',
// text: '网页端API可搜屏蔽作'
// }
// ],
// default: 'baseAPI'
// },
// version: { // version: {
// title: "拷贝版本重启APP生效", // title: "拷贝版本重启APP生效",
// type: "input", // type: "input",
@@ -882,4 +884,17 @@ class CopyManga extends ComicSource {
} }
return true return true
} }
async refreshSearchApi() {
let url = "https://www.copy20.com/search"
let res = await fetch(url)
let searchApi = ""
if (res.status === 200) {
let text = await res.text()
let match = text.match(/const countApi = "([^"]+)"/)
if (match && match[1]) {
CopyManga.searchApi = match[1]
}
}
}
} }

View File

@@ -3,7 +3,7 @@
"name": "拷贝漫画", "name": "拷贝漫画",
"fileName": "copy_manga.js", "fileName": "copy_manga.js",
"key": "copy_manga", "key": "copy_manga",
"version": "1.3.4" "version": "1.3.5"
}, },
{ {
"name": "Komiic", "name": "Komiic",