Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

RSSフィードをDiscordに流せるツール『rss2discord』のご紹介

RSSをDiscordに流したいって思ったこと、ありますよね?私もそうでした。しかしながら調べてみると単体でRSS配信を行うツールはないようで、なんでもできる多機能botがそのうちの機能の1つとしてRSS機能を提供していたりする。けどRSSを配信するためだけに別にbotを1つ導入したくはないというのが実情でした。

そこで、作りました。

github.com

動作環境

  • Java17以上の環境(ネイティブ対応予定)
  • 単一のRSSまたはAtomPubフィードをを処理可能
    • 複数フィードを投稿したい場合は複数個起動してください
  • 定期的にプログラムを起動するシステム
    • LinuxだとCron

使い方

使い方は簡単。2つの環境変数をセットして30分毎に起動するだけです。動作環境はJava17を想定していますが、8でも動くかも。

インストール

インストールは不要です。GitHubから最新版のjarファイルをダウンロードしましょう。不具合があったら随時修正していくので、最新のものを選んでください。

github.com

ウェブフックの設定と起動

そしたらウェブフック用URLを取得しましょう。これもDiscordの画面をポチポチするだけなので簡単。

チャンネルを右クリックして表示されるメニューから「チャンネルを編集」を選択する

「連携サービス」タブを開き「ウェブフックを作成」ボタンをクリックする

「ウェブフックURLをコピー」するとウェブフック用URLがクリップボードに収まる

こうして取得したウェブフックURLと、取得したいRSSフィードのURLを環境変数にセットして

RSS_URL='RSSのURL' WEBHOOK_URL='ウェブフックのURL' java -jar out.jar

これが30分ごとに起動するようにしてください。 これより高速でもあまり需要ないかなと思ったので、今のところ30分で固定しています。 需要があったら対応します。

ローカルで起動する場合

ローカルで起動する場合はcronなどを使って毎0,30分に起動するなどして30分ごとに起動するようにしてください。

AWSで起動する場合

このjarファイルはAWS Lambdaで起動できるように設計されています。タイムアウトは1分程度に設定すると問題なく動作します。

また、Lambdaハンドラとしてio.github.windymelt.rss2discord.Rss2Discord::handlerを指定してください。

結果

するとDiscordの指定したチャンネルに記事が流れてくるようになります。

こんな感じ

どうぞご利用ください。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?