不真面目駄学生の妄言

国際関係を学ぶコミュ障限界不真面目駄学生の書き散らし。

不真面目すぎて秘書を作った話

前回のゼミ日記は、不真面目駄学生を名乗るには不適切なほどに真面目な内容であった。量も14,000字を超え、参考文献リストまで付すことになるなど、もはや大学のレポートほどの内容となってしまった*1ことを、実はすこし反省している。そこでこの記事では、私がいかに不真面目であるかを語ると共に、この対応として秘書を作った話をしようと思う。

 

不真面目な話

ゴミを出すのが面倒くさい

下宿している大学生なら経験があると思うのだが、ゴミ出しって面倒くさいのだ。ゴミをまとめて集積所へ持っていくことが面倒(しかも朝にしなければならないのだ)なのは言うまでもないが、不真面目駄学生の私にとっては、そもそも前日に明日はなんのゴミの日だったかなと思い出すことすら面倒である。燃えるゴミの日はよい。私はこう見えて自炊はする駄学生なので、生ごみは結構頻繁に出ることから燃えるゴミの日くらいは習慣で覚えた。問題は、毎週出すわけではないが月イチくらいで出したい、しかし隔週になっているようなゴミである。
 たとえば私の住んでいるまちでは、ペットボトルの回収は2週間にいちど。私はペットボトル飲料を毎日飲むので、定期的にペットボトルを捨てなければならないのだが、気づけばペットボトルの日を1日超えていたり、「今週こそ!」と思うとペットボトルの週でなかったりするのだ。優秀な秘書がいて、毎晩「明日は◯◯ゴミですよ」と伝えてくれたらどれほど嬉しいだろうと、不真面目らしく感じるのである。

 

課題を出し忘れる

まさに私が不真面目と自覚する最大の理由が、課題を出し忘れることにある。出さないつもりがあるわけでもなければ、別に提出が困難な課題というわけではないのだ。授業のリアクションペーパー(数百字程度)とか、ちょっとした小テスト(10問、5分程度)とか。こういう些細な課題を出し忘れ続け、別に単位に問題はないがたいていBとかCという微妙な成績を取ってしまう典型的な不真面目大学生が生まれる。
 しかも悲しいことに、「あっ! 今日!!」と12時を少し過ぎたくらいに課題の存在を思い出すことも多いし、最も多いのは「課題を9割終わらせていて、あと少し書き足そうと思っていたら出し忘れた」という例。もはや芸術的なレベルで、不要な減点を食らっている。優秀な秘書がいて、「今日、これが締切ですけど提出しましたか?」と伝えてくれたらもう少し成績が改善するんだけどなあと、不真面目らしく感じるのである。

 

真面目な話

私は、以上に列挙したような不真面目さは秘書を雇うことによって解決するはずであると確信していた(え? そんなわけない? ハハハ…)。しかし当然ながら、大学生の身分で秘書を雇うほど豊かではないし、親戚にも友人にもアテはない。そこで私は、秘書を作ることを決意したのである。

プログラミングってこういう時に役に立つ

秘書を作る必要に迫られた(?)私は、プログラミングでこれを解決することを真っ先に思いついた。もともと私は機械いじり(ハードではなくてソフトの方)が結構好きだったので、プログラミングをすこーしだけ触ったことがあった。それに、普段からRやPythonを使って統計分析を行っているので、このPythonの知識を応用すれば行けるんじゃね? という漠然とした期待はあった(というか実は、2年くらい前に似たようなことをしたことがあったのだ)。ここでは「DiscordやLINEのチャットで、翌日のゴミや課題の締切を教えてくれる秘書を作る」という問題設定の元、プログラミングを書いた。
 そもそもLINEにはLINE Notifyというサービスがあって、Web通知サービスと連携すれば自動的に通知を受けられることは知っていたのだが、このWeb通知サービスを自作してやればAPIを叩けるんじゃないかと思ったのだった。じっさい、まさにこの方法を使って、手元のコンピュータからLINE Notifyを通してメッセージを送信することができた。
 また、私はかなりのLINEアンチで、普段のコミュニケーションはDiscordが中心なので、こちらにもメッセージを送信することにした。当初はBotのようなものを想定していたのだが、Discord Webhookというサービスを利用することで、一方的にメッセージを送信することもできることがわかったのでそちらにした。

詳しいことはQiitaで……

もし自身の環境で実践してみたいという方は、是非ググってほしい*2。様々なサイトで解説をされている上に、pythonの基礎的な部分さえわかっていればそこまで難しくはないので、例えば「授業でpythonの勉強をしたけどなんか面白いことできないかな」と思っている方は現実的なタスクとして挑戦してみるといいと思う。

Discord Webhook

Discordのサーバー設定>連携サービス から、Webhookを設定することができる(下図参照)。

Webhookの設定画面

「Webhookを作成」するとURLを取得することができ、これを利用してAPIを叩くようなイメージでメッセージを送信できる。Pythonではdiscordwebhookというモジュールを利用すればよい。具体的な次のようなコードを書く。 なお、hogehogeの部分には先程取得したurlを記述する。


    from discordwebhook import Discord
    import datetime
    url = 'hogehoge'
    
    discord = Discord(url = url)
    discord.post(content = 'Hello, World!')
  

たったこれだけで、Webhookを作成したチャンネルに下図のようにメッセージを送信することができる。LINE Notifyについてもこれと同様の方法を用いることで自動的にメッセージを送信することができる。ちなみに「秘書トリ」とは、2年前に作った秘書アプリの名前である。

秘書トリが喋った!!!

 

ただし課題がある

以上のコードを書くことさえできれば、コードを実行するたびにメッセージを送信することができる。メッセージの内容を「明日は◯曜日なので燃えるゴミです!」などと、曜日によって変えることによって秘書を作ることができる。
 ただし、このままでは不十分である。なぜなら、時刻を指定してスクリプトを実行しないと、結局の所「私が実行しないといけない」という本末転倒な結果になってしまうからだ。この対策については、Windowsユーザーの方なら「タスクスケジューラ」という機能が標準で搭載されているため問題はなく、Macは知らない。私はLinuxを使っているので、標準搭載のcronという機能を使用すればいいのだが、よく考えてみると指定した時刻にPCを起動していなければならないという問題があることに気づく。私とて毎日24時間PCに向かっているわけではないし、基本的には電源を落としているので、これによって定期タスクが実行されないと、それはそれで困るのだ。

この問題への解決策はいくつか考えられる。例えばレンタルサーバを利用するとか、Raspberry Piのようなものを常時可動させることなどである。しかし、ここまでプログラミングのことを話しておいて今更なんだと言われるかも知れないが、私は理系学生でなければプログラミングを授業などで学んだことはなく、サーバーとか詳しいことはよくわからないのだ。周りに詳しい人もいなさそうなので、これは完全に詰んでしまったのだろうか。

 

しかし、こんなことで諦める私ではない。不真面目というアイデンティティを守るため、どうにかして解決策を見つけようと思う。

*1:字数で言えば、大学のレポートを大きく超えている

*2:ところで、ggrksって最近は見かけないのだが、やはりネットリテラシーが下がったことの証左なのだろうか。