污污漫画

https://www.comicbox.xyz

zpccool (13551) 1天前 下载:522

漫画 comic
comicbox real parser
二维码导入(APP尚未完成该功能)
// @name        污污漫画
// @uuid        wuwumanhua
// @version     1.0.1
// @author      Ai
// @url         https://www.comicbox.xyz
// @type        comic
// @enabled     true
// @tags        comic
// @description comicbox real parser

var BASE = 'https://www.comicbox.xyz';
var HEADERS = { 'User-Agent': 'Mozilla/5.0 Legado' };
var CATEGORIES = ['热门', '全部', 'Fate', '东方', '原神', '汉化', '日漫', '韩漫', '单行本', '长篇', '短篇'];
function abs(href) { if (!href) return ''; return href.indexOf('http') === 0 ? href : BASE + href; }
function clean(s) { return (s || '').replace(/\s+/g, ' ').trim(); }
function parseCards(html, selector) {
  var doc = legado.dom.parse('' + html);
  var cards = legado.dom.selectAll(doc, selector || '.sp-search-card, .sp-booklist-card');
  var out = [], seen = {};
  for (var i = 0; i < cards.length; i++) {
    var href = legado.dom.attr(cards[i], 'href') || '';
    if (href.indexOf('/book/') < 0) continue;
    var url = abs(href);
    if (seen[url]) continue;
    seen[url] = true;
    var name = legado.dom.attr(cards[i], 'title') || legado.dom.selectText(cards[i], '.sp-search-card-title') || legado.dom.selectText(cards[i], '.sp-booklist-title') || '';
    var intro = legado.dom.selectText(cards[i], '.sp-search-card-desc') || legado.dom.selectText(cards[i], '.sp-booklist-desc') || '';
    var img = legado.dom.select(cards[i], 'img, .cropped');
    var cover = img ? (legado.dom.attr(img, 'data-src') || legado.dom.attr(img, 'src') || '') : '';
    if (name) out.push({ name: clean(name), bookUrl: url, tocUrl: url, coverUrl: cover, intro: clean(intro), author: '', kind: '' });
  }
  legado.dom.free(doc);
  return out;
}
async function search(keyword, page) {
  if (page > 1) return [];
  return parseCards(await legado.http.get(BASE + '/search?keyword=' + encodeURIComponent(keyword), HEADERS), '.sp-search-card');
}
async function bookInfo(bookUrl) {
  var html = await legado.http.get(bookUrl, HEADERS);
  var doc = legado.dom.parse('' + html);
  var name = legado.dom.selectAttr(doc, 'meta[property="og:title"]', 'content') || legado.dom.selectText(doc, 'h1.sp-book-title') || legado.dom.selectText(doc, 'h1') || '';
  var cover = legado.dom.selectAttr(doc, 'meta[property="og:image"]', 'content') || '';
  var intro = legado.dom.selectAttr(doc, 'meta[property="og:description"]', 'content') || legado.dom.selectText(doc, '.sp-book-summary') || '';
  var tags = [];
  var tagEls = legado.dom.selectAll(doc, '.sp-book-tags .sp-book-tag, .sp-book-tag');
  for (var i = 0; i < tagEls.length; i++) tags.push(clean(legado.dom.text(tagEls[i])));
  var ch = legado.dom.selectAll(doc, '.sp-chapter-grid a.sp-chapter-item');
  var last = ch.length ? (legado.dom.attr(ch[ch.length - 1], 'title') || clean(legado.dom.text(ch[ch.length - 1]))) : '';
  legado.dom.free(doc);
  return { name: clean(name), bookUrl: bookUrl, tocUrl: bookUrl, coverUrl: cover, intro: clean(intro), author: '', kind: tags.join(','), lastChapter: clean(last), latestChapter: clean(last) };
}
async function chapterList(tocUrl) {
  var html = await legado.http.get(tocUrl, HEADERS);
  var doc = legado.dom.parse('' + html);
  var els = legado.dom.selectAll(doc, '.sp-chapter-grid a.sp-chapter-item, a.sp-chapter-item');
  var out = [];
  for (var i = 0; i < els.length; i++) {
    var href = legado.dom.attr(els[i], 'href') || '';
    var name = legado.dom.attr(els[i], 'title') || clean(legado.dom.text(els[i]));
    if (href && name) out.push({ name: name, url: abs(href) });
  }
  legado.dom.free(doc);
  return out;
}
async function chapterContent(chapterUrl) {
  var id = legado.browser.acquire('comicbox');
  try {
    legado.browser.navigate(id, chapterUrl, { waitUntil: 'networkidle', timeoutSecs: 25 });
    var imgs = legado.browser.eval(id, 'var a=[];document.querySelectorAll("img").forEach(function(i){var u=i.src||i.dataset.src||i.dataset.original||"";if(u&&u.indexOf("/static/")<0)a.push(u)});return a;');
    return JSON.stringify(imgs || []);
  } finally { legado.browser.close(id); }
}
async function explore(page, category) {
  if (!category || category === 'GETALL') return CATEGORIES;
  var url = category === '热门' ? BASE + '/index' : BASE + '/booklist?tag=' + encodeURIComponent(category) + '&area=-1&end=-1&page=' + (page || 1);
  return parseCards(await legado.http.get(url, HEADERS), category === '热门' ? '.sp-bcarousel-item, .sp-booklist-card' : '.sp-booklist-card');
}
广告