利用Telegram自动订阅Pixiv新作品指南

作为一名艺术爱好者,时刻关注Pixiv上心仪画师的最新作品已成为一种日常习惯。然而,手动检查更新既耗时又费力。那么,是否存在一种更便捷的方式来接收这些作品更新,不错过每一幅佳作呢?

灵感来源:RSS订阅

RSS订阅作为一种常见的资讯获取方式,自然成为我的首选方案。在浏览RSSHub的文档时,我发现了一个用于订阅Pixiv画师新作品的接口。

不过,单纯的RSS订阅需要依赖专门的阅读器,使用起来不够灵活。于是,我决定将这些内容直接推送至Telegram频道,实现即时接收。我曾尝试使用IFTTT将RSSHub生成的内容推送至Telegram,但随着IFTTT改为付费模式,非付费用户只能创建三个小程序,这一方案被迫放弃。

自定义解决方案

作为开发者,我决定亲自打造一款工具,不仅能满足需求,还能提升开发技能。于是,我着手研究相关API接口,制定开发计划。核心思路是:通过RSS采集数据,处理后通过Bot的API接口发送至Telegram频道。基于开发习惯,我选择Node.js作为开发平台。

Step 1: RSS数据采集

为实现自动化采集,我使用了rss-parser组件,它能够获取RSS资讯并转化为对象,便于后续处理。安装命令如下:

bash
npm i rss-parser –save

调用方式简洁明了,支持异步处理,可根据需求进行调整。

Step 2: 数据处理与提取

RSSHub生成的内容格式以方便阅读为主,但其中包含了我所需的完整信息。通过正则表达式,我可以轻松提取关键数据。例如,对于单张图片,链接格式为`,多图则会附带-PicID`后缀。可利用以下正则表达式进行匹配:

javascript
const picIdReg = /https:\/\/pixiv.cat\/(\d+)-?(\d+)?.(jpg|png|gif)/gi;

匹配结果将生成一个数组,包含图片ID及其他相关信息。

Step 3: 消息推送机制

为了避免图片过大或请求限制的问题,我引入了请求缓冲队列和小图预览功能。通过Telegram的Bot API,我直接调用sendPhoto接口发送图片,并添加了内联键盘按钮,方便用户查看原图或直接下载。

javascript
const apiBaseUrl = https://api.telegram.org/bot${confData.bot.token};

got(‘sendPhoto’, {
method: ‘POST’,
prefixUrl: apiBaseUrl,
json: {
chat_id: confData.bot.chat,
photo: picItem.preview,
caption: picItem.text,
reply_markup: {
inline_keyboard: [
[
{ text: ‘🌏’, url: picItem.url },
{ text: ‘⤵’, url: picItem.pic }
]
]
}
}
});

部署与使用

最终,我将整个项目整合并发布到Github,可通过PM2等工具进行部署:

bash
pm2 start bot.js –name phandream

一切准备就绪后,您的Telegram频道将自动接收Pixiv新作品更新,从此不再错过任何一幅精彩作品!

👉 野卡 | 一分钟注册,轻松订阅海外线上服务

上一篇 2025年3月24日
下一篇 2025年3月24日

相关推荐