XMPP бот, рассылающий новостные RSS ленты, оформленные в BB коды.
Мною разработка бота прекращена.
Бот продолжает свою работу здесь: tester.qip.ru/rssbot Благодаря: Santiago26 и Commaster.
XMPP(jabber) бот, рассылающий новостные RSS ленты, оформленные в BB коды.
Язык программирования: JAVA
Среда разработки: Eclipse
Для хранения данных использовалась MySQL база данных:
CREATE TABLE IF NOT EXISTS `USERS` ( `id` int(11) NOT NULL AUTO_INCREMENT, `jabber` text NOT NULL, `id_rss` int(11) NOT NULL, `pause` int(11) NOT NULL DEFAULT '0', `bbcode` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `RSS_feeds` ( `id` int(11) NOT NULL AUTO_INCREMENT, `rss` text NOT NULL, `PublishedDate` text NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
Кэш записей хранился в автоматически создаваемых таблицах, где номер из имени таблицы соответствовал записи из таблицы RSS_feeds:
CREATE TABLE IF NOT EXISTS `RSS_1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` text NOT NULL, `PublishedDate` text NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;
Для работы с протоколом XMPP использовалась библиотека: SMACK
Для парсинга RSS лент использовалась библиотека: ROME
Для нормализации HTML кода использовалась библиотека: JSOUP
Для ведения логов работы программы использовалась библиотека: LOG4J
Для парсинга нормализированного HTML кода в BB код, использовались регулярные выражения.
Для работы с базой данных MySQL использовалась библиотека: JDBC
Исходный код бота
Команды для бота:
Подписка на ленту новостей:
s rss_url
где rss_url, URL адрес RSS ленты, на которую вы хотите подписаться.
Вывод списка лент, на которые вы подписаны и состояние паузы:
list
Удаление подписки на ленту новостей:
d 123
где 123, идентификатор вашей подписки, узнать который можно при помощи команды list.
Включение/Отключение паузы на определенную ленту:
p 123
где 123, идентификатор вашей подписки, узнать который можно при помощи команды list.
Включение общей паузы для всех подписок:
pause on
Отключение общей паузы для всех подписок:
pause off
Включение BB кодов в сообщениях:
bb on
Отключение BB кодов в сообщениях:
bb off
Проверка связи с ботом:
ping
Вывод справки:
.
help