DiscordのニュースBotを改修しまくる

毎週日曜日の記事更新。今回は例のニュースBot改修のお話。
やはり未熟。いろいろな面で対応が出来ていなかった!

先日作成していました、Discordのニュース通知Bot。

「ゲームの無料配布」を逃さないように、
その記事をピックアップして、Discordに通知するというもの。

このBot自体は、記事にしていますのでそちらを参照してください。


取得ニュースサイトの追加

作成したときは、AUTOMATONさんのみの取得でした。

ただ、1つだけだと割と見逃す可能性があったので、
次に海外ゲームにつよつよなGame*Sparkさんを加えることに。

ただ、RSSフィードが動いていない?

そう思って問い合わせしたらすぐに直してくれた。
ありがとうございます….

んで、その後ついでに4Gamerさんも追加。

#各ゲームサイトの名前
site_name_list = []
site_name_list.append('AUTOMATON')
site_name_list.append('GameSpark')
site_name_list.append('4Gamer')

#RSSフィードのURL
rss_url_list = []
rss_url_list.append('https://automaton-media.com/feed/') #AUTOMATONのRSS-URL
rss_url_list.append('https://www.gamespark.jp/rss/index.rdf') #GameSparkのRSS-URL
rss_url_list.append('https://www.4gamer.net/rss/index.xml') #4GamerのRSS-URL

#各ログのファイルパス
log_path_list = []
log_path_list.append('D:/discord_bot/data/log_am.txt') #AUTOMATONのlogファイルパス
log_path_list.append('D:/discord_bot/data/log_gs.txt') #GameSparkのlogファイルパス
log_path_list.append('D:/discord_bot/data/log_4g.txt') #4Gamerのlogファイルパス

追加するために、今後もしかしたら増えるかもなんて思って、配列に。

動作時は、取得などの一連動作をforeachでサイト分動作させる。

この課題は、「各別サイトで同ゲームの記事があがる」点。

下手したら3回も同じ意味の記事が流れる。

でもそれを排除するには、ちょっと考えないといけないので、
それは後々ってことで今は我慢。


サイト不具合の対処

最近AUTOMATONさん側でサーバー不安定かなにかで動作しなかった。

一度クッション挟む対処をされていたので、
RSSの取得でもそのページが来る。それをアプリ側では取得してさばく。

その場合、あるべき配列がないため、それでIndexErrorが出ます。

んで、チャット送信まで出来るダンマリ。

なので、頑張って急いで修正。

例外処理を追加。

本来あるべき配列がエラーだったらその処理を飛ばす。

#最新のニュースURLに置き換える
try:
    with open(log_path, mode='w') as f:
    f.write(d.entries[0].link)
except IndexError:
    print('正常にニュースを取得できませんでした。')
    print('次のサイトのRSSフィード等を再度確認してください: '+ site_name)

今回ので、例外処理って大切だと強く思ったのです。


この前、ラズパイを買ったのでそのうちこのBotをラズパイに移したい。

んでもって、24時間稼働できるようにしたい。

ニュースは別に一日2回だけど、それ以外のBotとか作ってみたいし….

MinaSnooze
  • MinaSnooze
  • 割と多趣味な社会人。
    アニメ作品だとワールドウィッチーズシリーズが大好き。
    モータースポーツにも興味があるが、今のところF1が一番好き。
    音楽や音楽ゲームも大好きで、様々な音楽ゲームに触れたいと思う日々。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)