エロいいね研究会の技術インフラについて
前置き
こんにちは、エロいいね研究会研究員のTrouble_SUMです。
この記事ではエロいいね研究会を支えるインフラについてお話いたします。
また、この記事を通してエロいいね研究会に興味を持たれた方は、さらなるエロいいねの高みを目指して我々と共に研究を進めていただけませんか?
エロいいね研究会は、優秀な研究者, 技術者を求めています。
Our Discord Community [https://twitter.com/sometrouble/status/1071191545980698624:embed] [https://twitter.com/sometrouble/status/1071547288009363456:embed]
エロいいね研究会とは?
エロいいね研究会とは、@NYLON1919を研究会長とする研究会です。
主な活動はTwitter上でのエロいいね(=スケベな画像をいいねする行為)であり、エロいいね行為に関心を持つ有識者によって研究会は構成されています。
詳細はエロいいね研究会 - Aboutの研究論文を参照してください。
学術的な目的に限り、会長による優秀な論文を無償にて閲覧することができます。 ここではその一部を引用いたします。
これらの研究論文にもあるように、エロいいね研究会は重大な危機を迎えています。
果たして、エロいいねというルーティンワークを今更研究する必要はあるのか? Buhitterのように母国語で書かれた利用規約も読めないバカ共に叩かれるのでは? ぶっちゃけ活動めんどくさくない? そもそも需要はあるのか?
様々な問題が重なり, エロいいね研究会はその存在理由(raison d'etre)を失いつつあります。
しかし、我々はこれからもエロいいねを続けるでしょう。それが十三階段を上る行為に等しいと知っていながらも。
インフラの全体像
前置きが長くなりましたが、本題に入りましょう。
また、この情報は2018/12/21現在の情報となっております。 変更があり次第、詳細を追記いたします。
全体像はこんな感じです。これを見たところでよくわからないと思うので一つひとつ見ていきましょうか。
Twitterでエロいいねする
タイムラインに表示されているスケベな画像を周りにさとられないよう、自然な動きかつ素早い動作でいいねします。
これには少しコツがいります。何度も練習を重ねていくうちに動作が洗練されてくるので、それまではひたすらエロをいいねしてください。
Discoにエロいいねが垂れ流される
IFTTTというWebサービスの連携サービスがあります。
例えば、「これをすれば(トリガー), これがされる(動作)」のような組み合わせを定義することで、処理の自動化を行うことができます。
これを利用して、「Twitterでいいねを行うと, Discordにその内容が投稿される」という動作を行っています。
DiscoからURLを拾ってDB(SpreadSheet)へぶん投げる
今回、DBの代わりとしてGoogleの提供しているスプレッドシートを利用しています。 採用した理由としては、非エンジニアの研究者でもデータの確認が容易ということと、単純にぼくが気になってたからやってみたかったんです。
TwitterのURLが流れてくるまでDiscordのチャンネルを監視するBotをPythonで作成して、Herokuにデプロイして24時間動作させています。
また、わざわざDisco監視しなくても直でスプレッドシートへ投げてもいいんじゃ?と思う方もいるかもしれませんが、次の理由でDiscordをバッファとしてかませることにしました。
- Slackと違ってDiscoはいくらでもメッセージを投げられる
- 研究者同士の交流の場としてリアルタイムに他人のエロいいねが流れてくる環境づくりをしたかった
- Disco上のリアクション(絵文字やリプライ)ごとになんらかの処理を行う際に便利
Webページから、DBへのデータ参照, 反映
エロいいね研究会のWebページでは、会員登録, 論文投稿, シンポジウム参加, エロいいねされたツイートの表示機能の実装を予定しています。(ほとんどできていませんが)
現在はBetaのステージング環境としてGithub Pagesを利用していますが、PagesではPythonやPHPを用いた動的なページの生成処理を行うことができません。
そこで、GASとスプレッドシートを使って簡易的なAPIサーバ+DB環境の代わりとし、GET/POSTリクエストを投げて、レスポンスをVue.jsでレンダリングすることで動的に要素を表示しています。
通常のDBなどを利用した場合に比べパフォーマンスは多少落ちますが、今はまだそこを気にする段階ではないのでその辺はおいおいと言った感じですね。
何よりすべて無料で実装できるっていいよね。ロマンがあります。
眠い
ので今回はこのへんで終わりたいと思います。
続きは気が向いたら書きます。
終わりに
エロいいね研究会では技術者が不足(というか僕一人なので)しています。
我こそは!という開発者の方(もちろん, やる気のある初心者の方も)は是非お力添えいただければ幸いです。
具体的には, 次の知識がある人を求めています。
フロントエンド開発
- Pug: HTMLを簡単にかけるようにしたやつ/ バリかんたん
- SCSS: CSSの拡張みたいな/ ばりかんたん
- Vue.js: Javascriptフレームワーク/ ちょいムズ
- Vuetify.js: Vue.js用のUIフレームワーク/ ちょいムズ
バックエンド開発
- Google Apps Script: ほぼJavascript, ググればだいたいかける/ ふつう
- Google Sheets: DB設計/ かんたん
Bot開発
- Python3: Discordbotの機能追加/ ふつう
という感じです。 ぼくしかいないので全く作業が進みません。
Pagesで公開する関係上, リポジトリにソースがすべて公開されていますので参考にしてください。