От Novik
К Mikl
Дата 02.05.2015 01:42:03
Рубрики Прочее; Современность; Администрации;

Re: Так делать не нужно.

Приветствую.

>Немного о клиенте :
>он скачивает основное дерево форума, разбирает его и показывает
>также хранит историю просмотренных сообщений (пока стоит 20 дней)

В смысле, разбирать html дерево. Можно сразу получать дерево и его обновления в виде xml.
Тут посмотрите -
http://vif2ne.ru/nvk/forum/0/arhprint/2452247

От Mikl
К Novik (02.05.2015 01:42:03)
Дата 02.05.2015 11:23:49

Re: проглядел наличие API :(

>В смысле, разбирать html дерево. Можно сразу получать дерево и его обновления в виде xml.
>Тут посмотрите -
http://vif2ne.ru/nvk/forum/0/arhprint/2452247

Да, с API все намного лучше.
Буду дорабатываться.

От Novik
К Mikl (02.05.2015 11:23:49)
Дата 02.05.2015 13:03:34

Re: Краткое описание.

Приветствую.
>Да, с API все намного лучше.
>Буду дорабатываться.

Сервер хранит массив последних событий в дереве, до 4К элементов, при переполнении старшая половина массива чистится.
Запрос выдается в форме /nvk/forum/0/tree?xml=lastEvent
где lastEvent - id события, с которого осуществляется выдача (не включительно). Если lastEvent==-1 то выдается массив целиком.
Если события с таким id не найдено, отдается 201 Protocol mismatch с пустым телом ответа.
В противном случае ответ включает в себя секцию [lastEvent] где прописан id последнего события и ряд событий.
Формат события
1) Добавление статьи в ветку
[event no="%X" type="add" parent="%X"]
no - id статьи в шестнадцатеричном виде
parent - id родителя статьи в шестнадцатеричном виде
Далее элементы [title], [author], [date], [size] (в байтах) и [crc] (CRC статьи, adler32 от мета-данных статьи)
2) Удаление статьи
[event no="%X" type="del" parent="%X"/]
3) Смена родителя
[event no="%X" type="parent" parent="%X"/]
4) Фиксация ветки в дереве
[event no="%X" type="fix" mode="%u" /]
Возможные значения mode
0 - закрепление ветки убрано
1 - закрепление ветки с прибитем кверху
256 - закрепление ветки без прибития кверху

Прочее.

Запрос ответов на статью в xml форме, формат тот же, что и выше, будут только события типа "add", пример
http://vif2ne.ru/nvk/forum/0/co/2692768.htm?xml

Выдача текста статьи без layout, пример
http://vif2ne.ru/nvk/forum/0/co/2692768.htm?plain

Получить список пользователей, имя которых начинается с подстройки name (не менее 3 символов), нужна авторизация, пример
http://vif2ne.ru/nvk/forum/0/security/peoplelist?xml=1&name=Nov

P.S. Ввиду того, что обработку html entities я в свое время реализовал криво, квадратные скобки в тексте выше нужно заменить на угловые.

От Novik
К Novik (02.05.2015 13:03:34)
Дата 02.05.2015 13:19:48

Re: Краткое описание.

Приветствую.
И да, если запрос оспровождается авторизацией то к возвращаемым событиям дерева применяются все фильтры пользователя (список игнорирования, отслеживаемые топики и т.п.)

От Mikl
К Novik (02.05.2015 13:19:48)
Дата 02.05.2015 13:30:01

Спасибо за спецификацию.

На первый взгляд все понятно.