Skip to content

AnosovAndrey/NewsFeeder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsFeeder

Производственная практика, весенний семестр 2019 г.

Задание

Необходимо разработать систему парсинга, трансформации и публикации контента. На данном этапе можно считать, что весь контект представляет собой ленты: лента изображений пользователя в Instagram, лента постов пользователя Вконтакте, лента новостей сайта в формате RSS etc. Ленты состоят из однотипных элементов (постов), содержащих текст, изображения и/или видео. Также у каждого элемента есть дата создания, автор и уникальный URL.

Допустим, имеютя два пользователя Instagram. Мы хотим ретранслировать их посты в твиттер. Для этого нам требуется модуль-парсер ленты Instagram, модуль, преобразующий текст в формат "140 символов + ссылка на полный текст", и модуль, постящий в твиттер используя его API. Также, требуется некоторая управляющая программа, связывающая между собой все описанные модули.

В целом, архитектура системы состоит из

  • классов, отвечающих за источники (imports.*)
  • классов, отвечающих за экспорт данных (exports.*). Также отвечают за трансформацию контента к виду, требуемому конкретным сервисов.
  • классов, хранящих данные и отвечающих за восстановление состояния между запусками программы (storage.*)
  • управляющей программы, перебрасывающей данные между тремя пунктами выше (main.py).

Требуемые источники данных (порядок примерно соответствует приоритетности задачи):

  • Youtube
  • Twitter
  • Facebook
  • Вконтакте
  • Instagram
  • Форумы vBulletin (отслеживание новых постов в определенной теме)

В соцсетях требется функционал двух типов: как отслеживание постов определенного пользователя (как будто мы на него подписались в нашем приложении), так и отслеживание постов всех друзей определенного пользователя (настроив на себя, мы получим дубль нашей ленты, над которым сможет выполнять действия).

Требуемые сервисы для экспорта:

  • Telegram-канал
  • Вконтакте
  • RSS-лента (запись N последних записей в статичный файл)
  • Динамическая HTML-страница (эталон - страница подписок на Youtube, потребуется встроить в управляющую программу веб-сервер).

Примитивный набор классов, позволяющих импорт-экспорт, реализован в репозитории. Импорт представляет собой генерацию случайного текста, сопровождаемого случайной картинкой. Экспорт генерирует HTML-страницы максимально тупым способом. Хранилище не выполняет никаких действий и является заглушкой.

About

Практика-2019

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 98.9%
  • Python 1.1%