Here is a simple client for Wwitter that I wrote based on the `twitter` library in Python. The aim is to be able to read the feeds from different twitter accounts from the same place in a light way.

I should mention that the code does what I want it to do. Nevertheless, how could I improve it?

(It is available on [GitHub][1].)

    #!/usr/bin/python

    import sys
    import os
    import getopt
    from twitter import *

    # Default values
    def_counts = 10
    users = []
    dir_creds = "./data/oauth/"

    # input parameters
    def usage():
      print "Run: " + sys.argv[0] + " [OPTIONS]"
      print "Where OPTIONS is one the following: "
      print " -h --help"
      print " -c N --counts=N"
      print " -u \"name\" --user=\"name\""
      print " -a --all"
      print " -l --list"

    def main(argv):
      global def_counts, users
      try: 
        opts, args = getopt.getopt(argv,"hc:u:al",["help","counts=","user=","all","list"])
      except getopt.GetoptError:
        usage()
        exit(2)
      for opt,arg in opts:
        if opt in ["-h","--help"]:
          usage()
          exit(1)
        elif opt in ["-c","--counts"]:
          print "Retrieving "+str(arg)+" tweets."
          def_counts = arg
        elif opt in ["-u","--user"]:
          print "User: "+arg
          users.append(arg)
        elif opt in ["-a","--all"]:
          print "all users"
          if os.path.exists(os.path.expanduser(dir_creds)):
    	    token_files = filter(lambda x: x.endswith('.token'), os.listdir(os.path.expanduser(dir_creds)))
    	    for file in token_files:
    	      usr = file[:file.index(".token")]
    	      users.append(usr)
          else:
    	    print "No user to be added, path undefined"
    	    exit(2)
        elif opt in ["-l","--list"]:
          if os.path.exists(os.path.expanduser(dir_creds)):
            token_files = filter(lambda x: x.endswith('.token'), os.listdir(os.path.expanduser(dir_creds)))
            for file in token_files:
              usr = file[:file.index(".token")]
              print usr
        else:
          print "Got the following and I don't know what to do with it:"
          print opt + " " + arg
          usage()
          exit(2)
  

    if __name__ == "__main__":
      main(sys.argv[1:])

    if len(users) < 1:
      users.append("bilbo_pingouin")

    col_bgred   = '\033[41m'
    col_bold    = '\033[1m'
    col_fgblue  = '\033[34m'
    col_fggreen = '\033[32m'
    col_fggrey  = '\033[90m'
    col_end     = '\033[0m'

    for user in users:
      print "\n" + col_bgred + col_bold + user + col_end
      # Retrieve the credentials for a given account
      if not os.path.exists(dir_creds):
        os.makedirs(dir_creds) # I just assume there is not race issue here!

      file_creds = dir_creds + user + ".token"
      MY_TWITTER_CREDS = os.path.expanduser(file_creds)

      api_token_file = "data/api_token.dat"
      if os.path.exists(api_token_file):
        cust_token, cust_secret =     read_token_file(os.path.expanduser(api_token_file))
      else:
        print "ERROR: The app is not identified!"

      if not os.path.exists(MY_TWITTER_CREDS):
        oauth_dance("Twit on CLI",cust_token,cust_secret,
			    MY_TWITTER_CREDS)

      oauth_token, oauth_secret = read_token_file(MY_TWITTER_CREDS)

      # OAuth idnetification
      t = Twitter(auth=OAuth(oauth_token,oauth_secret,cust_token,cust_secret))

      # Get status
      data = t.statuses.home_timeline(count=def_counts)

      # Print lines
      for c in range(len(data)):
        print "* " + col_fggreen+col_bold+data[c]['user']['name']+col_end + ' (' + col_fgblue+data[c]['user']['screen_name']+col_end + ')' + " - " + data[c]['text'] + col_fggrey+" ## "+data[c]['created_at']+col_end


  [1]: https://github.com/bilbopingouin/twicli