Python и Twitter API

Бюджет: по договоренности
Требуется на Python'е написать библиотечку для поиска в Twitter, используя Twitter API. Предполагается три функции:

* Поиск

1) Входной параметр – набор поисковых строк.
2) По ним раз в 30 секунд делается поиск средствами Twitter API.
3) В полученных сообщениях находятся ссылки.
4) Все ссылки проверяются на редирект, если он есть, доходим до оригинального URL'а.
5) По доменам ссылок делаются whois-запросы, результат передается в функцию, которая возвращает true/false 
(саму функцию писать не надо).
6) Если вернула true, сообщение принимается, если false – отбрасывается.
7) Результат сохраняется в memcache (не в базу – этого не требуется). 
8) Сохраняются также: Twitter ID, URL исходной записи, username, unix timestamp. 
9) Сообщения сохраняются в двух форматах – plain text и html. Plain text – это оригинальное сообщение, все ссылки раскрыты после редиректов.
В html прописываются ссылки на #хэштеги, @пользователей и http:// – пример см. ниже.
10) Если в кэше больше Х записей, самые старые удаляются. Х – настроечный параметр, ориентировочно 50-80 записей на один запрос.

Функция не должна анализировать одни и те же сообщения несколько раз подряд, т.к. редиректы и whois достаточно затратные по времени операции.

* Выдача JSON

1) Входные параметры – строка запроса (одна из того набора, см. п.1 в Поиске), ID сообщения или число сообщений.
2) Если задан ID, возвращается JSON с сообщениями, ID которых больше указанного.
3) Если задано число сообщений, возвращается JSON с последними сообщениями, числом не более указанного.

Пример JSON: 
{ "query" : "from:irknews",
  "results" : [
  { 'id' : '187473675711283200', 
    'timestamp' : '1333555821',
    'username' : 'irknews', 
    'html' : 'Дни защиты от экологической опасности пройдут в Иркутске <a href="t.co/XXTMCEoA">i350.ru/ne... <a class="hashtag" title="#irkutsk" href="twitter.com/search?q=%23i...
  },
  { .... }
]}

* Retweet

После сохранения сообщения в memcache оно постится обратно в Твиттер как ретвит. Имя аккаунта, от которого идет постинг, задается в константах.
Текст сообщения – в формате plain text, ссылки раскрыты после редиректов, в начале добавляется RT @username. 

Пример: RT @irknews Дни защиты от экологической опасности пройдут в Иркутске www.irkutsk-350.ru/news/c... #irkutsk

Для работы с Твиттером рекомендуется tweepy, whois-запросы – через pywhois или аналог, остальные библиотеки на усмотрение.

Ваши оценки времени и стоимости пишите в комментариях.
Опубликован 04.04.2012 в 19:53

Выберите способ верификации:

Обновите страницу после прохождения верификации.