🌤detecting weather…

SnowBot

把 Telegram Bot 装进手机。插件热加载、后台保活、桌面小组件 — 不是又一个客户端,是 Bot 该有的运行方式。

bot running · polling mode
snowbot — logcat
07-24 14:30:01 SnowBotApp Application started
07-24 14:30:01 BotService Initializing Telegram API...
07-24 14:30:02 BotService ✓ Connected to Bot API
07-24 14:30:02 PluginLoader Scanning plugins/
07-24 14:30:02 PluginLoader Loaded: weather.js v2.0.0
07-24 14:30:02 PluginLoader Loaded: echo.js v1.0.0
07-24 14:30:02 PluginLoader Loaded: counter.js v1.2.0
07-24 14:30:02 PluginLoader Loaded: autoreply.js v1.1.0
07-24 14:30:03 BotService Starting long polling...
07-24 14:30:03 BotService ✓ Bot is live — @YourBot
07-24 14:30:05 UpdatePoll Received 3 updates
07-24 14:30:05 Dispatcher /weather 北京 → weather.js
07-24 14:30:06 weather.js ☀️ 北京: 32°C, 晴天
07-24 14:30:08 Dispatcher /echo hello → echo.js
07-24 14:30:08 echo.js → hello

首页不是仪表盘,
是 Bot 的实时状态。

打开 SnowBot 就能看到你的 Bot 在做什么。不是统计数据,是真实发生的事情。

运行状态

活的,不是存档

Bot 运行状态、在线时长、当前模式一目了然。

@YourBot — polling
uptime: 14h 23m
mode: foreground service
wakelock: held
消息流

每条消息都有迹可循

谁发了什么、哪个插件处理的、返回了什么。

user_2847 /weather 上海
weather.js 200 (1.2s)
group_chat "今天天气"
autoreply.js triggered
今日

用数字说话

消息量、活跃插件、错误率。

0
消息
0
插件
0
错误率

写一个文件,放进 plugins 目录,Bot 自动加载。不用重启,不用重新编译。

热加载

放进目录就生效,删除就卸载。

多格式

DEX、JAR、JS — 按需选择。

隔离运行

每个插件独立沙箱,互不影响。

内置 API

sendMessage、onCommand、onCron。

plugins/weather.js
// @name 天气查询
// @commands /weather, /天气
var API = "https://api.open-meteo.com/v1";
function onCommand(event) {
var cmd = event.getCommand();
var args = getArgs(event);
var chatId = event.getBase()
.getChatId();
if (cmd !== "/weather") return;
var geo = geocode(args.join(" "));
var w = fetch(
API + "/forecast?lat=" + geo.lat
+ "¤t=temperature_2m"
);
sendMessage(chatId,
"☀️ " + geo.name
+ ": " + w.temp + "°C"
);
}
技术栈
Kotlin2.1.0
Jetpack ComposeBOM 2024.12
Material 3Latest
Hilt2.53.1
Room2.6.1
Retrofit2.11.0
DataStore1.1.1
Glance1.1.1
WorkManager2.10.0
minSdk29
targetSdk35

不只是发消息。

📋

实时日志

运行日志实时查看,按级别筛选,关键词搜索。

INFO BotService: Polling started
INFO PluginLoader: 4 plugins loaded
WARN RateLimiter: Approaching limit (48/50)
⚙️

灵活配置

Token、Chat ID、轮询/Webhook、保活模式,全部可调。

📱

桌面小组件

Glance Widget 显示状态和统计,不用打开 App。

🔋

后台保活

前台服务 + WakeLock + 电池优化白名单。

🔌

插件生态

6 个内置示例插件覆盖天气、自动回复、群管理。

weather.js v2.0.0 — 全球天气查询 · Open-Meteo
echo.js v1.0.0 — 消息回声测试
counter.js v1.2.0 — 群内计数器
autoreply.js v1.1.0 — 关键词自动回复

Clone, Build, Run.

没有注册,没有 API Key 申请,没有付费计划。一个 git clone,一个 gradle build,你的 Bot 就在手机上跑起来了。

📦 版本: v1.1.0
📱 要求: Android 10+ (API 29)
📐 大小: 74.5 MB
📜 许可: MIT License
扫码下载 APK