Я не уверен, что вы подразумеваете под "автоматическим определением" нового канала?
Вы ищете код, который можно узнать, когда кто-то создает новый канал на сайте? Или вы хотите узнать, когда в существующем фиде появилась новая статья?
Первое сложное, потому что вашему коду нужно знать, на какой сайт смотреть, поэтому ему нужно какое-то автоматическое обнаружение сайтов с новыми фидами. Поиск в Google "новых RSS-каналов" не возвращает ничего полезного, по крайней мере, на первой странице. Если вы или ваши пользователи знаете о новом сайте, у вас может быть интерфейс для добавления новых сайтов для поиска. Затем вы берете страницу по этому URL-адресу, ищите ссылки для автоматического обнаружения RSS / Atom и переходите оттуда. Ссылки автообнаружения могут открыть червя из-за того, что дублированный контент обслуживается по разным протоколам (RDF, RSS и Atom), поэтому вам нужно определить, какой использовать, или несколько каналов с альтернативным содержимым в списке.
Если вы имеете в виду, что хотите узнать, когда в существующем фиде появились новые статьи, то вам нужно отслеживать последний раз, когда ваш код просматривал фид, и последнюю просмотренную статью, затем извлечь фид и посмотреть, ни одной статьи не было в вашем списке ранее увиденных статей. Ваш код должен быть чувствительным к информации о времени жизни во многих каналах. Попадание в ленту каждые пятнадцать минут, когда они обновляются раз в неделю, является плохой формой. Большая часть кода агрегации уже может делать эти вещи, но вам может потребоваться настроить базу данных и сообщить коду, как ее найти.
Как правило, для такого рода задач я настраивал запись crontab в производственной системе Linux или Unix и периодически запускал задание, просматривая в базе данных каналы, время последнего запуска плюс сохраненное время жизни ценность в прошлом.
Помогает ли это кому-нибудь?