5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

discordrbでなろう小説のタイトルを検索するbotを作ってみた

Last updated at Posted at 2018-04-15

以下のようなコマンドで該当するなろう小説の本のタイトルが返ってくるというもの

/narou 本のタイトル
タイトル1
タイトル2
...
タイトル20

何故作ったのか

同じチャンネルの人がなろう小説の話をしていたのでdiscordのbot作成の練習に丁度いいと思ったため。
discordrbを使用したのは単純にRubyでコードを書くのが楽しいからです。

今回作成したbot

今回使用したgem

discordrb

discordのbotを作成するため+rubyを使いたかったため使用

bot = Discordrb::Commands::CommandBot.new token: MY_TOKEN, prefix: '/'
bot.command :narou do |event, *args|
  # /narouコマンドの処理
end

typhoeus

httpリクエストのために使用するgem
なろうの検索をリクエストするために使用

request = Typhoeus::Request.new('url')
request.run

nokogiri

httpリクエストで帰ってきたhtmlをパースするgem
本のタイトルを抽出するために使用

@doc = Nokogiri::HTML(response.response_body)
@doc.css('.tl').length.times do |index|
  zip << @doc.css('.tl')[index].inner_text << "\n"
end

処理の流れ

  1. チャットに/narou 本のタイトルを入力する
  2. なろうbotが指定した本のタイトルでhttpリクエストをする
  3. 返ってきたhttpを本のタイトルだけを取り出すようにパースする
  4. チャットにパースした本のタイトルを反映する

作ってみた感想

最初はbot作成は面倒だと思ったが、実際に作るとそんなことはなかった。むしろ楽しいです。
また、discordrbは使い方がwikiに乗っていたので詰まることがなかった。
discordrbの開発者に感謝! :tada:

参考サイト

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?