はじめに
こんな感じのBotを作りました:
経緯
~ とある日の会話にて ~
私「私は遊戯王オラクルだぞ、カードテキストを言ってみてよ、カード名を当てるからさ」
友人「ふーん、じゃあこれは?」
私「わかんないです...」
友人「これは?」
私「...」
~~~~~~~~~~~~
ということがあったので、自分の知識を高めるために作りました
機能
-
「はじめに」で見てもらった感じで、スラッシュコマンド
/ygoquiz new
で問題を生成し、/ygoquiz ans <カード名>
で回答(出題範囲は全部のカード) -
分からなかった時のための、
/ygoquiz giveup
コマンド
-
問題はユーザーごとに管理されるので、誰かがクイズに取り組んでいる間にも他の人がクイズをすることが可能
-
問題は表記通りやルビ、どちらでも回答可能。また、微妙な表記揺れを吸収するのにこだわりました
技術などなど
- Rust - たまに手厳しすぎるが強力な糖衣構文を持つ言語
- Shuttle - つよつよインフラ
- Serenity - つよつよDiscord Bot用ライブラリ
- Yu-Gi-Oh! API - 有志の方による、遊戯王のデータを取得してくれるAPI (日本語のテキストは返してくれない)
- 遊戯王OCGカードデータベース - 上述のAPIでカードの ID を決定した後、日本語のテキストを得るためにスクレイピング
リポジトリ
Magic: the Gathering 版も作りました
参考 (Botの動かし方もここを)