おはようございます,へいほぅです.
この記事は Kyoto University Advent Calendar 2019 の8日目の記事です.

7日目は くに(❛ω❛. _) )_みち 氏による 『7月から記録している「幸福度」とそのグラフについて』 でした.飲酒時は幸福度が比較的高いという結果が面白いなと思いました.それぞれ一人で飲んでいたのか人と会って飲んでいたのかが気になりますね.
このアドベントカレンダーの前に書かれた 『[雑感]目の前の勇気に全力で』 もそうですが,くにみち氏は文章が上手くて羨ましいです.

あと5日目の はなま💮 君による 『ウイスキーはいいぞ』 は面白かったです.僕はウイスキーの知識は全然ですが,アイラモルトのArdbegとかは好きなのではなま君に色々教えてもらいたいなぁと思ったり.イチローズモルトは是非飲んでみたい.

そして,京大のアドベントカレンダーを作ってくれた ど(∩❛ڡ❛∩)ら 君と ぷらす 君,ありがとうございます.


今回は,僕のTwitterアカウントに付属しているbot機能について,あまり技術的ではない話をしようと思います.皆さん文章能力が高くて恐れ多いですが,僕は自然言語を書くのが本当に苦手なので,温かい目で見守るかブラウザバックしてください.

経緯

僕が @5ebec としてTwitterを始めたのは約2年前,僕が二十歳の誕生日を迎えた時です.

Twitter自体は中学3年生から高校1年生にかけてやっていたのですが,受験勉強もあって辞めていました (Twitter開始日が2013年3月からになっているのはその為).所謂ネット初心者のような発言をしていたため,5年ROMっといて正解でしたね.

Twitterを再開するにあたり,単純にやるだけでは面白さが無いと思い,「メインアカウントでありながら皆に使ってもらえるbotにする」という設定でbot機能を搭載することにしました.

ちなみに,言語は当時存在を知ったPython3系を用いており,heroku上で動かしています.
では,僕のアカウントに搭載されている2つのbotについて紹介します,

1. Ameyadar

これは完全に俺得な機能ですが,1時間先までの京大吉田キャンパス上空の予想降水量によって僕の名前の横にアイコンが付きます.
全く根拠のない数式によって,時間と雨量の二次元データを 🌂, 🌦, ☂️, 🌧, ☔, ⛈, 🌀 の7段階のアイコンに変換しています(適当に決めた割には意外と体験と合致している印象です).

例:Ameyadar

こんな感じ.

松屋行きたいけど傘持ってくべきかな?ってときにめちゃくちゃ役立ってます.
ソースコードは公開しておりますので,自分のアカウントにも導入したいという人は使ってみてください.勿論 @5ebec を見ていただいても良いです.

2. 単位取得率bot

さて,本日の主役です.

機能

基本的な機能はbioにもありますが@5ebec 宛に京大の講義名(正式名称)をツイートすると単位取得率教えてくれる.」これだけです.
僕宛に科目名をメンションするだけで2013-2018年の平均単位取得率を返します.

「詳細」

その6年間の詳細が知りたい場合は,科目名の後に「詳細」と付けていただくことで各年の単位取得率と取得者数,履修者数が確認できるようになっています.

「シラバス」

ここからはおもちゃ機能(?).シラバスが検索できます.

(割と便利だと思っているので皆んな使って欲しいな〜)

「占い」

最近,履修取り消し期間 (122, 123) に合わせて「単位を取るか落とすか占う」という悪魔のような機能が付きました.

画像を見れば分かりますが,単位取得率の確率で取れるか落とすか言うだけです.

工夫

マニュアル不要で他の人が使っているのを見ればすぐに使え,文字数ができるだけ少なくて済むようにするという点には拘っています.プレフィックスやオプションを付けずに科目名を言うだけで反応するようにしているのはこのためです.

これに関することとして,作ってから1年間ほどはメンションに科目名が含まれていたら返信するようにしていました.
これにより所謂”誤爆”が起こるのですが,普通に使われるより誤爆の方がふぁぼやRTがされやすいので(悲しい),誤爆を誘発することで結果的に認知されて皆に使ってもらえると考えたのでこうしていました.

今は有難いことに京大生以外のフォロワーも増えてきたので修正しています.

言わずもがなですが,botをメインアカウントに付けているのは拘りですね.誤爆を引き起こす最大の要因です.
この「bot機能をメインアカウントに搭載する」という行為のメリットとデメリットを以下に述べます.

botをメインアカウントに搭載するメリット

  • メインアカウントをフォローしてもらえる
    ありがとうございます.
    単位取得率botを使用する目的でフォローしてくださる方はフォロー返ししているつもりなので,もしフォローをされていなければ何らかの方法で教えていただけると有難いです.

  • 「単位取得率の人」と言われる/「単位取得率の人です」と言えば分かってもらえる

    「〇〇の人」と言われるのは嬉しいです.

  • 多少返信出来なくても許される(と僕が勝手に思っているだけかもしれない)
    ある程度の表記揺れには対応していますが,正式名称にしか反応出来ない以上,返信出来ないものはあります.
    あくまで中身は人間であるので,返信出来なくても許されると信じています.てか許してください.(手動で返信していると思っていた人もいるようです.それは流石に無理です.)

botをメインアカウントに搭載するデメリット

  • 自分のツイート欄がbotによる返信で埋まる
    僕はTwitterクライアントとして TweetDeck を使っているのですが,ユーザーのツイート欄は通常のツイートもリプライも同じ所に流れます.結果として自分のツイート欄がほぼbotによる返信で埋まります.
    自分のツイート/RTを見たいことは意外とあるので,Twitterの検索機能を用いて
    from:5ebec -filter:replies include:nativeretweets
    の検索結果をTweetDeckのカラムにすることで確認できるようにしています.

    左が検索結果,右がユーザーのツイート欄.

  • メンションが地獄
    皆が単位取得率を気になる時期 (新学期開始時,履修取消期間,期末試験直前) は通知欄がエグいことになります.モバイル版公式クライアントでは,ふぁぼやRTと違いメンションは通知が纏められないのでバズったときよりカオスになります.
    この場合はプッシュ通知が五月蝿くなるので通知を切るのですが,botに対してではないメンションも通知オフになり,他のメンションによって流れて見逃してしまうことが多々ありました.
    これに関しては,僕自身が会話しないことで対策としています(これは半分冗談ですが半分本気です.僕が「RTして空リプ」を多用するのはこれが原因の1つです).
    更に,先程と同様にTwitterの検索機能を用いて
    to:5ebec -from:5ebec -min_faves:1
    の検索結果をTweetDeckのカラムとすることで,ふぁぼが付いていない自分宛のメンションの一覧が確認出来るようにしています.
    bot発動時は自動でふぁぼるようにし,その他のメンションには手動でふぁぼを付けるようにしているので,未読のメンションだけがここに流れるというわけです.
    ただしこれには問題点があり,鍵垢は min_faves が判断出来ないらしくふぁぼが付いていても流れてきてしまいます.改善策があれば誰か教えてください.

おまけ

運用してて面白かった出来事です.

  • 大喜利
    たまにリプ欄が大喜利になるのが好きです.遊んでくれてありがとうございます.

    コミさん…😢

  • 教員に認知される
    詳しくは言いませんが「その講義の担当教員に単位取得率botを利用される」という実績を解除してしまったときはどうしようかと思いました.絵文字にすることで社会性を獲得しました.

    面談で教授と相談する時にこの単位取得率botが役に立ったという意見を耳にしたこともあります.素直に喜んで良いのか分かりませんがありがとうございます.

まとめ

まあ色々ありますが,メインアカウントにbot機能を搭載して運用することは可能です.やる人がいるのかわかりませんが参考にしてみてください.
また,単位取得率botは気が向いた時にアップデートしていくつもりです.意見のある方は何らかの方法で僕に伝えてください.

ここまで読んだ方は以下のボタンを押して是非使ってみて下さいね.

Kyoto University Advent Calendar 2019 の9日目の担当は 110416 さんです.
宜しくお願いします.