# 如何使用 Telegram 订阅 Pixiv 新图 **Published by:** [gunyun](https://paragraph.com/@gunyun/) **Published on:** 2025-01-17 **URL:** https://paragraph.com/@gunyun/telegram-pixiv ## Content 作为一名 Pixiv 用户,想要时刻与自己喜爱的画师的更新保持同步,已经成为一种常见的生活习惯。然而,手动检查每一位画师的新图既繁琐又耗时,是否有更高效的方式来自动推送这些新图呢?在本文中,我们将探索如何使用 Telegram 轻松订阅 Pixiv 新图并进行自动推送。 获取 Pixiv 新图的订阅方式 我曾尝试使用 RSS 订阅来跟踪 Pixiv 上画师的新图。通过在 RSSHub 上查找相关接口,我发现可以通过 RSS 获取到画师的更新信息,但问题是仅靠 RSS 并不能完全满足我的需求。于是,我考虑将这些更新推送到 Telegram 上,借此解决这个问题。 我曾经使用过基于 IFTTT 的解决方案,将 RSSHub 生成的内容推送到 Telegram 频道。然而,IFTTT 的免费用户只能创建三个 Applet(小程序),这一限制让我不得不寻找其他更灵活的方案。因此,我决定自己动手,开发一个类似的工具,不仅能增强代码能力,还能提供更高的自定义性。 搭建订阅工具的思路 我的解决方案很简单:首先使用 RSS 采集画师更新的数据,然后通过 Telegram 的 Bot API 接口将这些信息发送到指定的频道。 由于我习惯使用 Node.js 进行开发,这次也选择了 Node.js 作为开发和部署平台。 步骤一:RSS 采集 为了避免手动解析 XML 文件的麻烦,我选择使用一个现成的组件:rss-parser。这个组件能够获取 RSS 内容并将其转换为便于处理的对象形式。 npm i rss-parser --save 使用后,调用接口非常简便。你可以通过传递必要的参数来获取相关数据。 步骤二:数据处理 由于 RSSHub 生成的内容格式优化了阅读体验,数据中包含了我们所需的所有信息。我通过正则表达式提取这些内容,并生成了一个图像的 URL 数组。 例如,对于单张图像,RSSHub 将其处理为如下格式:https://pixiv.cat/*ArtworkID*.jpg。而多图内容则包含多个图像的链接。 const picIdReg = /https:\/\/pixiv\.cat\/(\d+)-?(\d+)?\.(jpg|png|gif)/gi; const artworks = [...item.content.matchAll(picIdReg)]; 然后,我将这些图片的地址用于生成预览图和下载图,确保 Telegram 频道能够顺利显示和下载。 步骤三:消息发送 在这一部分,我改用了 got 库,直接通过 Telegram 的 sendPhoto 接口将图片发送到频道。为了提升用户体验,我在消息中加入了内联小键盘,允许用户方便地下载原图或预览图。 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 }] ] } } }); 通过这种方式,我们不仅能够推送新图,还能方便用户进行互动和查看。 进一步优化与部署 为了避免每次启动时都重新发送所有图片,我在代码中加入了一个时间戳管理系统,确保只发送新更新的内容。同时,我还使用了 js-yaml 读取配置文件,方便管理订阅信息。 最终,这个订阅工具被我整理并发布到了 GitHub 上,用户可以通过以下命令运行: pm2 start bot.js --name phandream 完成这些步骤后,您就可以享受自动推送 Pixiv 新图的便利了。 ☞ WildCard | 一分钟注册,轻松订阅海外线上服务 使用门槛极低,微信支付宝均可开通使用。支持开通各类海外平台:ChatGPT、Claude、Google Play、Apple Store、OpenAI、X、Patreon、MidJourney、Amazon、POE、Microsoft、Facebook、GitHub、Telegram、PayPal等各类海淘订阅平台。使用邀请码:ACCPAY,立享消费0手续费,减免开卡费用。 ## Publication Information - [gunyun](https://paragraph.com/@gunyun/): Publication homepage - [All Posts](https://paragraph.com/@gunyun/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@gunyun): Subscribe to updates