69story
https://69story.com
zpccool (13551) 1天前 下载:410
小说 成人小说
69成人小说网
// @name 69story
// @version 1.0.0
// @uuid 69story
// @author Ai
// @url https://69story.com
// @type novel
// @enabled false
// @tags 成人小说
// @description 69成人小说网
var BASE = 'https://69story.com';
async function explore(page, category) {
legado.log('explore: page=' + page + ', category=' + category);
if (category === 'GETALL' || !category) {
return ['人妻熟女', '學生校園', '家庭亂倫', '強暴虐待', '都市生活'];
}
var catMap = {
'人妻熟女': 'wife',
'學生校園': 'school',
'家庭亂倫': 'family',
'強暴虐待': 'bdsm-abuse',
'都市生活': 'sex-in-the-city'
};
var path = catMap[category];
if (!path) return [];
var url = BASE + '/' + path + (page > 1 ? '/page/' + page : '');
var html = await legado.http.get(url);
var doc = legado.dom.parse(html);
var items = [];
var links = legado.dom.selectAll(doc, 'a[href*="/article/"]');
for (var i = 0; i < links.length; i++) {
var href = legado.dom.attr(links[i], 'href');
var name = legado.dom.text(links[i]);
if (href && name && href.startsWith(BASE)) {
items.push({
name: name.trim(),
author: '',
bookUrl: href,
coverUrl: '',
kind: category,
lastChapter: ''
});
}
}
return items;
}
async function bookInfo(bookUrl) {
legado.log('bookInfo: ' + bookUrl);
var html = await legado.http.get(bookUrl);
var doc = legado.dom.parse(html);
var title = legado.dom.selectText(doc, 'h1');
var contentDiv = legado.dom.select(doc, 'article') || legado.dom.select(doc, '.entry-content') || legado.dom.select(doc, '.post-content');
var intro = contentDiv ? legado.dom.text(legado.dom.select(contentDiv, 'p')) : legado.dom.selectText(doc, 'p');
return {
name: title,
author: '',
coverUrl: '',
intro: intro,
kind: '',
lastChapter: '',
tocUrl: bookUrl
};
}
async function chapterList(tocUrl) {
legado.log('chapterList: ' + tocUrl);
// 单页小说
return [{ name: '全文', url: tocUrl }];
}
async function chapterContent(chapterUrl) {
legado.log('chapterContent: ' + chapterUrl);
var html = await legado.http.get(chapterUrl);
var doc = legado.dom.parse(html);
legado.dom.remove(doc, 'script, nav, header, footer, aside, .sidebar, .widget, .ad');
var content = legado.dom.select(doc, 'article') || legado.dom.select(doc, '.entry-content') || legado.dom.select(doc, '.post-content') || legado.dom.select(doc, 'body');
var text = legado.dom.text(content);
// 去除标题和链接
text = text.replace(/^\s*#.*$/gm, '');
text = text.replace(/### .*$/gm, '');
text = text.replace(/^\s*\[.*\]\(.*\)$/gm, '');
text = text.replace(/^\s*.*$/gm, '');
text = text.replace(/^\s*.*$/gm, '');
text = text.replace(/^\s*.*$/gm, '');
text = text.replace(/^\s*.*$/gm, '');
text = text.replace(/^\s*.*$/gm, '');
text = text.trim();
return text;
}
async function search(keyword, page) {
legado.log('search: keyword=' + keyword + ', page=' + page);
var url = BASE + '/?s=' + encodeURIComponent(keyword) + (page > 1 ? '&paged=' + page : '');
var html = await legado.http.get(url);
var doc = legado.dom.parse(html);
var items = [];
var links = legado.dom.selectAll(doc, 'a[href*="/article/"]');
for (var i = 0; i < links.length; i++) {
var href = legado.dom.attr(links[i], 'href');
var name = legado.dom.text(links[i]);
if (href && name && href.startsWith(BASE) && name.toLowerCase().includes(keyword.toLowerCase())) {
items.push({
name: name.trim(),
author: '',
bookUrl: href,
coverUrl: '',
kind: '',
lastChapter: ''
});
}
}
return items;
}