ComicRead

Добавляет расширенные функции для удобства на сайт, такие как двухстраничный режим и перевод.

< Обсуждения: ComicRead

Отзыв: Хороший — скрипт работает как нужно

创作者大佬,我提一个任性的请求
我一直使用该插件的8.4.3版本,最近发现 E-hentai 网站使用不了
所以恳请大佬帮忙修一下8.4.3版本 E-hentai 无法加载图片的问题

hymbzАвтор
§
Создано: 26.11.2024

可以问下为什么不升级吗(

将9472行到9487行的

  /** 从详情页获取图片页的地址的正则 */
  const getImgFromDetailsPageRe = /(?<=<a href=").{20,50}(?="><img alt="\d+")/gm;

  /** 从详情页获取图片页的地址 */
  const getImgFromDetailsPage = async (pageNum = 0) => {
    const res = await main.request(`${window.location.pathname}${pageNum ? `?p=${pageNum}` : ''}`, {
      errorText: main.t('site.ehentai.fetch_img_page_url_failed')
    });

    // 从详情页获取图片页的地址
    const imgPageList = res.responseText.match(getImgFromDetailsPageRe);
    if (imgPageList === null) {
      if (res.responseText.includes('Your IP address has been temporarily banned for excessive')) throw new Error(main.t('site.ehentai.ip_banned'));
      throw new Error(main.t('site.ehentai.fetch_img_page_url_failed'));
    }
    return imgPageList;
  };

这段代码替换成

  /** 从详情页获取图片页的地址 */
  const getImgFromDetailsPage = async (pageNum = 0) => {
    const res = await main.request(`${window.location.pathname}${pageNum ? `?p=${pageNum}` : ''}`, {
      fetch: true,
      errorText: main.t('site.ehentai.fetch_img_page_url_failed')
    });
    const pageUrlList = [...res.responseText.matchAll(
    // 缩略图有三种显示方式:
    // 使用 img 的旧版,不显示页码的单个 div,显示页码的嵌套 div
     /<a href="(.{20,50})"><(img alt=.+?|div><div |div )title=".+?: (.+?)"/gm)].map(([, url]) => url);
    if (pageUrlList.length === 0) {
      if (res.responseText.includes('Your IP address has been temporarily banned for excessive')) throw new Error(main.t('site.ehentai.ip_banned'));
      throw new Error(main.t('site.ehentai.fetch_img_page_url_failed'));
    }
    return pageUrlList;
  };

就可以了。

修好了
感谢大佬!ヾ(≧▽≦*)o

Ответить

Войдите, чтобы ответить.