为漫画站增加双页阅读、翻译等优化体验的增强功能。百合会(记录阅读历史、自动签到等)、百合会新站、E-Hentai(关联外站、快捷收藏、标签染色、识别广告页等)、nhentai(彻底屏蔽漫画、无限滚动)、Yurifans(自动签到)、拷贝漫画(copymanga)(显示最后阅读记录、解锁隐藏漫画)、再漫画、漫画柜(manhuagui)、动漫屋(dm5)、mangabz、komiic、無限動漫、绅士漫画(wnacg)、禁漫天堂、NoyAcg、熱辣漫畫、hanime1、hitomi、hdoujin、SchaleNetwork、nude-moon、HentaiZap、IMHentai、HentaiEra、HentaiEnvy、MangaDex、welovemanga、kemono、nekohouse、Pixiv、明日方舟泰拉记事社、最前線、Tachidesk、LANraragi
没法支持。。。网页图片全放到了关闭的 shadow DOM 里,直接断了前端的路。后端 API 则做了加密处理,在其他人找到解密手段并开源之前,我是无能为力了。
let get = async () => {
let urlArr = window.location.href.split("/");
let galleryId = urlArr.at(-2);
let galleryKey = urlArr.at(-1);
let res = await fetch(`/api/v1/library/${galleryId}/${galleryKey}/data`, {
"headers": {
"x-requested-with": "XMLHttpRequest"
}
});
if (res.status != 200) {
console.log("觸發人機驗證");
} else {
let bSrc = document.querySelector("#gallery img").src;
let imgOrigin = new URL(bSrc).origin;
let json = await res.json();
let gallerHash = json.hash;
let gallerReadKey = json.key;
let imgSrcs = json.names.map(name => imgOrigin + "/" + galleryId + "/" + gallerReadKey + "/" + gallerHash + "/b/" + name);
console.log(imgSrcs);
}
}
get();
需要在畫廊詳情頁使用
今天没事试了一下,看了控制台发现Read暴露了原始链结,比对了下缩略图和API,然后就成功取得了。我也不确定imgOrigin会不会全部都是https://kisakisexo.xyz/,是的话就能直接写死。
原来如此,那我就先写死好了,不然还要等元素渲染出来。
已更新支持
這網站改版了
https://koharu.to/
const get = () => {
const [, , g_id, g_key] = location.pathname.split("/");
const detailApi = `https://api.koharu.to/books/detail/${g_id}/${g_key}`;
fetch(detailApi).then(res => res.json()).then(detailJson => {
console.log("\ndetailJson\n", detailJson);
const {
created_at,
updated_at,
data,
thumbnails
} = detailJson;
const {
base,
entries
} = thumbnails;
const thumbs = entries.map(e => base + e.path);
console.log("\nthumbs\n", thumbs);
const [maxSize] = Object.values(data).sort((a, b) => b.size - a.size);
console.log("\nmaxSize\n", maxSize);
const {
id,
public_key
} = maxSize;
const dataApi = `https://api.koharu.to/books/data/${g_id}/${g_key}/${id}/${public_key}?v=${updated_at ?? created_at}`;
fetch(dataApi).then(res => res.json()).then(dataJson => {
const {
base,
entries
} = dataJson;
console.log("\ndataJson\n", dataJson);
const srcs = entries.map(async (e, i, arr) => {
await new Promise(resolve => setTimeout(resolve, i * 500));
return new Promise(async resolve => {
const xhr = new XMLHttpRequest;
xhr.responseType = "blob";
xhr.open("GET", base + e.path);
xhr.onload = () => {
resolve(URL.createObjectURL(xhr.response));
};
xhr.send();
});
});
Promise.all(srcs).then(srcs => console.log("\nsrcs\n", srcs));
});
});
};
get();
@tony0809 非常感谢!已更新支持
又又改版了,最高品質加了限制,應該是需要登錄,xhr請求也要傳遞token。
遊客能用的代碼,會員的就懶得弄了。
const get = () => {
const [, , g_id, g_key] = location.pathname.split("/");
const detailApi = `https://api.koharu.to/books/detail/${g_id}/${g_key}`;
fetch(detailApi).then(res => res.json()).then(detailJson => {
console.log("\ndetailJson\n", detailJson);
const {
created_at,
updated_at,
data
} = detailJson;
const {
id,
public_key
} = data["1280"];
const dataApi = `https://api.koharu.to/books/data/${g_id}/${g_key}/${id}/${public_key}?v=${updated_at ?? created_at}&w=1280`;
fetch(dataApi).then(res => res.json()).then(dataJson => {
const {
base,
entries
} = dataJson;
console.log("\ndataJson\n", dataJson);
const srcs = entries.map(async (e, i, arr) => {
await new Promise(resolve => setTimeout(resolve, i * 500));
return new Promise(async resolve => {
const xhr = new XMLHttpRequest;
xhr.responseType = "blob";
xhr.open("GET", base + e.path);
xhr.onload = () => {
resolve(URL.createObjectURL(xhr.response));
};
xhr.send();
});
});
Promise.all(srcs).then(srcs => console.log("\nsrcs\n", srcs));
});
});
};
get();
@tony0809 现在限制好像没了?试了下只要给之前的代码补上 &w=xx 的参数也能正常运行
@tony0809 现在限制好像没了?试了下只要给之前的代码补上
&w=xx的参数也能正常运行
早上試了最高品質加&w=1600不行...,此時遊客取得json的data最高只有1280,1600不見了,這是又又又改了。
既然這樣就簡單多了,換用拿key的方式。
const [maxKey] = Object.keys(data).sort((a, b) => b - a);
const {
id,
public_key
} = data[maxKey];
const dataApi = `https://api.koharu.to/books/data/${g_id}/${g_key}/${id}/${public_key}?v=${updated_at ?? created_at}&w=${maxKey}`;
下周末再測試,網站大改版沒多久,最近應該會改動很頻繁。
@tony0809 脚本已更新
感谢反馈,已更新支持新域名了。
似乎没能使用简易模式成功加载
奇怪,不应该触发简易模式的啊。可能是域名不对?目前脚本支持的是 shupogaki.moe、hoshino.one、niyaniya.moe 这三个。你点开 https://niyaniya.moe/g/24410/3f37324296e2 这个链接试试。
不会自动触发简易模式,但是也没有用脚本加载图片,没找到按钮
不会自动触发简易模式,但是也没有用脚本加载图片,没找到按钮
确认脚本升级到了10.9.0?点开链接后浏览器地址栏里的 url 有改变吗?
不是版本问题也没有跳到其他域名的话,F12 把控制台截图下,我看看有没有报错信息。
版本问题,已弹出手动更新界面,以前没弹出来过,更新后正常,应该是自动更新没生效。
请求增加ksk新站点
https://anchira.to/