为漫画站增加双页阅读、翻译等优化体验的增强功能。百合会(记录阅读历史、自动签到等)、百合会新站、动漫之家(解锁隐藏漫画)、E-Hentai(关联 nhentai、快捷收藏、标签染色、识别广告页等)、nhentai(彻底屏蔽漫画、无限滚动)、Yurifans(自动签到)、拷贝漫画(copymanga)(显示最后阅读记录、解锁隐藏漫画)、PonpomuYuri、再漫画、明日方舟泰拉记事社、禁漫天堂、漫画柜(manhuagui)、漫画DB(manhuadb)、动漫屋(dm5)、绅士漫画(wnacg)、mangabz、komiic、MangaDex、NoyAcg、無限動漫、新新漫画、熱辣漫畫、hitomi、SchaleNetwork、kemono、nekohouse、welovemanga
没法支持。。。网页图片全放到了关闭的 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/