漫蛙漫画

https://manwamu.cc

zpccool (13551) 1天前 下载:494

漫画 comic
manwa real parser
二维码导入(APP尚未完成该功能)
// @name        漫蛙漫画
// @version     1.0.1
// @uuid        manwamanhua
// @author      Ai
// @url         https://manwamu.cc
// @type        comic
// @enabled     true
// @tags        comic
// @description manwa real parser

var BASE = 'https://manwamu.cc';
var HEADERS = { 'User-Agent': 'Mozilla/5.0 Legado' };
var HOME_TYPES = { '最新': 'comic', '古风': 'gufeng', '玄幻': 'xuanhuan', '校园': 'xiaoyuan', 'VIP': 'vip' };
function abs(href) { if (!href) return ''; return href.indexOf('http') === 0 ? href : BASE + href; }
function clean(s) { return (s || '').replace(/\s+/g, ' ').trim(); }
function itemToBook(it) { return { name: it.title || '', author: it.author || '', bookUrl: abs(it.url || ('/comic/' + it.id)), tocUrl: abs(it.url || ('/comic/' + it.id)), coverUrl: it.cover || it.pic || '', intro: it.description || '', kind: it.tags || '' }; }
async function search(keyword, page) {
  var resp = await legado.http.get(BASE + '/api/search?type=mh&page=' + (page || 1) + '&pageSize=20&keyword=' + encodeURIComponent(keyword), HEADERS);
  var obj = JSON.parse('' + resp);
  var arr = obj && obj.data && obj.data.list ? obj.data.list : [];
  var out = [];
  for (var i = 0; i < arr.length; i++) out.push(itemToBook(arr[i]));
  return out;
}
async function bookInfo(bookUrl) {
  var html = await legado.http.get(bookUrl, HEADERS);
  var doc = legado.dom.parse('' + html);
  var name = legado.dom.selectAttr(doc, '.comic-title', 'data-original-title') || legado.dom.selectText(doc, '.comic-title') || legado.dom.selectText(doc, '#page-title') || '';
  var cover = legado.dom.selectAttr(doc, '.comic-cover', 'data-original-cover') || legado.dom.selectAttr(doc, '.comic-cover', 'src') || '';
  var intro = legado.dom.selectText(doc, '.comic-desc') || legado.dom.selectAttr(doc, 'meta[name="description"]', 'content') || '';
  var author = legado.dom.selectText(doc, '#author-container') || '';
  var tags = [];
  var tagEls = legado.dom.selectAll(doc, '#tagsContainer .tag, .comic-tags .tag');
  for (var i = 0; i < tagEls.length; i++) tags.push(clean(legado.dom.text(tagEls[i])));
  var latest = legado.dom.selectText(doc, '#newch') || '';
  legado.dom.free(doc);
  return { name: clean(name), author: clean(author).replace(/^作者[::]?/, ''), bookUrl: bookUrl, tocUrl: bookUrl, coverUrl: cover, intro: clean(intro), kind: tags.join(','), lastChapter: clean(latest), latestChapter: clean(latest) };
}
async function chapterList(tocUrl) {
  var html = await legado.http.get(tocUrl, HEADERS);
  var doc = legado.dom.parse('' + html);
  var links = legado.dom.selectAll(doc, '#chapter-grid-container a.chapter-item, a.chapter-item[href*="/comic/"]');
  var out = [];
  for (var i = 0; i < links.length; i++) {
    var href = legado.dom.attr(links[i], 'href') || '';
    var name = legado.dom.attr(links[i], 'data-title') || legado.dom.selectText(links[i], '.chapter-name') || clean(legado.dom.text(links[i]));
    if (href && name) out.push({ name: name, url: abs(href) });
  }
  legado.dom.free(doc);
  return out;
}
async function chapterContent(chapterUrl) {
  var m = chapterUrl.match(/\/comic\/\d+\/(\d+)(?:_(\d+))?/);
  var cid = m ? m[1] : chapterUrl;
  var page = m && m[2] ? m[2] : '1';
  var resp = await legado.http.get(BASE + '/api/comic/image/' + cid + '?page=' + page + '&page_size=60&image_source=', HEADERS);
  var obj = JSON.parse('' + resp);
  var arr = obj && obj.data && obj.data.images ? obj.data.images : [];
  var urls = [];
  for (var i = 0; i < arr.length; i++) urls.push(arr[i].url || arr[i].src || arr[i]);
  return JSON.stringify(urls);
}
async function explore(page, category) {
  if (!category || category === 'GETALL') return Object.keys(HOME_TYPES);
  var type = HOME_TYPES[category] || 'comic';
  var resp = await legado.http.get(BASE + '/api/home?page=' + (page || 1) + '&pageSize=20&type=' + type + '&flag=true', HEADERS);
  var obj = JSON.parse('' + resp);
  var key = type + 'List';
  var arr = obj && obj.data && obj.data[key] ? obj.data[key] : [];
  var out = [];
  for (var i = 0; i < arr.length; i++) out.push(itemToBook(arr[i]));
  return out;
}
广告