Я пытаюсь создать программу или скрипт (назовем его Worker), работающий в среде Linux (желательно, чтобы это был Raspbian или Debian), который собирал ссылки из RSS-каналов и отправлял их другим 2 программам для обработки.
Вот конкретные шаги, которые должен сделать Worker :
Анализировать несколько RSS-каналов из текстового документа, разделенных новой строкой
https://example.com/feed.xml?id1 nsfw https://example.com/feed.xml?id2 https://example.com/feed.xml?id3 [...] https://example.com/feed.xml?id9`Извлечение ссылок из каждого канала
Удалить ссылки с определенными ключевыми словами в элементе
<title>. Ключевые слова устанавливаются для каждого канала в текстовом документе, отделенном от соответствующей ссылки пробелом, например:https://example.com/feed.xml?id1 nsfwа если не установлено - удаление не требуется.
Сортировать полученные ссылки по дате / времени на основе элемента
<published>. Пример:<published>2018-07-27T01:02:03+00:00</published>Отправить новейшую ссылку в программу-
handler(это просто внешняя программа, которая уже существует)handler https://received-from-RSS.com/abcПометить отправленную ссылку как
watched(желательно делать это только в памяти, поскольку она должна работать на Raspberry Pi, и я хотел бы уменьшить использование SD-карты)Соберите ответ из программы-
handlerкоторый должен содержать другую ссылку, и передайте ссылку, полученную изhandlerв программу-playerplayer https://received-from-Handler.com/xyzПодождите, пока
playerзакончит играть и не закроется. Затем отправьте в хронологическом порядке следующую (и еще не отмеченнуюwatched) ссылку наhandlerИ мы повторяем этапы с 5 по 8.
Каждые 30 минут
Workerдолжен обновлять ссылки из RSS-каналов, например, повторять этапы 1–9, сохраняяwatchedссылки в памяти и не отправляя ихhandler.
Я чувствую, что эта функциональность может быть реализована в Bash или Python. У меня нет опыта программирования, но я отчаянно нуждаюсь в Worker .
Поэтому я был бы признателен, если бы вы посоветовали мне некоторые конкретные учебные материалы или примеры кода, которые помогут мне написать эту конкретную программу. Я не прошу написать это для меня, я буду признателен за вашу помощь с любым отдельным шагом. Мне просто нужно несколько направлений
Я опубликую результат здесь, как только закончу.
