Kommandozeilen-Twitter

(Weitergeleitet von Twitter per Kommandozeile)
Wechseln zu: Navigation, Suche
Kommandozeilen-Twitter
Twittern mit der Konsole.
Status Läuft
OrganisatorIn MyJP
InteressentInnen
Bemerkungen Neue Version mit OAuth.
Version 1.0

Dieser Twitter-Client ermöglicht es über die Konsole zu twittern. Er ist in Python geschrieben und unterstützt mehrere Accounts, die durch die Eingabe ausgewählt werden.

Quellcode

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
# Easy console-based twitter client for multiple twitter accounts.
 
accounts = """
[dummy1]
access_token=25698449r-984jf948hf9849fnm9348f9348h9834ut9834t34
access_token_secret=04oi9jr03498ru0349ur0349ur0394ur0934u09ir4
consumer_key=983jur09438r498ujrr
consumer_secret=34t45zr5g6zg56ugr677g6r7gugg7gr6ugr67ur67r6i
 
[dummy2]
access_token=43fcsrggb-ijmvordthpoekmrpgokcc903gz4r8f7gzr4z7fgz
access_token_secret=f74fhf83jfjf8w9fhwef98hwe9fhwefhwe98fh9whf
consumer_key=9ih9ehfnnsdifz83ifz
consumer_secret=hw987erhf9wehfn9se87fhz9w8ehfsdneiugwoieg7bh
"""
 
import sys
import StringIO
import ConfigParser
import re
try:
	import tweepy
except ImportError:
	print "[Error] You need Tweepy to run tweet.py, see http://code.google.com/p/tweepy/."
	sys.exit(1)
 
 
accountsIO = StringIO.StringIO(accounts)
 
accounts = ConfigParser.RawConfigParser()
accounts.readfp(accountsIO)
 
if len(accounts.sections()) == 0:
	print "[Error] No accounts found."
	sys.exit(1)
 
def printUsage():
	print """Tweet: 	      tweet.py [account] [tweet] (max. 140 characters, use "" for the tweet)"""
	availableAccounts = """Accounts:     """
	for i in range(0, len(accounts.sections())):
		availableAccounts = availableAccounts + accounts.sections()[i]
		if i < len(accounts.sections()) - 1:
			availableAccounts = availableAccounts + ", "
	print availableAccounts
 
if len(sys.argv) not in [3]:
	printUsage()
	sys.exit(1)
 
def isPermittedTwittername(twittername):
	check = False
	for accountname in accounts.sections():
		if accountname == twittername:
			check = True
	return check
 
def twitterAuth(account):
	auth = tweepy.OAuthHandler(accounts.get(account,"consumer_key"), accounts.get(account, "consumer_secret"))
	auth.set_access_token(accounts.get(account,"access_token"), accounts.get(account,"access_token_secret"))
	api = tweepy.API(auth)
	return api
 
def main():
	if len(sys.argv) == 3 and isPermittedTwittername(sys.argv[1]):
		if len(sys.argv[2]) <= 140:
			twitter = twitterAuth(sys.argv[1])
			try:
				twitter.update_status(sys.argv[2])
			except tweepy.error.TweepError, e:
				print "[Error] " + str(e) + " (1)"
		else:
			print "[Error] Tweet too long (" + str(len(sys.argv[2])) + " characters)."
			sys.exit(1)
	else:
		printUsage()
		sys.exit(1)
 
 
if __name__ == "__main__":
    main()

Benutzung

  • Einrichtung
  1. Quellcode in eine Textdatei mit dem Namen tweet.py kopieren.
  2. OAuth-Daten und Namen der Dummy-Accounts durch eigene ersetzen.
  3. Gegebenenfalls bash-alias einrichten: alias tweet='python /home/user/.../tweet.py'
  • Twittern: python tweet.py [Accountname] "[Tweet]"

History

  • Urversion von Basti
  • Arkay3 hatte Schwierigkeiten mit dem Zertifikat und hat daher wget durch curl ersetzt
  • Identi.ca-Version von Arkay3
  • Funktionalität der Pfeiltasten bei Nachrichten-/Passworteingabe wiederhergestellt
  • Variante für 2 Twitter-Accounts von MyJP
  • Python-Version mit OAuth-Unterstützung von MyJP


Alternativen

  • Twidge
    • Erster Start: twidge setup
    • Letzte Tweets: twidge lsrecent
    • Nur ungelesene Tweets: twidge lsrecent -su
  • Irssi-Script
    • Es gibt ein sehr schönes Script für den bekannten IRC-Client irssi: twirssi. Damit ist es möglich, simultan die Tweets und Dents verschiedener Accounts zu sammeln und eigene zu posten.