Анализатор RSS, взаимодействующий с другим программным обеспечением, использующим Bash или Python

338
xreplace

Я пытаюсь создать программу или скрипт (назовем его так Worker), работающий в среде Linux (желательно, чтобы это был Raspbian или Debian), который собирает ссылки из RSS-каналов и отправляет их еще двум программам для обработки.

Вот конкретные шаги, которые Workerследует сделать:

  1. Анализировать несколько 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` 
  2. Извлечение ссылок из каждого канала

  3. Удалить ссылки с определенными ключевыми словами в <title>элементе. Ключевые слова устанавливаются для каждого канала в текстовом документе, отделенном от соответствующей ссылки пробелом, например:

    https://example.com/feed.xml?id1 nsfw 

    а если не установлено - удаление не требуется.

  4. Сортировка полученных ссылок по дате / времени по <published>элементам. Пример:

    <published>2018-07-27T01:02:03+00:00</published> 
  5. Отправить последнюю ссылку на handlerпрограмму (это просто внешняя программа, которая уже существует)

    handler https://received-from-RSS.com/abc 
  6. Пометить отправленную ссылку как watched(желательно делать это только в памяти, так как она должна работать на Raspberry Pi, и я хотел бы уменьшить использование SD-карты)

  7. Собирает ответ от handlerпрограммы, которая должна содержать другую ссылку, и передать ссылку получила от handlerк playerпрограмме

    player https://received-from-Handler.com/xyz 
  8. Подождите, пока не playerзакончится игра и не закроется. Затем отправьте в хронологическом порядке следующую (и еще не отмеченную watched) ссылку наhandler

    И мы повторяем этапы с 5 по 8.

  9. Каждые 30 минут Workerследует обновлять ссылки из RSS-каналов, например, повторять этапы с 1 по 9, сохраняя watchedссылки в памяти и не отправляя их в handler.

Я чувствую, что эта функциональность может быть реализована в Bash или Python. У меня нет опыта программирования, но я отчаянно нуждаюсь в Workerнастройке и запуске. Поэтому я был бы признателен, если бы вы посоветовали мне некоторые конкретные учебные материалы или примеры кода, которые помогут мне написать эту конкретную программу. Я не прошу написать это для меня, я буду признателен за вашу помощь с любым отдельным шагом. Мне просто нужно несколько направлений

Я опубликую результат здесь, как только закончу.

1
Какие исследования вы провели самостоятельно, чтобы попытаться решить эту проблему? Запросы на получение рекомендаций по учебным материалам в этом стеке не по теме; см. [Какие темы я могу задать?] (https://superuser.com/help/on-topic) и [Какие типы вопросов мне следует избегать?] (https://superuser.com/help/dont -просить). Jeff Zeitlin 6 лет назад 1
пишу ответ .. xreplace 6 лет назад 0
feedparser - библиотека парсера RSS-каналов в Python. datetime - стандартная библиотека Python для сортировки по дате. [open] (https://github.com/rsmith-nl/scripts/blob/master/open.py) - для открытия внешних программ. [расписание] (https://github.com/dbader/schedule) - для периодических работ. Однако я бы предпочел сделать это с помощью bash, но я понятия не имею, как с ним разбирать RSS. xreplace 6 лет назад 0
Языки оболочки, как правило, не будут подходящим инструментом для проекта, подобного этому, хотя вполне вероятно, что вы можете сделать это с помощью PowerShell. В любом случае, если у вас есть попытка сделать это самостоятельно, и вы можете определить конкретные проблемы, с которыми вы сталкиваетесь, хорошо написанный и подробный вопрос [так] может быть более уместным, чем задавать здесь. Jeff Zeitlin 6 лет назад 0

0 ответов на вопрос

Похожие вопросы