nastene (она же ii) - это распределённая система сообщений, максимально упрощённоё фидо. Операция идёт с двумя объёктами. Объект сообщение это сообщение. Объект эха это список сообщений со своим именем. Станции по заданому заранее рутингу* скачивают с других станций списки, потом забирают те сообщения, которых у них нет. Пойнты пишут сообщения на станции. Всё, это весь обмен и вся структура сети.
* Легко с помощью list.txt и питоньей матери обеспечить "все обмениваются со всеми", но как показывает практика, у разных станций разные списки эх. Так и было задумано.
nastene-0.7 это веб-интерфейс такой станции, написанный на python3, который позволяет читать и писать как через веб-интерфейс, так и через ii-совместимый клиент
todo: исправить nastene-retro под этот спек. (написанная в лучших традициях html 4.01 или даже 3.2)
Re: draft-1 ahamai to ahamai
Формат запросов
/e/имя.эхи
Запрашивает все msgid из данной эхи. msgid это просто строка из 20 символов, задача которой быть уникальной (используется хэш).
/m/msgid
Запрашивает конкретное сообщение по его msgid
/u/e/имя.эхи/имя.эхи/имя.эхи
Запрашивает msgid сразу у нескольких эх. Формат выдачи
это.эха1
ABCDEABCDEABCDEABCDE
BCDAEBCDAEBCDAEBCDAE
это.эха2
A1B2C3D4E5EBGGSDFDSFF
SDFSDFSDFDSFSDFWWWW
...
/u/m/msgid/msgid/msgid
Запрашивает пакет сообщений. Формат выдачи
msgid:сообщение-закодированное-base64
msgid:сообщение-закодированное-base64
...
(два первых символа хэша для указания года)
Re: draft-1 ahamai to ahamai
Все сообщения в сети создают только пойнты и отправляют их через веб интерфейс или клиента. Точка входа для пойнта
/u/point/pauth/tmsg/
где pauth - это строка авторизации
tmsg - сообщение, закодированное base64
обычно используется в виде post-запроса вида /u/point с полями pauth и tmsg
Re: draft-1 ahamai to ahamai
Сообщения на станции хранятся в своём формате:
1. тэги (выглядит например, так: ii/ok/repto/ABCDEABCDEABCDEABCDE где repto показывает, что это ответ на сообщение, а ii/ok это стандартный заголовок)
2. эха, куда помещено сообщение
3. стандартный unix timestamp, типа 1728457880
4. Имя отправителя
5. адрес, например адрес вида lenina,22 говорит, что это пойнт с улицы, то есть со станции Ленина и он там 22й такой
6. Кому сообщение. Если это новое сообщение, то используется All
7. Тема сообщения
8. [пустая строка]
9 и далее - текст сообщения
Re: draft-1 ahamai to ahamai
формат tmsg, отправлямого пойнтом
1. эха
2. кому (или All)
3. тема
4. [пустая строка]
5. текст сообщения*
* если это ответ на конкретное сообщение, то первой строкой текста сообщения идёт @repto:MSGIDтогосообщения