Atualizador Twitter

Publicado por Francisco Souza 07/04/2009

[ Hits: 9.025 ]

Homepage: http://www.franciscosouza.net

Download atualiza-twitter.py




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)

  



Esconder código-fonte

#!/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)

Scripts recomendados

Conversor de vídeos do YouTube para MP3

Chatbot em Python

Enviando emails com autenticação smtp python cgi

Cotação atual do dólar - versão Python

Previsão do Tempo


  

Comentários
[1] Comentário enviado por franciscosouza em 07/04/2009 - 02:18h

Acabei esquecendo de colocar na descrição: Para uso de script, é necessário o módulo Python Twitter.

O Python Twitter pode ser instalado pelo easy_install, pelo apt-get ou direto do site (http://code.google.com/p/python-twitter/).

Abraços,
Francisco

[2] Comentário enviado por lucassmagal em 25/01/2010 - 21:02h

Oi, amigo,

Tentei executar este codigo em um arquivo .py no meu pc, mas nao funcionou de jeito algum, sabe dizer o que é? http://lsmagalhaes.pastebin.com/f3bf4452

O interessante é que, se eu digitar os mesmos comandos no prompt interativo, eles rodam direto...

Ahh, salvei seu código para teste em um arquivo, e ele rodou sem problema (e o meu bem basicão, só pra testar, não funciona =( ).

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts