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 を起動することにより、複数のアカウントを使い分ける。
