快速开始
本节将带你从零创建一个最小可用的书源文件。
前置条件
- 已安装 Legado Tauri 应用
- 了解基本的 JavaScript 和 CSS 选择器语法
创建书源文件
在应用的书源目录中创建一个 .js 文件(如 我的书源.js),或使用应用内的书源编辑器。
最小模板
js
// @name 我的书源
// @version 1.0.0
// @author 你的名字
// @url https://www.example.com
// @logo https://www.example.com/favicon.ico
// @enabled true
// @description 示例书源
var BASE = 'https://www.example.com';
// ── 搜索 ─────────────────────────────────────────
function search(keyword, page) {
var html = legado.http.get(BASE + '/search?q=' + encodeURIComponent(keyword) + '&page=' + page);
var doc = legado.dom.parse(html);
var items = legado.dom.selectAll(doc, '.book-item');
var books = [];
for (var i = 0; i < items.length; i++) {
books.push({
name: legado.dom.selectText(items[i], '.title'),
author: legado.dom.selectText(items[i], '.author'),
bookUrl: legado.dom.selectAttr(items[i], 'a', 'href'),
coverUrl: legado.dom.selectAttr(items[i], 'img', 'src')
});
}
legado.dom.free(doc);
return books;
}
// ── 书籍详情 ─────────────────────────────────────
function bookInfo(bookUrl) {
var html = legado.http.get(bookUrl);
var doc = legado.dom.parse(html);
var info = {
name: legado.dom.selectText(doc, 'h1'),
author: legado.dom.selectText(doc, '.author'),
coverUrl: legado.dom.selectAttr(doc, '.cover img', 'src'),
intro: legado.dom.selectText(doc, '.intro'),
tocUrl: bookUrl
};
legado.dom.free(doc);
return info;
}
// ── 章节目录 ─────────────────────────────────────
function chapterList(tocUrl) {
var html = legado.http.get(tocUrl);
var doc = legado.dom.parse(html);
var names = legado.dom.selectAllTexts(doc, '.chapter-list a');
var urls = legado.dom.selectAllAttrs(doc, '.chapter-list a', 'href');
var chapters = [];
for (var i = 0; i < names.length; i++) {
chapters.push({ name: names[i], url: urls[i] });
}
legado.dom.free(doc);
return chapters;
}
// ── 章节正文 ─────────────────────────────────────
function chapterContent(chapterUrl) {
var html = legado.http.get(chapterUrl);
var doc = legado.dom.parse(html);
var text = legado.dom.selectText(doc, '#content');
legado.dom.free(doc);
return text;
}验证书源
使用 CLI 工具逐步测试:
bash
# 测试搜索
legado_tauri cli booksource-test ./我的书源.js search 斗破苍穹
# 测试全部功能
legado_tauri cli booksource-test ./我的书源.js all 斗破苍穹或在应用内打开「书源管理 → 调试」面板进行可视化调试。
两种网站类型
HTML 站点
大多数网站使用 HTML 页面,通过 legado.http.get() 获取 HTML 后,使用 legado.dom.* 解析:
js
var html = legado.http.get(url);
var doc = legado.dom.parse(html);
var title = legado.dom.selectText(doc, 'h1.title');
legado.dom.free(doc);JSON API 站点
部分站点提供 JSON API,直接 JSON.parse() 即可:
js
var resp = legado.http.get('https://api.example.com/books?q=' + keyword);
var data = JSON.parse(resp);
return data.list.map(function(item) {
return { name: item.title, bookUrl: item.url };
});