# Доработка 2 ## Задание 1. необходимо доработать rss адаптер, получающий новости, и модуль отправки в жаббер ### Улучшение 1 1. если RSS item содержит поле description, то текст новости необходимо снабдить этой информацией 2. в этом случае формат новости должен быть расширен: ``` title description link ``` т.е. между title и description - 2 перевода строки, и между description и link - тоже 2 перевода строки 3. если description содержит HTML тэги, то выводить нужно голый текст, предварительно очистив от тэгов ### Улучшение 2 1. если RSS item содержит элемент enclosure с параметром type="image/*" (любой image, но у меня пример только для image/jpeg есть - возможно, бывают другие варианты, нужно отработать по маске) 2. то нужно воспользоваться XEP-0071 и отправить картинку вместе с текстом новости - шаблонный пример использования ``` import slixmpp from slixmpp.stanza import Message from slixmpp.plugins.xep_0071 import XHTML_IM class XHTMLBot(slixmpp.ClientXMPP): async def send_xhtml(self, jid_to): msg = self.make_message(mto=jid_to) # Устанавливаем обычный текст (обязательно для fallback) msg['body'] = 'Посмотри картинку: https://example.com/image.jpg' # Формируем XHTML-содержимое # Обратите внимание: тег должен быть внутри в пространстве имен XHTML xhtml_body = '' + \ '

Смотри:

' + \ '' # Включаем XHTML-IM плагин msg['html']['body'] = xhtml_body msg.send() ``` 3. картинка должна размещаться ДО текста новости 4. Fallback (msg['body']) при XHTML-сообщении — для клиентов без XEP-0071 в тексте писать просто текст без ссылок на картинку 5. при наличии нескольких enclosure брать первый с подходящим type ### Если новость имеет и enclosure-картинку, и description — порядок в XHTML-теле: → title → description → link