Мы создадим простого управляемого бота, который будет получать команды из ленты твиттера и выполнять их на клиентской машине. Для работы с Twitter API, установите пакет
python-twitter
.pip install python-twitter
В качестве рабочего окружения я буду использовать python2.7 под virtualenv, и один из дистрибутивов GNU/Linux. Программа-клиент будет работать в бесконечном цикле, периодически получая команды из твиттера.
Сохраните следующий код в файле twibot.py.
#!/usr/bin/env python #!-*- coding: utf-8 -*- import os import time import string import twitter # Задержка между запросами в секундах REQUEST_DELAY = 2 # Аккаунт Twitter для управления TWITTER_USERNAME = 'John1698736' # Формат даты, отдаваемой API твиттера DATE_FORMAT = '%a %b %d %H:%M:%S +0000 %Y' # Имя файла для записи истории "выполненных" твитов LOG_FILE = 'history.txt' api = twitter.Api() while True: statuses = api.GetUserTimeline(TWITTER_USERNAME) try: command = statuses[0] except IndexError: command = None if isinstance(command, twitter.Status): with open(LOG_FILE, 'a+') as f: history = string.split(f.read(), "\n") if not str(command.id) in history: os.system(command.text) f.write(str(command.id) + "\n") f.closed time.sleep(REQUEST_DELAY)
Имя вашего Twitter-аккаунта необходимо задать в переменной
TWITTER_USERNAME
.Запустим и проверим работу нашего скрипта.
./twibot.py
Теперь опубликуем тестовый твит.
Снова откроем окно с запущенным ботом, и подождем пару секунд.
Скрипт «исполняет» самый последний твит в ленте пользователя. Перед выполнением команды, в файле
history.txt
проверяется наличие идентификатора текущего сообщения. Если идентификатор был найден, значит твит уже «выполнялся» ранее.Иначе, происходит «выполнение» текущего твита, после чего в
history.txt
записывается номер текущего сообщения.
Источник: code-live.ru

Python