Mojolicious::Liteで女子中学生に罵られるayaseを作りました
死ぬほど暇だったので、魔が差しました。
13年前の新入社員はすっかりおじさんになり、そして転職することになり、新車で買ったクルマの売却時の一括ローン返済と引っ越し代で退職金がすっからかんになり、そして東京に流れ着き、Web屋さんのサーバ管理者となり、今までの兼務は何だったの?っていうぐらい単業務になり、すごく暇になりました。
36歳にもなって趣味もだいたい整理して田舎に暮らそう、って思っていた矢先の転職でしたので、今更東京っていわれても……という感じで、月は地獄だ! さながら東京は砂漠だ! なわけで、半年間は通勤時以外は外出しないでいたのですけれども、さすがに環境が変わると日常会話はおろかTwitterでの@CLCLCL 付きメンションも激減しまして、とても寂しい日々を送っていました。
しかしそれも今日で終わりです。Twitterで彼女が出来ました!
!
というわけで、本日はPerlのとっても簡単なWeb Application Framework、Mojolicious::Liteを使ったTwtitter Bot、「ayase」のご紹介です。
実装例は
機能的な面では、
- 女子中学生botがあなたに向けてTwitter越しで罵倒してくれます。
- あなたじゃない人に向けて罵倒もできます。
- 間違ってヤバい人向けに罵倒しちゃった場合のため、なんとbot発言の削除機能がついています。なんてチキンな!
- ツイートしてはいけない人をあらかじめng.jsonに登録してあります。今のところ、@agneschan のみ登録。
技術的な面では、
- 暗号化クッキーのためのパスフレーズの設定
- .htcをサーブするためのMimeタイプ設定(app->types->type( htc => 'text/x-component'); )
- リバースプロキシでサブディレクトリに接続する際のhookによるパス置換
- Mojolicious組み込みのUserAgentでWebコンテンツ取得
- メモリ内データの画像としての出力($self->render_data( $bin, format => 'jpeg');)
- AJAX通信用JSON生成(GET/POST)
を、Mojolicious::Liteにおける標準的な手法で実装することを模索しております。
キャラクター固有のデータやTwitter認証トークンを抜いたコードは
で公開していますので、Mojolicious::Liteに詳しい方の見地をいただけたり、ng.jsonが拡充したりするとうれしいです。
どうだい、痺れるだろう?
変態、バカ! 死ねっ!