Я написал программу, которая принимает частичную RSS-ленту и выводит полную, но она является индивидуальной. Рецепт для одного сайта не совпадает с рецептом для другого. Поэтому я смотрю на базовое имя домена (например, nyt или wsj) и выбираю модуль на его основе. Хотя мне нужно загружать каждый модуль заранее и иметь логическое условие для каждого рецепта.
Мне нужен способ просто разместить отдельные модули в своей соответствующей папке, и когда я анализирую базовое имя URL-адреса, я хочу, чтобы он нашел модуль, загрузил его и предпринял некоторые действия. Поэтому я хочу, чтобы основная кодовая база была независимой от модулей. Я хочу иметь возможность добавлять модули в будущем и никогда не трогать ту часть кода, которая взаимодействует с ними.
Вот пример кода
if "nyt" == feed:
nyt.parser(posixpath.basename(url), urldir, rss_file_path, url, feed)
Как видите, я вызываю парсер отдельного модуля. У меня их много на каждом сайте. Я хочу перечитать канал и затем найти модуль, загрузить и вызвать его, а затем, если он не существует, сообщить об этом и попробовать метод по умолчанию.