开始使用
sub · stats /səb ˈ stats/
- 一个用于获取您在各种服务中粉丝数量的无服务器API
*版本2.0仍处于"测试阶段",并非所有功能都从1.0版本移植过来。详情请查看下方👇
基础用法
https://api.swo.moe
您的请求:
GET /stats/:source/:key
我的响应:
{
source: string,
key: string,
failed: true | false,
count: number | string // 当source不等于'common'时,通常是一个数字
}
没错,现在就是这么简单。;)
*注意,key
需要进行URL编码,如果您请求feedly
、inoreader
或feedspub
路由时请记住这一点。
制作徽章 🎫
当然可以!事实上,substats与shields.io
的/dynamic
路由配合得很好。下面这些徽章都是使用substats的数据动态生成的:
[
你可以使用我们的徽章生成器在 substats.swo.moe 轻松创建自己的徽章。
高级用法 - /common
路由 🍀
如果你想使用的数据源尚未被支持,但它只是一个简单的 GET
请求,你可以使用以下路由:
GET /stats/common?endpoint=<url>&datapath=<path>
例如:
GET /stats/common/?endpoint=https://api.genshin.dev/domains/cecilia-garden&datapath=rewards.0.details.2.mora
在这个例子中,endpoint
是一个 API 地址:
https://api.genshin.dev/domains/cecilia-garden
这个 URL 返回的响应看起来像这样:
{
"name": "仙跳墙",
"type": "锻造",
// ...
"rewards": [
{
"details": [
{ /* ... */ },
{ /* ... */ },
{
"mora": 1125,
},
]
}
]
}
因此,我们提供的 datapath
是 rewards.0.details.2.mora
。(我特意选择了这个数据,因为它包含一个数组,用来演示如何通过索引引用数组中的 mora
值。)
你提供的 endpoint
响应会使用 object-path 进行解析,构建引用响应中值的 datapath
的方法是相同的。
在这里试试我们的 /common
路由 API URL 生成器:substats.swo.moe/common。
支持的数据源
- 爱发电
- 哔哩哔哩
- 酷安
- Feedly
- FeedsPub
- GitHub
- Inoreader
- 即刻
- Mastodon
- Medium
- 网易云音乐
- 少数派
- Steam 游戏
- Steam 好友
- Telegram
- Unsplash
- 微博
- 中文维基百科
- 知乎
- 掘金
- 语雀
有什么新变化?
是的,substats
现在已经是v2.0-beta
版本了!除了API格式外,大多数更新都在底层进行。
- 使用TypeScript重构。
- 更新至CloudFlare的模块式workers。
- Worker现在使用
esbuild
而非webpack
构建,速度更快! - 已废弃对Newsblur的支持~~(似乎没人使用)~~。
- 现在支持KV存储,包括
instagram
在内的一些路由依赖此功能来存储cookies(仍在开发中)。 - 2.0版本中的缓存功能已移植到模块式workers,一如既往地受到支持。
- 新的文档和查询构建器。
如果你正在寻找2.0版本中的多源和查询功能 - 它仍在重构中,因为itty-router
无法解析多个查询参数,暂时阻碍了这项功能的实现。在我们等待期间,你仍可以使用1.0版本的路由。v1.0版本的README和文档(已废弃)。
贡献
这是一个由pnpm
管理的monorepo。./worker
目录包含Cloudflare Worker模块,而./docs
是一个用于文档的React网站(由Vite和Chakra UI驱动)。详情请查看两个包的README.md文件。
赞助
开源工作很艰难!如果你恰好喜欢这个项目并希望我继续下去,请考虑赞助我或提供一次性捐赠!感谢所有的爱与支持!
🧸 请捐赠 - 微信/支付宝 · Patreon · 爱发电