С момента последнего поста про RSS-транспорт сделал несколько значительных обновлений.
Во-первых, как уже писал в комментариях к тому посту, сделал “Приватные ленты” – туда можно помещать ленты на ответы на форумах и тому подобные вещи – то, что вряд ли будет интересно кому-то еще или то, что хочется просто скрыть от посторонних глаз. Была еще мысль сделать “Защищенные ленты”, для которых отдается содержимое только владельцу, но есть ли в них смысл, если источник данных – RSS-лента, указанная при регистрации – все равно может отдавать контент кому угодно? Кроме того, больше подобных фич – больше возможностей для злоупотреблений, когда лента вроде как есть, но “ничего не работает”.
Во-вторых, в следующей версии – пусть снаружи это и мелкое изменение – добавил видимость подобных лент в “Поиске” и “Браузере сервисов” для того, кто их регистрировал. Это потребовало вести запись того, кто именно регистрировал ленту – добавлено соответствующее поле в базу. Помимо основной функции, теперь при необходимости можно отсеять ленты по автору (например, легче удалить мусор в случае спама).
В-третьих, для большего удобства расширил функциональность браузера сервисов – теперь там можно посмотреть свои приватные ленты, а также те, регистратором которых являешься. Поначалу еще сделал список тех, на которые подписан, но вовремя спохватился – зачем? Переведи взгляд на ростер: то, на что ты подписан, находится там :).
Ну и 4-е, самое масштабное изменение – система тегов для лент. При регистрации ленты теперь есть необязательное поле, где через запятую можно перечислить ключевые слова – теги для ленты. Теги сохраняются в той же таблице, где и остальная информация о лентах – под них выделено новое поле. В “Браузере сервисов” теперь есть раздел “Категории”, где собраны все теги, а внутри каждого тега перечислены ленты, которые к нему относятся.
Из мелких правок – расширил перечень запрещенных в именах лент символов по данным из XEP-0106: JID Escaping. Аналогичные ограничения сначала хотел ввести и для тегов, но, как выяснилось, в именах нод лимиты мягче, поэтому там режутся только пробелы, да и то только для внутреннего использования – названия категорий могут содержать пробелы.