Queryfeed — RSS-ленты из Твиттера и Фейсбука

в 10:32, , рубрики: Facebook, google app engine, python, twitter, Социальные сети и сообщества, метки: , ,

Queryfeed — RSS ленты из Твиттера и Фейсбука

Вступление

Я отношусь к тем людям, которые в основном читают социальные сети, блоги и твиттер, но не пишут в них. У меня есть аккаунты почти во всех сервисах, но только для того, чтобы зайти и прочитать новую информацию.

Полагаю, что я не один такой. В добавок к вышесказанному, все новостные ресурсы я предпочитаю читать через РСС-ленты, считая их самым удобным средством распространения информации. К сожалению, оба информационных гиганта — Фeйсбук и Твиттер — лишили пользователей возможности выкачивать ленты. За пару дней я собрал на коленке сервис, который устраняет этот недостаток.

Итак, милости прошу на Queryfeed.

На текущий момент сервис умеет вытягивать данные из Твиттера и Фейсбука. Запросы осуществляются через Search API и Graph API соответственно. Твиттер поддерживает сложные запросы, например, по автору, по адресату, по хэш-тегу и тд. Полученный с серверов JSON конвертируется в RSS и отдается пользователю. Для лент Твиттера задан TTL (время кэша) 5 минут, для Фейсбука — 10 минут.

Примеры

  • #habr — поиск по хэш-тегу;
  • #from:username — твиты от автора username;
  • #username — твиты с упомянутым username;

Доступны и другие операторы, в т.ч. исключение слова, операция OR, и т.д. К сожалению, поиск от Фейсбука похвастаться такой гибкостью не может. Я добавил его в качестве эксперимента, и, возможно, от него придется отказаться.

Техническая сторона

Сервис написан на Питоне, фрейморк — Flask. Поскольку сервис не обращается к БД, Джанго здесь явно избыточен. РСС-лента формируется шаблонизатором Jinja2 по XML-шаблону. Хостится в облаке App Engine. Код не привязан к архитектуре GAE, чтобы в любой момент можно было оттуда съехать.

Теперь можно читать Твиттер в любимом RSS-ридере. Или использовать RSS-ленту как средство передачи информации (например, из Твитера на ваш сайт/блог). Буду очень признателен за критику и пожелания.

Автор: igrishaev

* - обязательные к заполнению поля