ターミナルからSkype その2 -- pepi

こんなの作ったんですが、あまりにも酷い出来だったので作りなおしました。最初はcurses使えば少しはましなの作れるんじゃないの?と思ってcurses使ってちまちま作ってましたが、その後urwidというコンソール用のユーザーインタフェースライブラリ(普通の人からしたらななんじゃそりゃって感じですね^^;)があることが分かったので、それを使って作りました。


http://gyazo.com/bb1b19fab367a8ecb61fcc219cac4178.png



・使い方
本体
GitHub - mmisono/pepi: terminal interface for skype


必要なもの
(1) Python(32bit)
(2) Skype4Py
(3) Urwid


Python2.6,Skype4Py 1.0.32.0,urwid 0.99,Mac OS Xで動作確認してます。
チャットをするのが目的なのでたいした機能はありません。
あくまでも起動しているSkypeに対してAPIを利用するのでSKypeは起動しておく必要があります。また、最低でも一つはチャットを開始しておいてください。
名前を言ってはいけないあのエディタみたいにモードっぽいものがあります。起動時はインサートモードです。


・キーマッピング
インサートモード
esc …ノーマルモードに移行
enter …メッセージを送信
ctrl + b,f,a,e,d,k,u,w …よしなに動きます


ノーマルモード
i … インサートモードに移行
m … 現在のチャットメンバー一覧を表示&フォーカスを移動
c … チャット名一覧にフォーカスを移動
u … ユーザー一覧を表示&フォーカスを移動
l … メッセージ一覧にフォーカスを移動
j … 下に移動
k … 上に移動
ctrl-d …pagedown
ctrl-u …pageup
q … 終了(確認がでるのでyで終了)
0-9 …チャット切り替え
enter … チャット名一覧上 -> チャット切り替え
enter … ユーザー名一覧上 ->新規チャットを開始(注)
enter …メーセージのurl上 -> ブラウザで開く


インサートモード/ノーマルモード共通
ctrl-n,ctrl-p … チャット切り替え


いちおうユーザー名の上でエンターを押すと、そのユーザーとの新規チャットを作成しますが、それが実際に反映されるタイミングが遅いというかよく分からないのであんまり使えません(イベントが発生したりしなかったり?)..あるチャットから話しかけられた場合には確実にイベントが発生してチャットが追加されるので、新規にチャットを追加したい場合は相手から話しかけてもらうのがいいです^^;
あと、メッセージ一覧上のフォーカスの動きで一部残念な感じなのは仕様です^^;


・補足
(1)Skype4Pyにバグ?があるため以下の機能はあらかじめ明示的にコメントアウトされてます
Skypeの自動実行
ここを参考。
・起動時に最近のチャットメッセージを取得
ここを参考。
(2)MacPythonを32bitで利用するには、こことかこことかが参考になるかと思います。
(3)色はソース見ればどこで指定してるのかは一目で分かると思うので適当に変えてください。
(4)itermだと崩れるようです。iterm2なら大丈夫です。


あ、使用は自己責任でお願いしますw