🌌 NASA 每日一图
插件名称: Astronomy Picture of the Day(APOD)
当前版本: v0.0.1
获取 NASA 当天的每日天文图片,并按配置返回图片、标题、日期和说明。
插件还可以调用 AstrBot 已配置的大语言模型,将英文标题和说明翻译为简体中文。
🚀 快速开始
在聊天中艾特 bot 并发送:
@bot apod
bot 会根据管理员配置返回以下内容中的一部分:
- 当日天文图片;
- 图片标题;
- APOD 日期;
- NASA 官方说明;
- 翻译后的简体中文标题和说明。
⌨️ 命令
| 命令 | 权限 | 说明 |
|---|---|---|
@bot apod | 所有人 | 获取今天的 NASA 每日天文图片 |
@bot sid | 管理员配置辅助 | 获取当前会话的 UMO,用于配置自动推送目标 |
sid返回的是会话标识,主要用于管理员设置自动推送。普通用户一般不需要使用。
✨ 功能特点
| 功能 | 说明 |
|---|---|
| 每日天文图片 | 获取 NASA 当天发布的 APOD 内容 |
| 高清图片优先 | 优先发送 hdurl,不存在时回退到普通图片地址 |
| 中文翻译 | 可将英文标题和说明翻译为简体中文 |
| 内容自由组合 | 管理员可决定是否显示图片、标题、日期和说明 |
| 分段发送 | 图片和文字可以分多条发送,也可以合并成一条消息链 |
| 自动推送 | 可在指定时间向一个或多个群聊、会话主动推送 |
| 数据缓存 | 缓存 APOD 数据,减少重复访问 NASA API |
| 翻译缓存 | 相同文本优先使用已有翻译,减少模型调用 |
| 失败重试 | 遇到临时网络或服务错误时,会按配置进行有限次重试 |
📅 自动推送
管理员可以设置每天定时推送 NASA 每日一图。
自动推送支持:
- 设置是否启用;
- 设置目标群聊或会话;
- 设置每日推送时间;
- 限制单轮最多推送数量;
- 对同一天的 APOD 去重,避免重复推送;
- 一次拉取内容后复用到多个目标会话。
推送时间采用运行 AstrBot 的服务器本地时区。
默认推送时间为09:00,实际设置以管理员配置为准。
🌐 返回内容说明
| 内容 | 说明 |
|---|---|
| 图片 | 优先发送高清地址,高清地址不存在时使用普通地址 |
| 标题 | 可发送英文原文或简体中文翻译 |
| 日期 | 显示 APOD 对应日期 |
| 说明 | 可发送 NASA 官方英文说明或简体中文翻译 |
如果当天的 APOD 不是图片类型,而管理员又开启了图片发送,插件会返回错误提示,不会继续发送纯文本内容。
🌏 中文翻译
标题或说明需要同时满足以下条件才会自动翻译:
- 对应内容已设置为显示;
- 对应的翻译选项已开启;
- 管理员已正确选择 AstrBot 的 LLM 提供商。
翻译目标语言为简体中文,以准确直译为主,不会额外扩写或评论。
⚠️ 使用注意
- APOD 内容来源于 NASA,当天数据可能因网络、API 或内容类型而暂时无法获取。
- 如果管理员未配置有效的 NASA API Token,可能遇到额度或授权问题。
- 中文翻译依赖管理员配置的大语言模型,模型不可用时翻译可能失败。
- 网络超时、NASA API 限流以及
502、503、504等临时错误,可能导致响应变慢。 - 每日一图以 NASA 发布内容为准,插件不能指定查询其他日期。
❓ 常见问题
Q:为什么没有显示中文?
可能是管理员关闭了翻译,或者没有配置用于翻译的 LLM 提供商。
Q:为什么只显示文字,没有图片?
管理员可能关闭了图片发送,或当天 APOD 不是图片类型。
Q:为什么图片和文字分成了好几条消息?
管理员开启了分段发送。分段发送可以让内容更自然;关闭后会合并成一条消息链。
Q:为什么今天和刚才获取到的内容一样?
APOD 每天通常只更新一次,插件也会缓存当天内容,避免重复请求 NASA API。
Q:为什么命令没有响应?
请确认:
- 已正确艾特 bot;
- 使用的是
@bot apod; - bot 当前在线;
- 插件支持当前平台;
- NASA API 和网络服务正常。
📎 项目信息
- 显示名称:NASA 每日一图
- 项目作者:Cysheper
- 当前版本:v0.0.1
- 支持平台:
aiocqhttp - AstrBot 要求:
>= 4.16 - 开源协议:AGPL-3.0
- 项目地址:https://github.com/Cysheper/astrbot_plugin_Astronomy_Picture_of_the_Day-APOD