轻悦时光小说源核心函数 AI 提示词

作者: 雨落星辰
更新时间: 2026-02-2

本文档为“轻悦时光”小说阅读器书源开发提供标准化 AI 提示词模板。
每个函数对应一个独立提示词,用于指导 AI 根据用户提供的网站结构信息,一步步生成准确、健壮的核心函数代码。

使用指南
当用户请求某个函数时,直接复制对应提示词(包含“要求如下”及后续全部内容),作为系统提示发送给 AI。AI 将根据用户提供的网站 HTML 片段或描述,生成完整代码。


1. 搜索函数 search(key, page)

Plain
我需要你为小说书源编写搜索函数 async function search(key, page),要求如下:

1. 运行环境:
   - 已内置:flutterBridge(日志/调试)、http(Http类)、cache、cookie
   - 工具函数:parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl、header

2. 函数逻辑:
   - 根据网站搜索机制拼接请求 URL(如 baseurl + 路径 + key,或从首页提取 form action)
   - 若 page > 1 且网站不支持多页搜索,直接返回 "[]"
   - 使用 http.Get 请求搜索页,必要时设置 Referer 等 header
   - 调用 parseBookList 解析返回结果

3. 异常处理:
   - try-catch 捕获所有异常
   - flutterBridge.log 输出错误信息
   - 异常时返回 "[]"

4. 返回要求:
   - 返回 parseBookList 处理后的 JSON 字符串(书籍列表)

5. 示例代码结构(请根据实际网站调整):
   // 搜索函数
   async function search(key, page) {
       if (page > 1) return "[]";

       try {
           // 示例:从首页提取搜索表单 action
           const indexRes = await http.Get(baseurl, JSON.stringify({ ...header, Referer: baseurl }), true);
           const $home = parseHTMLSafely(removeHTMLTags(indexRes.data));
           const action = $home.find('form[name="search"]').attr('action') || '/search.php';
           removeHTMLSafely($home);

           const searchUrl = baseurl + action + '?searchkey=' + encodeURIComponent(key);
           const res = await http.Get(searchUrl, JSON.stringify({ ...header, Referer: baseurl }), true);

           return parseBookList(res.data);
       } catch (e) {
           flutterBridge.log("搜索出错: " + e.message);
           return "[]";
       }
   }

请根据用户提供的网站搜索逻辑和 HTML 片段,直接返回完整的 async function search(key, page) 代码。代码结构清晰、添加关键注释,无需多余解释。

2. 解析书籍列表函数 parseBookList(html)

Plain
我需要你为小说书源编写解析书籍列表函数 function parseBookList(html),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、$(jQuery 类库)、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl

2. 函数逻辑:
   - 使用 parseHTMLSafely(removeHTMLTags(html)) 创建临时容器 $tempContainer
   - 初始化 books = [] 和 bookUrls = new Set() 用于去重
   - 根据用户提供的书籍项选择器(例如 ".item" 或 "li")遍历每个书籍节点
   - 提取以下字段(必须严格匹配固定对象结构):
     • bookUrl / tocUrl:主链接,拼接 baseurl,统一以 / 结尾
     • name:书名(长度 < 2 则跳过)
     • author:作者
     • coverUrl:封面(优先 data-original 或 src,拼接 baseurl)
     • intro:简介(移除开头“简介:”等前缀)
     • wordCount:字数
     • latestChapterTitle:最新章节或更新时间
     • kind:分类(无则留空)
     • type:固定为 0
   - 去重基于 bookUrl
   - 组装标准书籍对象并 push 到 books

3. 异常处理:
   - try-catch 捕获异常
   - flutterBridge.log 输出错误
   - 异常时返回 "[]"

4. 返回要求:
   - 返回 JSON.stringify(books)

请根据用户提供的书籍列表 HTML 片段,直接返回完整的 function parseBookList(html) 代码。代码结构清晰、添加关键注释,无需多余解释。

3. 书籍详情函数 info(bookurl)

Plain
我需要你为小说书源编写书籍详情函数 async function info(bookurl),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl、header

2. 函数逻辑:
   - 使用 http.Get(bookurl, ...) 获取详情页 HTML
   - flutterBridge.text(1, data) 输出源码(用于调试)
   - parseHTMLSafely(removeHTMLTags(html)) 解析
   - 提取字段(与 parseBookList 保持一致):
     • name、author、kind、coverUrl、intro、wordCount、status、latestChapterTitle、lastUpdate
   - 特殊处理 tocUrl:根据网站规则拼接目录页 URL(如替换为 /indexlist/xxx/),失败则回退为 bookurl
   - 组装标准详情对象

3. 异常处理:
   - try-catch,flutterBridge.log 输出错误,返回 "{}"

4. 返回要求:
   - 返回 JSON.stringify(详情对象)

请根据用户提供的书籍详情页 HTML 片段,直接返回完整的 async function info(bookurl) 代码。代码结构清晰、添加关键注释,无需多余解释。

4. 章节列表函数 chapter(tocUrl) 与辅助函数 buildPageUrl(tocUrl, pageIndex)

Plain
我需要你为小说书源编写章节列表函数 async function chapter(tocUrl),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 依赖:buildPageUrl(tocUrl, pageIndex)、getChapterPage(pageUrl)

2. 函数逻辑:
   - 采用并发分页预取(maxConcurrent = 10)
   - 循环获取直到无下一页或达到安全上限(100 页)
   - 合并所有章节,统一重设 index 字段
   - 输出关键日志(预取页数、获取章节数、停止原因)

3. 异常处理:
   - try-catch,flutterBridge.log 输出错误,返回 "[]"

4. 返回要求:
   - 返回 JSON.stringify(allChapters)

5. 必须同时实现辅助函数 buildPageUrl(根据网站分页规则拼接 URL)

请根据用户提供的目录分页规则,直接返回完整的 async function chapter(tocUrl) 和 function buildPageUrl(tocUrl, pageIndex) 代码。代码结构清晰、添加关键注释,无需多余解释。

5. 获取单页章节函数 getChapterPage(pageUrl)

Plain
我需要你为小说书源编写获取单页章节函数 async function getChapterPage(pageUrl),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl、header

2. 函数逻辑:
   - http.Get(pageUrl, ...) 获取页面
   - flutterBridge.text(2, data) 输出源码
   - parseHTMLSafely(removeHTMLTags(html)) 解析
   - 根据用户提供的章节链接选择器遍历
   - 过滤无效链接(包含“下载”“TXT”“目录”“下一页”等)
   - 拼接完整 chapterId(兼容多种路径格式)
   - 组装章节对象(name、chapterId、index、isPay/false、isVip/false、isVolume/false、tag="")
   - 判断 hasNextPage(存在“下一页”链接)
   - 清理临时容器

3. 异常处理:
   - try-catch,返回 { chapters: [], hasNextPage: false }

4. 返回要求:
   - 返回 { chapters: [...], hasNextPage: boolean }

请根据用户提供的目录页 HTML 片段,直接返回完整的 async function getChapterPage(pageUrl) 代码。代码结构清晰、添加关键注释,无需多余解释。

6. 章节内容函数 content(url)

Plain
我需要你为小说书源编写章节内容函数 async function content(url)(支持多页章节),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl、header

2. 函数逻辑:
   - 循环获取分页(最多 10 页防止死循环)
   - 首页 flutterBridge.text(3, data) 输出源码
   - 根据用户提供的内容容器选择器提取正文(优先 p 标签段落)
   - 自动检测并拼接“下一页”链接
   - 合并内容后清理导航文本(上一章/下一章/目录等)
   - 规范化空行(\r\n\r\n 分段)

3. 异常处理:
   - try-catch,flutterBridge.log 输出错误,返回 ""

4. 返回要求:
   - 返回纯文本章节内容

请根据用户提供的正文页 HTML 片段,直接返回完整的 async function content(url) 代码。代码结构清晰、添加关键注释,无需多余解释。

7. 获取发现分类函数 getfinds()

Plain
我需要你为小说书源编写发现分类函数 async function getfinds(),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl、header

2. 函数逻辑:
   - 请求首页 HTML 并解析
   - 根据用户提供的导航选择器遍历分类链接
   - 提取 title(文本)和 href
   - 拼接完整 URL,将分页数字(如 /1/)替换为 /{{page}}/
   - 组装 { title, url, type: 0 }
   - 可根据需要排除特定项(如“记录”“首页”)

3. 异常处理:
   - try-catch,返回 "[]"

4. 返回要求:
   - 返回 JSON.stringify(分类数组)

请根据用户提供的首页导航 HTML 片段,直接返回完整的 async function getfinds() 代码。代码结构清晰、添加关键注释,无需多余解释。

8. 解析发现列表函数 parsefindList(html)

Plain
我需要你为小说书源编写解析发现列表函数 function parsefindList(html),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、$、parseHTMLSafely、removeHTMLTags、removeHTMLSafely
   - 全局变量:baseurl

2. 函数逻辑:
   - 先询问用户:发现页书籍列表结构是否与搜索页完全一致?
     • 若一致,直接调用 return parseBookList(html);
     • 若不同,继续按以下逻辑编写
   - parseHTMLSafely(removeHTMLTags(html))
   - 支持多种结构共存(使用 bookUrls Set 统一去重)
   - 提取字段与 parseBookList 保持一致(缺失字段留空)
   - 特殊处理 tocUrl(如需从 bookUrl 提取小说 ID 拼接)

3. 异常处理:
   - try-catch,返回 "[]"

4. 返回要求:
   - 返回 JSON.stringify(books)

请根据用户提供的发现页 HTML 片段,直接返回完整的 function parsefindList(html) 代码。代码结构清晰、添加关键注释,无需多余解释。

9. 发现页书籍列表函数 find(url, page)

Plain
我需要你为小说书源编写发现页函数 async function find(url, page),要求如下:

1. 运行环境:
   - 已内置:flutterBridge、http
   - 依赖:parsefindList(html)

2. 函数逻辑:
   - 将 url 中的 {{page}} 替换为实际 page 值
   - http.Get 请求目标页面
   - 调用 parsefindList 解析并返回结果

3. 异常处理:
   - try-catch,返回 "[]"

4. 返回要求:
   - 返回 parsefindList 处理后的 JSON 字符串

请直接返回完整的 async function find(url, page) 代码(逻辑通常固定,仅需少量调整)。代码结构清晰、添加关键注释,无需多余解释。

登录后发表评论

请先登录账号后再发表评论