2015年8月12日水曜日

TTYtter をカスタマイズ

TTYtter を利用する

Twitter で CLI のクライアントも良いかなと思いました。TTYtter は Perl で作成 されたソフトウェアなので Perl が実効出来るようにしておいて下さい。

TTYtter をカスタマイズ

TTYtter はそのままでも充分使えるのですが、プラグインを追加して機能というか見 た目を変更しました。以下が設定ファイルです。

.ttytterrc

#======================================================================
# TTYTTER Settings YYYY-MM-DD (gotta code that for ruby 1.9)
#======================================================================

simplestart=1

hold=1
ssl=1
ansi=1
vcheck=1
verify=1

dostream=1
mentions=1
searchhits=32
autosplit=1
timestamp=0
timestamp=%a %b %d %T %Z %Y
#shorturl=http://is.gd/api.php?longurl=

#====================================================== Interface
urlopen=open -a chromium %U
avatar=feh %U

newline=1
notifytype=
notifies=dm,me,reply,search,default
#notifies=dm,reply

colourdefault=CYAN
colourdm=MAGENTA
colourlist=BLUE
colourme=GREEN
colourprompt=OFF
colourreply=YELLOW
coloursearch=OFF
colourwarn=MAGENTA

#=================================================== Plugins
#exts=/home/kn0wledge/.ttytter-extensions/PrettyTweets.pl
exts=/home/kn0wledge/.ttytter-extensions/oxhak_ttytter_output.pl
#exts=/home/kn0wledge/.ttytter-extensions/time.pl
#exts=/home/kn0wledge/.ttytter-extensions/timestamp.pl

#================================================== Friends/readline
readline="@kn0wledge"

#==================================================

TTYtter の拡張は手を加えています。

そのままだと日本語のツイートが長い場合折り返されないので Text::LineFold を利 用して折り返しするようにしています。ちなみに Perl は分かってないので、試行錯 誤した結果なので変な部分もあると思います。

.ttytter-extensions/oxhak_ttytter_output.pl

# oxhak tytter output extension
# https://github.com/oxhak/ttytter-extension
# https://plus.google.com/101484008937520775428/posts?hl=fr
# https://twitter.com/OxHaK

use utf8;
use Text::LineFold;
$lf = Text::LineFold->new( OutputCharset => '_UNICODE_' );

$handle = sub {
    my $ref = shift; # this is a hashref to the tweet structure
    my ($time, $ts) = &$wraptime($ref->{'created_at'}) if &getvariable('timestamp');
    my $timestamp = defined($ts)?'['.$ts.'] ':'';
    my $sn = &descape($ref->{'user'}->{'name'});
    my $txt = &descape($ref->{'text'}) ;
    (my $txtfinal = $txt) =~ s/\n//g;
    (my $wrapped = $txtfinal);
    (my $folded = $lf->fold($wrapped, 'PLAIN'));
    (my $wrappedfinal = $folded);
    my $menu_select = $ref->{'menu_select'};

    my $string =
            "\e[38;5;160m\e[48;5;15m\e[1m"
            ${menu_select} . ''.
            "\e[38;5;255m\e[48;5;8m\e[1m ".
            ${sn} . ''.
            "\033[m\e[49m\n".
            ${wrappedfinal} . ''.
            "\n \n";

    print $streamout $string;
    return 1; # one logical tweet accepted
};

最後にスクリーンショットを掲載します。

TTytter

0 件のコメント:

コメントを投稿