nodeの勉強がてらツイ廃のためのくっっそ便利なリマインドbotをつくった
このまえ僕が作ったアイデアサイト「 HUKIDAME」にこんなアイデアの投稿がありました。
https://hukidame-idea.sakura.ne.jp/HUKIDAME/orig_idea/11538313222.cgi
僕の周りでも夜中のツイッタータイムラインで「明日〜〜やらないといけないの誰か言って」って中高生がつぶやいてるのをみるのは珍しくないですし、作ってみようと思いました。
つくりました。
ちょっとしたことをあなたの代わりに思い出してくれるTwitterbot、「リマインドくん」です。
— リマインドくん(試験中) (@reminder_fever) October 9, 2018
✌ pic.twitter.com/znGf9EpW8u
やったことはtwitterのAPIを利用してNode.jsでアレコレした感じです。
処理としてはタイムラインの"@reminder_fever"が含まれてあるツイートを監視してそのツイート内容を取得、取得時間とツイートに書いてある指示された時刻をUNIX時刻に変換して比較して何秒後にツイートで指定された時刻が来るか計算して、その間処理を止めているって感じです。(こういうのって説明すればするほどわけがわからなくなりますね)
処理の待機にsetTimeOut関数を利用しているのですが、この関数って待機時間は完全に他の処理を止めているって認識していたので誰かがリマインド機能を使用中は他の人が機能を使うのって無理...って思ってたんですけど、なんか上手くイケてますね。複数の依頼というかリマインダーを同時にこなせてます。公式のsetTimeout関数についてのやつを読んでもいまいち理解できず...って感じでした。
問題:サーバー環境について
普通に今問題が起こっています。サーバーのやつです。
Herokuでアレコレするといいよって教えてくれたので(そういうのさっぱりでそれ関係のQiitaとか読んでもイマイチピンとこない語句ばかりでだめですね。それらへんとか勉強する必要のやつがありそうです)じゃあそれで、ってかんじで友人に完全に手伝ってもらいながらHerokuで動かしてみたのですがsetTimeout関数が環境の相性に悪いのか一切動作しません。
とりあえず動作させておきたいと思っているので苦肉の策として僕のThinkPad上で動かしているのですが、やはり不安定です。
最悪無理そうだったらRasPiをもうサーバー代わりに使おうかなとか思っています。そこまでアクセスされることもないでしょうし負荷も大きいわけでもないのでイケるかな...なんて考えています。
このボットについて
これ最後に書くのはおかしいと思ったのですが、ふと「あれ、肝心のボットの説明してなくね?」って思ったのでもう最後に書いちゃおうかと思います。
このボットのやることは単純です。
ユーザがリプライで「あのね 10:11:20:00 洗濯物をとりこむ」(”あのね”と時間指定部分と要件はそれぞれ半角スペースで区切ってください。それと時間指定の数字は半角でお願いします)とかリプライを送ると
@reminder_fever あのね 10:11:6:20 洗濯物を取り込む
— E-10 (@ntenten_Q) October 10, 2018
ボットのほうがリマインド機能の依頼を受理したメッセージを返してきます。
「洗濯物を取り込む」って11日の6時20分くらいに送るね ;)
— リマインドくん(試験中) (@reminder_fever) October 10, 2018
そして指定した6時20分になることでボットから再度指定したメッセージが送信されてリマインド機能の完了って感じになっています。
洗濯物を取り込む
— リマインドくん(試験中) (@reminder_fever) October 10, 2018
随分朝の早い洗濯物の取り込みですが、朝の早いこの人はこれで洗濯物を取り込むのを忘れずに済んだことでしょう。
このボットのヘッダー画像にも書いていますが、皆さん忘れ物をすることはあってもtwitterを開くのは絶対に忘れないですよね。
だからこそツイッターのタイムライン上で「明日〜〜しなきゃいけないの私に言って」とか自分のTwitterでの名前を忘れてはいけないことの事柄にしたりして忘れないようにするのだと思います。
実際かなり有用な手だと思いますしだからこそ僕はこのボットを作りました。
忘れっぽいツイ廃のあなたに活用してほしいなと思っています。
まとめ
ボット作りたのじい〜〜〜〜って言いながら実装していました。ダラダラしたいつもの開発より結構スピーディに完成(幻滅にはまだ問題などがあり完成とは言えないかもしれませんが)したので、良いのではないかななんて思っています。
なにが良かったんだろ...ダラダラしてたのはしていたのでずっとやることにコミットしたのがよかった点です!とは言えないしなあ...。
ボットですが、とりあえずはこのサーバー問題の解決を急ぎたいです。
というかそれが目下のところ目の上のコブって感じですね。目下なのに目の上wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwはい
これが一段落ついたので次は久しぶりにハードの方に取り組みたいななんて思っています。PICやらマイコンのやつに手を出したい。
ちなみに一番最後なので告白するんですけど、HUKIDAMEに今回のボットのアイデアを投稿したのはもちろん僕です。
ばいばい
りまいんどくんのツイッターアカウントです。FF関係じゃないと反応できないのでフォローしたほうがいいです。
[ この記事はブログ投稿者の憶測や考えによりつくられています。
よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]