Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii. Многие из них реализовывать совсем необязательно.
Предназначен для отслеживания изменений в эхе и для отсеивания лишнего трафика. Обычное целое число. Важно: параметр неубывающий. Если в эхе удалили сообщения, то возвращаемое число не должно уменьшаться.
GET /x/с/<параметры>
Единственный параметр метода - список, разделенный '/'.
Словарь "эха":"количество".
GET /x/c/test.14/im.100
test.14:221
im.100:1500
Предназначен для получения сервером (нодой) сообщений от другого доверенного авторизованного сервера. Может быть полезным для транзитных гейтов-посредников или серверов с неработающим фетчингом. Хоть пуш и является частью /u/, он остаётся необязательным расширением.
Проще говоря, push - это бандл наоборот. Если фетчинг скачивает бандлы, то push их проталкивает на другой узел. Сначала у push-ноды запрашивается список сообщений, которые уже есть в эхе, а затем через /u/push загружаются недостающие.
POST /u/push
- nauth - ключ для авторизации на сервере (пароль)
- upush - бандл сообщений
- echoarea - эхоконференция, в которую помещать сообщения
Может отличаться, в зависимости от сервера, либо отсутствовать. PHP-нода возвращает message saved: ok
для каждого сообщения в бандле в случае успешного принятия, либо error: <название ошибки>
в случае неправильного формата сообщений или error: no auth
, если неправильный пароль.
Нужен для автоматического получения данных о наличии эх на станции. Может пригодиться для автоподписки на клиентах.
GET /list.txt
Словарь "эха":"количество сообщений":"описание эхи".
GET /list.txt
test.14:35:Тестирование и проверки
im.100:270:Болталка, общение на любые темы
Номера тех сообщений, которые нода не принимает во время обмена и не показывает в эхоконференциях. Используется для чистки станции от спама/некорректных сообщений.
GET /blacklist.txt
Список номеров сообщений на каждой строке по одному.
Вариант схемы /u/e с указанием смещения и количества отдаваемых msgid. Полезно для экономии трафика, чтобы не скачивать абсолютно все сообщения с эхи, а только нужные.
/u/e/эха/эха/эха/.../<смещение>:<лимит>
<Смещение> и <лимит> - целые числа. Смещение может быть отрицательным. Если параметры указаны ошибочно, выдаёт эхи целиком.
Список сообщений из заданных эхоконференций, с максимумом <лимит>.
GET /u/e/ii.test.14/test.15/1:2
ii.test.14
msgid
msgid
test.15
msgid
msgid
GET /u/e/ii.test.14/test.15/-5:5
ii.test.14
msgid
msgid
msgid
msgid
msgid
test.15
msgid
msgid
msgid
msgid
msgid
Нужен, чтобы узнать, какие дополнительные возможности поддерживает станция.
GET /x/features
GET /x/features
x/c
list.txt
blacklist.txt
Полный перечень обозначения возможностей:
- u/e — расширенная схема u/e
- list.txt - список эхоконференций
- blacklist.txt - чёрный список сообщений
- x/file - файловые запросы
- x/c - количество сообщений в эхе на ноде
- f/ - файлэхоконференции
Сисоп складывает разные файлы себе на ноду, а поинты (либо просто желающие) могут их скачивать.
POST /x/filelist или GET /x/filelist/pauth
Получение списка файлов в формате <Имя>:<Размер в байтах>:<Описание>. Параметр pauth
- строка авторизации. Если pauth
проходит проверку (существует поинт с таким паролем), то к публичному списку добавляется также список скрытых от посторонних глаз файлов.
POST /x/file
или GET /x/file/filename
Параметры для запросов: pauth
и filename
. pauth
- строка авторизации (передаётся всегда в POST), filename
- имя скачиваемого файла.
Если filename
отсутствует, то выдаётся ошибка. Если параметр pauth
верный (т.е. пароль верный), то это даёт пользователю возможность скачивать скрытые файлы. Если файл публичный, то pauth
может быть и неверным. Внимание: POST-параметры имеют приоритет перед GET.
POST /x/filelist
pauth=12345
myfile.txt:421:Интересная информация
cats.jpg:63253:Скрытый файл
POST /x/file
pauth=12345;filename=cats.jpg
или
POST /x/file/cats.jpg
pauth=12345
<Содержимое скрытого файла>
POST /x/file
filename=myfile.txt
или
GET /x/file/myfile.txt
<Содержимое публичного файла>
GET /x/file/cats.jpg
<Ошибка, т.к. пароль не указан, а файл приватный>
Механизм распространения файлов пользователями сети по принципам, схожим с распространением эхоконференций.
Имя файлэхи - от 3 до 120 символов: маленькие латинские буквы, цифры, символы подчёркивания, минуса и точки.
Вся синхронизация односторонняя. Две ноды просто собирают друг у друга файлы. Пойнты же, наоборот, публикуют свои файлы, которые нода добавляет в общую БД сети, одобряя их (или не делает, не одобряя).
GET /f/c/test1/test2
Единственный параметр метода - список, разделенный '/'.
Словарь "файлэха":"количество".
GET /f/c/test1/test2
test1:32
test2:17
Аналог /list.txt для файлэхоконференций.
GET /f/list.txt
Словарь "фэха":"количество сообщений":"описание эхи".
GET /f/list.txt
books:35:Книги
pics:270:Картинки
Хеши тех файлов, которые нода не принимает во время обмена и не показывает в файлэхоконференциях. Используется для чистки станции от спама/некорректных файлов.
GET /f/blacklist.txt
Список хешей файлов на каждой строке по одному.
Возвращает список файлов с метаинформацией для указанных файлэхоконференций.
Список файлов из заданных файлэхоконференций.
GET /f/e/файлэха1/файлэха2
файлэха1
fid:filename:size:address:description
fid:filename:size:address:description
fid:filename:size:address:description
файлэха2
fid:filename:size:address:description
Где
- fid — file ID, представляющий собой хеш содержимого файла, сформированный по тем же правилам, что и msgid.
- filename — имя файла, ограничено длиной 120 символов
- size — размер файла в байтах
- address — адрес отправителя файла
- description — краткое описание файла, ограничено 1024 символами. Если в файл-строке и дальше встречаются двоеточия-разделители с информацией, то весь текст после них идёт в счёт description.
Отличить фэху от строчки файла очень просто по наличию ":". В имени файлэхи этот символ недопустим. Внимание: все поля, включая description, обязательны к заполнению.
Также метод поддерживает сокращённый индекс подобно расширенной схеме u/e. Например,
GET /f/e/fecho1/fecho2/-2:2
вернёт в индексе только последние два файла из указанных файлэхоконференций.
GET /f/f/fecho/fid
Возвращает файл из указанной файлэхоконференции с указанным файл ID.
POST /f/p
Публикует файл в файлэхе на узле.
Передаваемые параметры (заполняются все):
- pauth — строка авторизации поинта
- fecho — имя файлэхоконференции
- file — отправляемый файл, имя файла максимально 120 символов латиницей; допустимы цифры, точки, нижние подчёркивания, дефисы.
- dsc — описание файла, юникод