0

git commitと同時に写真を撮ってtweetする

昨日YAPC終わってから研究室の合宿に合流して、酒飲んでたらできてた

https://github.com/shokai/twgit

git cloneしてパスの通っている場所に置いておく。
READMEに従ってimagesnapとtwをインストールする。


ふつうのgit commmitはこうだけど

git commit -m 'implemented great new features'


git commitしつつ、写真を撮ってtweetするのはこうやる
twgit commit -m 'implemented great new features'
あたまにtwをつけるだけでいい。
commit以外のgitコマンドも動く。

会心のreleaseブランチをpushする時などに記念撮影するといいんじゃないでしょうか?

0

nowコマンドを作った

twで写真をつけてtweetするやつを、crontabで定期的に動かしているんだけど
家にいる時は動かしたくなかった。

しかし「家にいるかどうか」を判定するのはけっこう面倒くさくて、まあwifiのAPや位置情報で判定すればいいんだけど、
crontabやservice内で使いやすい、手動でやりやすいツールを作ることにした。


ここにある
https://github.com/shokai/now

git cloneしてパスの通っている場所に置く。


仕様

$HOME/.now を読み書きするだけ。

使い方

now コンテキスト名 で登録、 now ‘コンテキスト名?’ で判定できる。

コマンド自体のexit statusで判定できる。赤い行は直前のコマンドがexit(1)を返している。


crontabやpipeと組み合わせる


0 * * * * now 'home?' &&  say '家にいます'    > /dev/null 2>&1
0 * * * * now 'home?' || (say '家にいません') > /dev/null 2>&1

&& や || でnowのexit statusを判定すればいいですね。


利用例

家にいない時だけ、写真を撮影してtweetするのはこうやる。
now 'home?' || (say 撮影します && imagesnap -w 2.0 capture.jpg && tw 定点観測 --user=shokai --file=capture.jpg --yes && rm capture.jpg)


現在のなうをtweetするとか
tw "`now`なう"

0

twで写真を付けてtweetできるようになった

arms22さんの提案でCUIで使えるtwitter clientに写真アップロード機能が付きました

Tw: Twitter client on Ruby.

tw うまい --file=food.jpg

–fileオプションにファイル名を渡せば写真がpic.twitter.comにアップロードされつつ、tweetできる。



カメラ

Macではimagesnapをhomebrewで入れればCUIからiSightで写真を取れる
brew install imagesnap
imagesnap -w 2.0 capture.jpg


1行で写真を取ってtweetできる
imagesnap -w 2.0 capture.jpg && tw 定点観測 --file=capture.jpg --yes && rm capture.jpg


crontabに登録しておけば定期的に撮影tweetできる。
2時間おきに撮影するように設定してみた。撮る前にsayで「撮影します」って言わせる。
PATH=$HOME/.rbenv/shims:$PATH
LANG=ja_JP.UTF-8

0 */2 * * * say 撮影します && imagesnap -w 2.0 capture.jpg && tw 定点観測 --file=capture.jpg --yes && rm capture.jpg

やっぱこれ危ないからやめよう


橋本商会 » CUIでUSBカメラキャプチャ

0

twにFav/RT数を表示するようにした

地味にbug取ったりアップデートし続けて、今 v0.4.8です
Tw: Twitter client on Ruby.

インストール

gem install tw


CUIなので、邪魔じゃなく表示できるか不安で機能追加には消極的なんだけど、Fav数/RT数表示してみたら問題なかったのでリリースした。


grepもできる

0

Rapsberry PiでIPアドレスをDMする(pipeとcronで)

羽田先生がやってたやつ
Rapsberry Pi でIPアドレスをDMする | HADA HISAKAZU Personal Information.


twとpipeとcrontabでやってみる


インストール

% sudo gem install tw
% tw --user:add
user:addで @shokai_log としてログインする。


下準備として、 Raspberry Piで使うアカウントにmentionを飛ばす。


さてIPアドレスをRaspberry Piから自分宛にDMする。
これを実行すればいい。自分宛の最新のmentionが @shokai からで、本文に「IP」という文字列が含まれている時に、自分のIPアドレスをDMで送り返す。
tw --user=shokai_log --format="#{user} #{text}" | tail -1 | grep -i "^shokai .*ip.*" && echo "`/sbin/ifconfig -a | grep "inet" | grep -v 127` `date`" | tw --pipe --user=shokai_log --dm:to=shokai


cronで5分ごとぐらいに実行すればいいと思う。
crontab -e
*/5 * * * *  tw --user=shokai_log --format="#{user} #{text}" | tail -1 | grep -i "^shokai .*ip.*" && echo "`/sbin/ifconfig -a | grep "inet" | grep -v 127` `date`" | tw --pipe --user=shokai_log --dm:to=shokai


実行結果


DMがくる


何か別のこと(IPという文字列を含まないtweet)をmentionしない限り、何回もDMを飛ばしてくるので適当に止める。