# 如何使用 Telegram 订阅 Pixiv 新图

By [gunyun](https://paragraph.com/@gunyun) · 2025-01-17

---

作为一名 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 | 一分钟注册，轻松订阅海外线上服务](https://bit.ly/bewildcard)

使用门槛极低，微信支付宝均可开通使用。支持开通各类海外平台：ChatGPT、Claude、Google Play、Apple Store、OpenAI、X、Patreon、MidJourney、Amazon、POE、Microsoft、Facebook、GitHub、Telegram、PayPal等各类海淘订阅平台。使用邀请码：ACCPAY，立享消费0手续费，减免开卡费用。

---

*Originally published on [gunyun](https://paragraph.com/@gunyun/telegram-pixiv)*
