среда, 27 марта 2019 г.

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-ленту как средство передачи информации (например, из Твитера на ваш сайт/блог). Буду очень признателен за критику и пожелания.

0 коммент.:

Отправить комментарий