ポタージュを垂れ流す。

マイペースこうしん(主に旅行)

3月につくったものを紹介

みなさん、春休みは進捗がうめましたか?僕はうめました笑

あんまり色々つくったわけではないけど紹介してみます

TwitterAR

使用言語等

JavaScript(Node.js/Express/Puppeteer/Socket.io/AR.js/A-FRAME)

概要

  • twitterであるツイートを見かけてそれっぽいのを作ろうと思った。
  • raspberry piで適当にオレオレ証明書とか作ってnode.jsでexpress使ってhttpsサーバーをたてる(ar.jsを使うのにhttpだと動かないため)
  • puppeteer(headless chromeを使えるnode.jsのライブラリ)でtweetdeckのhome timelineが更新されたらその1ツイートだけをスクショして、適当フォルダに格納。
  • chokidar(node.jsでファイル監視してくれるやつ)でツイートのイメージを格納したファイルの変更を監視し、新しいイメージがそのフォルダに生成されたらsocket.ioでemitしてイメージのパスを送信(webチャットアプリのやり方を応用した)
  • webページでsocket.ioのonでそのパスが取得できるので、javascriptでうまくhtmlのノードをつくってa-sceneの中(ちょっと違うけどイメージとしてはaframe版のdivタグみたいな感じ)に出力
  • ARマーカーを認識したらそこから下のツイートみたくツイートが流れます

Amazon Alexaで起床報告

使用言語等

PythonとAlexa Developer Console、AWS Lambda

概要

  • Alexaに「おきた」と話しかけるとslackとtwitterに「ポタージュさんが自宅のEchoDotで○○時○○分に起床報告しました。」と投稿する。

slack

  • 以下のリンクを参考にしました

qiita.com

  • だいたい下みたいなかんじになる(わかりづらい)

  • Alexa Developer Consoleで動くのにAWS Lambdaで叩いたら動かんと思ったら、ハンドラークラスで実装したやつでは動かなくて、デコレータを使った実装じゃないと動かなかったですね(lambdaで呼び出されるのは関数なのでそれはそうだった)
  • めっちゃ簡単にAlexaのスキル作れておーーとなった

slackに工学部の教務情報を流す

使用言語等

PythonAWS Lambda

概要

  • slackに工学部の教務情報を1時間毎にheadless chromeスクレイピングして流す
  • コロナがどうとかで最近いろいろ情報でるからあると便利かなーと思ったので
  • 全学共通科目の方は要らない情報が多すぎるのでまあいいかな、と思って工学部だけにした
  • こんなかんじになりました

slack

github.com