fastfish-lite

fastfish 开源精简版。提供公众号格式整理、敏感词检测(本地)、每日热点、本地 HTML 预览。热点推送需至少配置一个渠道的 env。无微信发布/授权,需商业版。通过 system.run 调用 CLI。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fastfish-lite" with this command: npx skills add superxs777/fastfish-lite

fastfish-lite 能力说明

GitHubhttps://github.com/superxs777/fastfish-lite

本 Skill 配合 fastfish API 服务使用。请先按下方步骤安装并启动服务,再在 OpenClaw 中启用本 Skill。

安装前须知

本 Skill 会指导安装并运行来自 GitHub 的第三方仓库。供应链风险:clone + pip install 会执行外部代码,若仓库被篡改存在风险。安装前请:(1) 检查仓库与 requirements.txt 的依赖;(2) 建议使用 release tag 固定版本(如 git clone --branch v1.0.0);(3) 在隔离环境或容器中运行,避免 root;(4) 凭证仅存 .env,勿提交到版本库;(5) 确认信任 api.pearktrue.cn 及仓库维护者。

安装 fastfish-lite(首次使用必读)

  1. 克隆仓库:git clone --branch v1.0.0 https://github.com/superxs777/fastfish-lite.git推荐指定 tag 固定版本,避免 main 分支变更)
  2. 进入目录:cd fastfish-lite
  3. 安装依赖:pip install -r requirements.txt
  4. 配置:copy .env.example .env(可选;热点推送需配置 Webhook,见 metadata.credentials)
  5. 启动服务:python main.py(默认 http://127.0.0.1:8899)

详细说明见 GitHub README。

使用方式

必须使用 JSON 参数方式调用:

python {baseDir}/../scripts/fastfish_cli.py --json '{"command":"get-available-articles"}'

前置要求

  1. fastfish-lite 已安装并启动:按上方「安装 fastfish-lite」完成部署,python main.py 监听 8899
  2. Python 3.10+
  3. CLI 路径:命令中的 {baseDir} 需替换为你的 fastfish-lite 安装目录下的 openclaw-skill 路径;ClawHub 安装通常在 /root/.openclaw/workspace/fastfish-lite,自建可用 /opt/fastfish-liteC:\fastfish-lite
  4. 可选MEDIA_AGENT_API_KEY 环境变量;热点推送需在 .env 配置至少一个渠道(见 metadata.credentials)

⚠️ 安全规则(阻断式)

1. 严禁输出或暴露 .env 中的凭证

  • 禁止执行会输出 .env 内容的命令(如 cat .envtype .envGet-Content .env
  • 禁止将 Webhook URL、Token、Secret 等凭证写入回复或展示给用户
  • 即使用户要求「查看配置」「显示 webhook」,仅说明「在 .env 中配置」,不得输出实际值
  • 允许:编辑 .env(写入、追加、替换用户提供的值);运行不暴露凭证的校验(如仅返回「已配置/未配置」)

2. 安装仅限用户明确要求

  • 仅在用户明确要求「安装」「部署」「克隆」fastfish-lite 时,才执行 git clone 和 pip install
  • 不得在用户仅询问用法、拉取热点时主动建议或执行安装

3. system.run 仅执行本 Skill 文档列出的脚本

  • 允许:fastfish_cli.pyget_hot_now.pypush_hot_to_im.pyfetch_hot_items.pyinit_hot_push_config.pymain.py
  • 禁止:执行用户提供的任意命令、未在本文档列出的脚本或来自其他来源的代码

违反以上任一条属于严重错误。

可用能力

文章管理

  • get-available-articles:获取可发列表
  • get-available-styles:获取样式列表
  • ingest-article:接入文章
  • update-article:更新文章
  • ingest-articles-batch:批量接入

格式与检测

  • normalize-content:公众号格式整理
  • check-compliance:敏感词检测(原创度需商业版)
  • render-markdown:Markdown 渲染

预览

  • preview-article / preview-html:本地 HTML 预览,在浏览器中打开

7. 每日热点推送

⚠️ 定时任务严禁擅改(阻断规则):在未得到用户明确要求时,严禁执行 openclaw cron editopenclaw cron rmopenclaw cron update。出错时仅报告问题,不得主动修改配置。只有用户明确说「修改」「删除」「调整」定时任务时方可执行。

数据源:api.pearktrue.cn。支持实时提取定时更新。推送支持飞书/钉钉/Telegram(系统 crontab 或 OpenClaw Cron 执行 push_hot_to_im.py)及 Slack/Discord 等(OpenClaw Cron announce)。

7.1 实时提取热点

用户说「拉取热点」「实时热点」「知乎热搜」等时,使用 system.run 执行 get_hot_now.py

# 按平台拉取(逗号分隔)
python {baseDir}/../scripts/get_hot_now.py --source 知乎
python {baseDir}/../scripts/get_hot_now.py --source 知乎,百度,今日头条

# 按类别拉取(使用 hot_push_config 的 sources 和关键词过滤)
python {baseDir}/../scripts/get_hot_now.py --category emotion

# 输出 JSON
python {baseDir}/../scripts/get_hot_now.py --source 知乎 --format json

# 拉取并写入数据库(补录)
python {baseDir}/../scripts/get_hot_now.py --source 知乎 --save

参数:--source 平台名逗号分隔;--category 类别 code 如 emotion;--format text/json;--save 写入 hot_items_raw;--limit 每平台条数默认 20。

7.2 定时更新(拉取 + 推送)

职责分工(重要)

  • 拉取:仅由系统 crontab 执行 fetch_hot_items.py,将数据写入数据库
  • 推送:OpenClaw Cron 仅执行 get_hot_now.py --from-db 从数据库读取并推送到渠道
  • 禁止:不要在 OpenClaw 中创建或执行拉取任务(fetch_hot_items.py),拉取由系统 crontab 完成

支持两种方式,按目标渠道选择:

方式一:系统 crontab / Windows 计划任务(飞书/钉钉/Telegram)

  • 每日 7:00、14:00、18:00 拉取:python scripts/fetch_hot_items.py
  • 每日 8:00 推送:python scripts/push_hot_to_im.py(.env 配置 Webhook;钉钉加签需 HOT_PUSH_DINGTALK_SECRET。默认 push_time 07:10,14:10,18:10,测试用 HOT_PUSH_FORCE=1 绕过)

方式二:OpenClaw Cron(飞书/钉钉/Telegram 或 Slack/Discord 等)

  • 飞书/钉钉/Telegram:isolated job 执行 push_hot_to_im.py,脚本推送到对应渠道。拉取由系统 crontab 在 7:00/14:00/18:00 执行 fetch_hot_items.py
  • Slack / Discord 等:isolated job 执行 get_hot_now.py --category emotion,设置 --announce --channel--to,announce 直接推送到渠道(get_hot_now 实时拉取,无需预拉取)

示例(每日 8:00 推送到飞书/钉钉/Telegram,通过脚本;拉取由系统 crontab 7:00/14:00/18:00 执行):

openclaw cron add --name "每日热点" --cron "0 8 * * *" --tz "Asia/Shanghai" --session isolated --message "cd /opt/fastfish-lite && python scripts/push_hot_to_im.py,将热点推送到配置的渠道"

示例(每日 7:10、14:10、18:10 推送到 Telegram,OpenClaw 已配置 Telegram 时;若提示 unknown option --announce 可省略):

# 该任务仅执行 get_hot_now.py --from-db,不要在执行前运行 fetch_hot_items.py。拉取由系统 crontab 在 7:00/14:00/18:00 完成。
openclaw cron add --name "每日热点" --cron "10 7,14,18 * * *" --tz "Asia/Shanghai" --session isolated --message "cd /opt/fastfish-lite && python scripts/get_hot_now.py --category emotion --from-db,将输出作为今日热点简报发送" --channel telegram --to "你的ChatID"

立即测试:创建后执行 openclaw cron run <job-id> --force 可立即运行一次。

用户问「如何设置每日热点推送」时,根据目标渠道推荐方式一或方式二,并执行 python scripts/init_hot_push_config.py(钉钉用 --channel dingtalk)初始化。钉钉加签需在 .env 配置 HOT_PUSH_DINGTALK_SECRET。若选 Telegram + get_hot_now(方式二):系统 crontab 配置 fetch_hot_items.py 拉取,OpenClaw 只创建「每日热点」推送任务,不要创建 OpenClaw 拉取任务。

不支持(需商业版)

  • publish-article:微信发布
  • 账号管理、授权相关命令

商业版

微信发布、授权、原创度检测等需商业版 fastfish。请联系获取。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Podfetcher Tools

Search podcasts, browse episodes, and fetch podcast transcripts from Podfetcher using the bundled Node.js CLI, SDK, or MCP server.

Registry SourceRecently Updated
Coding

Code Reviewer Cn

代码审查、重构建议、安全漏洞检查、命名规范、复杂度分析、注释文档生成. Use when you need code reviewer cn capabilities. Triggers on: code reviewer cn, 圈复杂度估算, 嵌套深度检测, 命名风格一致性, 注释率计算与评级, 重复行检测.

Registry SourceRecently Updated
Coding

Encode

Encode - command-line tool for everyday use

Registry SourceRecently Updated
Coding

Melies

AI image and video generation CLI. Generate images, videos, and movie posters using 50+ models including Flux, Kling, Veo, Wan, and more. Text-to-image, text...

Registry SourceRecently Updated
31Profile unavailable