Twitter da command line

Apparso sul blog: "Broken links."

Non mi trovavo bene con l'interfaccia web e neanche con i programmini da desktop. Del resto i tweet sono solo brevi righe di testo e Url dunque dovrebbero essere gestibilissimi da terminale.

TTYtter è un software da linea comando per Twitter.

È un script in Perl, lo metto nella ~/bin/ e gli dó permessi di esecuzione: chmod +x ~/bin/ttytwitter.pl

Lo lancio e mi chiede di configurare il mio account, ecc ecc. Funziona.

Se hai diversi account rinomina il ID-keyfile .twitterkey con ad esempio .twitterkeyB e chiamalo con l'opzione -keyf=

ttytwitter.pl -keyf=B

Ogni tweet e' nella forma: code> (number of re-tweet) tweet

  • /refresh, (o /r) per i nuovi tweet
  • /again (/a), per rivedere i vecchi
  • /a +3 per rivedere solo 3 dei vecchi
  • /a username per rivedere solo i tweet del username
  • /reply [code] la_replica
  • /rt [code], per retwittare
  • /search [keywords], per cercare
  • /follow /unfollow username
  • /friends lista chi segui
  • /followers lista chi ti segue
  • /dm username msg, direct message
  • /deletelast, delete your last tweet
  • /favourite [code], favorisce un tweet (anche /f)
  • /faves, lista i tuoi tweet favoriti
  • /ruler (/ru) mostra un righello. ooooh!
  • /url [code] apre l'url
  • /history (/h) mostra la storia dei comandi immessi
  • /whois
  • /help

Scrivendo /help appare questa simpatica schermata:

  *** BASIC COMMANDS:  :a$AAOOOOOOOOOOOOOOOOOAA$a,     ==================
                     +@A:.                     .:B@+    ANYTHING WITHOUT
/refresh              =@B     HELP!!!  HELP!!!    B@=     A LEADING / IS
 grabs the newest    :a$Ao                     oA$a,    SENT AS A TWEET!
 tweets right            ;AAA$a; :a$AAAAAAAAAAA;       ==================
 away (or tells  :AOaaao:,   .:oA*:.                   JUST TYPE TO TALK!
 you if there    .;=$$$OBO***+        .+aaaa$:
 is nothing new)             :*; :***O@Aaaa*o,            ============
 by thumping     .+++++:       o#o                         REMEMBER!!
 the background  :OOOOOOA*:::, =@o       ,:::::.          ============
 process.          .+++++++++: =@*.....=a$OOOB#;       MANY COMMANDS, AND
                               =@OoO@BAAA#@$o,           ALL TWEETS ARE
/again                          =@o  .+aaaaa:            --ASYNCHRONOUS--
  displays most recent         =@Aaaaaaaaaa*o*a;,     and might not always
  tweets, both old and         =@$++=++++++:,;+aA:          respond
  new.                       ,+$@*.=O+  ...oO; oAo+.      immediately!
                           ,+o$OO=.+aA#####Oa;.*OO$o+.
/dm and /dmagain for DMs.   +Ba::;oaa*$Aa=aA$*aa=;::$B:
                             ,===O@BOOOOOOOOO#@$===,
/replies                          o@BOOOOOOOOO#@+     ==================
  shows replies and mentions.    o@BOB@B$B@BO#@+     USE + FOR A COUNT:
                                 o@*.a@o a@o.$@+ /re +30 => last 30 replies
/quit resumes your boring life.   o@B$B@o a@A$#@+ ==========================

Premendo invio continua l'help

+- MORE COMMANDS -+  -=-=- USER STUFF -=-=-
|                 |  /whois username            displays info about username
| See the TTYtter |  /again username            views their most recent tweets
|  home page for  |  /wagain username           combines them all
|  complete list  |  /follow username           follow a username
|                 |  /leave username            stop following a username
+-----------------+  /dm username message       send a username a DM
+--- TWEET AND DM SELECTION -------------------------------------------------+
| all DMs and tweets have menu codes (letters + number, d for DMs). example: |
|      a5>  Send me Dr Pepper http://www.floodgap.com/TTYtter       |
|      [DM da0][ttytter/Sun Jan 32 1969] I think you are cute                |
| /reply a5 message                 replies to tweet a5                      |
|      example: /reply a5 I also like Dr Pepper                              |
|      becomes  @ttytter I also like Dr Pepper     (and is threaded)         |
| /thread a5                        if a5 is part of a thread (the username  |
|                                    has a @) then show all posts up to that |
| /url a5                           opens all URLs in tweet a5               |
|      Mac OS X users, do first: /set urlopen open %U                        |
|      Dummy terminal users, try /set urlopen lynx -dump %U | more           |
| /delete a5                        deletes tweet a5, if it's your tweet     |
| /rt a5                            retweets tweet a5: RT @tytter: Send me...|
+-- Abbreviations: /re, /th, /url, /del --- menu codes wrap around at end ---+
=====> /reply, /delete and /url work for direct message menu codes too! <=====

Perché funzioni tutto a puntino dovrò scaricare e installare un driver per Readline Term::ReadLine::TTYtter.

perl Makefile.PL ; make ; make install

Una volta installato godrò di diversi bonus tra cui:

  • premere tab per automagicamente shortare un url
  • autocompletamento di nickname
  • verifica send tweet y/n
  • bash-like funzionalità
  • uso del pageup/down/left/right
  • navigare la history
  • usare tab come autocompletamento comandi)
  • editare il post sulla riga (e altro, uff)

ma ancora non funziona, all'avvio TTYtter continua a tirare su Term::ReadLine::Stub e non scatta il bonus. dovrò dire a Perl di usare la mia libreria, dunque inserisco nel mio .bashrc queste righe:

export PERL_RL=TTYtter
PERL5LIB=/path/dovesta/la_libreria/lib
export PERL5LIB

e lanciare TTYtter facendolo precedere da perl -I, nel seguente esempio lo inserisco come alias nel .bashrc

alias twitter.pl='perl -I /usr/lib/ /usr/bin/ttytter.pl'

Sito di TTYtter, voce readline

TTYtter FAQ

Questo post

Extending the perl library path