Atualizador Twitter
Publicado por Francisco Souza 07/04/2009
[ Hits: 9.304 ]
Homepage: http://www.franciscosouza.net
Script de atualização do Twitter e gerenciamento simples. Versão inicial.
Simples de usar, o código explica como deve ser o uso.
$ python atualiza-twitter.py <usuário> <senha> <opção> (modo pouco interativo)
OU
$ python atualiza-twitter.py (modo 100% interativo)
#!/usr/bin/env python
#coding: utf-8
'''
Este script tem por intenção fazer um pequeno gerenciador de linha de comando para o twitter.
A principal intenção é conseguir atualizar o status, mas existem ainda outras funções.
O script é novo, fiz rapidamente, numa brincadeira. A idéia é ir incrementando ele COM O TEMPO.
Modos de uso:
> python atualiza-twitter.py <usuário> <senha> <opção> (Modo não-interativo)
> python atualiza-twitter.py (Modo interativo)
Autor: Francisco Antônio da Silva Souza
Versão: 0.1
Versão do Python: 2.5.x
Data da última atualização: 06 de abril de 2009
Copyleft - Nenhum direito reservado.
'''
import twitter
import sys
# Tentando otimizar o programa com um JIT Compiler
try:
import psyco
psyco.full()
except:
pass
class TwitterError(Exception):
'''Classe que representa erros ocorridos.'''
def __init__(self, message=None):
self.message = message
def determinar_acao(codigo):
'''Método que determina, dado um código inteiro, qual ação deve ser executada.'''
if codigo == 1:
msg = 'atualizar'
elif codigo == 3:
msg = 'amigos'
elif codigo == 4:
msg = 'seguidores'
elif codigo == 5:
msg = 'atualizacoes_amigos'
else:
msg = 'timeline'
return msg
def main(*args):
'''Método principal, onde a coisa realmente acontece.
O método recebe uma tupla com os argumentos.
'''
lista = args[0]
if len(lista) < 4:
raise TwitterError(message='''Verifique se você utilizou corretamente o script.\n
Modo de uso: atualiza-twitter.py <usuario> <senha> <opcao>
Opções possíveis:
atualizar - Atualiza seu status, presente no quarto parâmetro;
timeline - Visualizar timeline pública;
amigos - Obter lista de amigos do usuário (pessoas que o usuário segue);
seguidores - Obter lista de pessoas que estão seguindo o usuário;
atualizacoes_amigos - Obter timeline dos seus amigos;
''')
api = twitter.Api(lista[1], lista[2])
opcao = lista[3]
if opcao == 'atualizar':
texto = raw_input('Digite o texto do status: ')
tamanho = len(texto)
if tamanho > 1 and tamanho <= 140:
status = api.PostUpdate(texto.decode('utf-8'))
print 'Status postado com sucesso!\nTexto do Status: \'%s\'.' %(texto)
else:
raise TwitterError(message='Seu texto deve ter entre 2 e 140 caracteres!')
elif opcao == 'timeline':
sts = api.GetPublicTimeline()
print 'TIMELINE'
for s in sts:
print '%s: \'%s\'' %(s.user.name, s.text)
print
elif opcao == 'amigos':
amigos = api.GetFriends()
print 'LISTA DE AMIGOS DO USUÁRIO:'
for amigo in amigos:
print ' * %s' %amigo.name
elif opcao == 'seguidores':
seguidores = api.GetFollowers()
print 'LISTA DE SEGUIDORES DO USUÁRIO:'
for seguidor in seguidores:
print ' * %s' %seguidor.nome
elif opcao == 'atualizacoes_amigos':
atualizacoes = api.GetFriendsTimeline()
print 'LISTA DE ATUALIZAÇÕES DOS AMIGOS DO USUÁRIO:'
for st in atualizacoes:
print ' %s: \'%s\'' %(st.user.name, st.text)
# Execução principal
if __name__ == '__main__':
try:
if len(sys.argv) == 1:
print 'Para utilizar este script, você precisa estar autenticado.'
login = raw_input('Digite seu login: ')
senha = raw_input('Digite sua senha: ')
opcao = input('''Selecione no menu abaixo sua opção:
1 - Atualizar meu status
2 - Visualizar timeline pública
3 - Pessoas que estou seguindo
4 - Pessoas que me seguem
5 - Atualizações dos meus amigos
Digite sua opção: ''')
nome_opcao = determinar_acao(opcao)
lista = [sys.argv[0], login, senha, nome_opcao]
main(lista)
else:
main(sys.argv)
except TwitterError, e:
print e.message
except:
sys.exit(1)
hdns - Enumerador de diretórios
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
archlinux resolução abaixou após atualização (16)
Conselho distribuiçao brasileira (7)
Não consigo instalar distro antiga no virtualbox nem direto no hd (33)









