HOME > 電算 > twitter > 標準入出力で twitter
標準入出力で twitter
標準入出力のファンとしては、たんに CUI というだけではなく、パイプにかませて使えるような twitter クライアントがほしかった。しかし、そんなショボいもの、なかなかありそうもないので、当座しのぎに python (tweepy 利用)で書いた。せっかくだから晒しておくけど、自分用だからエラー処理が皆無。
OAuth を利用しているが、コンシューマ・キーとコンシューマ・シークレットは自分で取得したものを使うという不親切ぶり。いや、そもそも標準出入力という時点で不親切だから気にしてませぬ。設定ファイルなんかは何一つとしてなく、必要なものはすべてオプションの値として食わせてやるのだ。
twikabi.py
必要なライブラリは、tweepy, sys, re, optparse
python twikabi.py --action=(home | mentions | tweet | lists) --ckey=CONSUME_KEY --csecret=CONSUMER_SECRET --akey=ACCESS_KEY --asecret=ACCESS_SECRET [--fsep=FIELD_SEPARATOR] [--rsep=RECORD_SEPARTOR] [--items=NUMBER_OF_RECORDS_TO_GET]
python twikabi.py --action=list --list=LIST_ID --ckey=CONSUME_KEY --csecret=CONSUMER_SECRET --akey=ACCESS_KEY --asecret=ACCESS_SECRET [--fsep=FIELD_SEPARATOR] [--rsep=RECORD_SEPARTOR] [--items=NUMBER_OF_RECORDS_TO_GET]
python twikabi.py --action=(reply | favor | cancelfavor) --statusid=STATUS_ID --ckey=CONSUME_KEY --csecret=CONSUMER_SECRET --akey=ACCESS_KEY --asecret=ACCESS_SECRET [--fsep=FIELD_SEPARATOR] [--rsep=RECORD_SEPARTOR] [--items=NUMBER_OF_RECORDS_TO_GET]
--action 動作の種類。 とりうる値は、以下の通り。 home(ホームタイムライン取得) lists(講読しているリスト名と ID の取得) listl (特定のリストのタイムラインを取得) apilimit(API 残り回数) favor(「お気に入り」にする) undofavor(「お気に入り」からはずす) mention(自分の ID に言及のある発言の取得) myretweet (自分がリツイートした発言の取得) favorite (「お気に入り」にした発言の取得) destroy (発言の削除) tweet(標準入力の内容を投稿) --statusid ステータス ID --list リスト ID --ckey コンシューマキー --csecret コンシューマシークレット --akey アクセスキー --asecret アクセスシークレット --items 出力レコード件数(デフォルトは 60) --fsep 出力のフィールド・セパレータ(デフォルトは改行) --rsep 出力のレコード・セパレータ(デフォルトは改行)
twikabiauth.py
コンシューマ・キーとコンシューマ・シークレットをオプションに食わせて、認証手続きを開始。最後にアクセス・キーとアクセス・シークレットが標準出力に出てくる。
python twikabi.py --ckey=CONSUME_KEY --csecret=CONSUMER_SECRET
tw.sh
twikabi.py と twikabiauth.py のラッパーで、zenity を使った、なんちゃって GUI なシェルスクリプト。おそろしく貧相なものだけど、タイムラインやリストを読んで、リプライしたり、ふぁぼったりそれを外したり、(外部のブラウザによって)リンクを開いたり、リツイート(公式・非公式)したりすることくらいはできる。(投稿・リプライ用エディタが出ているときには「閉じる」を押しても「OK」を押しても、投稿されるから注意)。sed が必要。
twikabi.py と twikabiauth.py を tw.sh と同じディレクトリに入れておく。tw.sh ファイルの先頭あたりを書き換えて、コンシューマ・キーとコンシューマ・シークレットを書き込んでおく。
アクセスキーの設定ファイルへのパス(デフォルト ~/.twikabikey)を引数として tw.sh を起動することにより、複数のアカウントを使い分ける。