RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[>] Meet ii, a new old distributed plaintext communication network
english.talks
shaos(spnet, 2) — All
2024-11-01 18:53:59


[copied from gopher://hoi.st]

(2024-10-28) Meet ii, a new old distributed plaintext communication network
---------------------------------------------------------------------------
Remember FidoNet? Now, imagine something like that but much simpler and over
TCP/IP (as of now, even over HTTP(S)). This is a very vague description of
what I'm gonna talk about.

As lightweight protocols are among my hobbyist interests, I was delighted to
find out about the existence of such a protocol as ii. Gopher, Nex, Spartan,
Gemini etc. are nice but they don't solve the problem of distributed
communication. Email does but it's too complex and bulky. Misfin is fine for
one-to-one communication but totally impractical for mailing lists or so. We
really need something like Usenet/FidoNet but without all the crutches of
the past.

This is what ii is about. It was developed in the spring of 2014 and its
initial author had abandoned it long ago, but it lives in the form of the
"IDEC network" (where IDEC stands for "ii-like Data Exchange Convention")
that implements some extensions to the original protocol, which are fully
optional, and is backwards-compatible with ii. I have tested some of those
extensions myself but eventually deemed all of them unnecessary for my own
client purposes, so my client only implements the basic ii standard as
described in ([1]), and yes, I think my doc is more concrete and concise
than the original GitHub. Maybe I'll also add it to the Gopherspace to make
sure it doesn't get lost somewhere.

As for the client, it's called tii, written in Tcl/Tk 8.6 (of course) and
distributed in the same repo ([2]) as a suite of several scripts, including
the tiifetch.tcl CLI fetcher, tiipost.tcl CLI poster, tiiview.tcl CLI viewer
and tiix.tcl GUI client. As of now, tiix.tcl depends upon the tiifetch.tcl
and tiipost.tcl for corresponding functionality, so tii is not a
single-script solution and wasn't designed to be one. By the way, I couldn't
find any existing GUI clients for the ii/IDEC network, so tiix.tcl might be
the first one. Besides Tcllib, the tii suite also depends upon the sqlite3
package because this is the actual backend for ii message storage.

As for the server side, there exist several ii/IDEC node (aka station)
implementations in various programming languages (mainly C and Python), but
they have some inconsistency in terms of following even the basic ii specs,
so I've decided to start working on tiid, my own ii station software. It is
only going to serve basic ii requests (GET /list.txt, GET /u/e, GET /u/m and
POST /u/point) and have a message DB format compatible with the client-side
one. Ideally, it should reuse the same codebase and algorithms from
tiifetch. The only thing left to design before I start coding this up is the
mechanism of secure anti-spambot signup without requiring JS or any Web
browser whatsoever on one hand, and without any manual approvals on the
other hand. Essentially, this part will probably be more complicated than
the rest of the node codebase, but we'll see how it goes.

Overall, I think this network has some potential to become a lightweight
censorship-resistant environment island in the ocean of centralized
locked-down Web bloatware. This is why I'm totally in.

--- Luxferre ---

[1]: https://git.luxferre.top/tii/file/ii-doc.txt.html
[2]: https://git.luxferre.top/tii/file/README.html

[>] Re: Тест скорости фетча (+потеряшки)
idec.talks
shaos(spnet, 2) — hugeping
2024-10-31 20:34:11


Было несколько сообщение с 19-символьными msgid - я раньше писал про это.
Их можно вернуть в строй, добавив нолик в конце и поправив repto, где на них ссылаются.

[>] Re: Разбор idec
idec.talks
shaos(spnet, 2) — Andrew Lobanov
2024-10-31 20:37:55


Ну это веб-морда того же ii-php и шлёт :)

Балин!!! Точно!!! Спасибо!!!

[>] Re: Дополнения к стандарту
idec.talks
shaos(spnet, 2) — tuple
2024-10-31 20:46:09


> tgi же неоднократно просил считать владелец станцией экспериментов и не фетчиться с неё.

Ну может кого и просил, но мы с ним в сентябре 2022 года по е-мейлу договорились взаимно фетчить idec.talks и zx.spectrum, а потом я ещё bot.habr.rss у него начал забирать.

[>] Re: Дополнения к стандарту
idec.talks
shaos(spnet, 2) — revoltech
2024-10-31 20:48:10


Лучше написать не больше 380 т.к. вебсервер может такое не пережувать

И наверное надо метод POST добавить (я у себя добавлю)

[>] Re: Дополнения к стандарту
idec.talks
shaos(spnet, 2) — hugeping
2024-10-31 20:49:59


Рекомендовать 32, но указать, что некоторые вебсервера могу принять до 380

[>] Re: Дополнения к стандарту
idec.talks
shaos(spnet, 2) — shaos
2024-10-31 21:03:50


Рекомендовать 32 т.к. оно вообще не через http-сервер может идти, а через самописный (кстати bottle.py какое ограничение имеет?)

[>] Re: Дополнения к стандарту
idec.talks
shaos(spnet, 2) — revoltech
2024-10-31 22:18:10


Ну это как написать…

[>] Что такое iii
iii.nizya
shaos(shaos, 2) — All
2024-09-25 10:34:30


iii это типа кодовое наименование моего виденья развития сети озвученного в декабре 2021 года:

ii://xDT61Ukip7E064VjCjt4

iii читается как "айяйяй" :)

Буквосочетанием iii-nizya планируется назвать нового графического клиента ;)

А iii-php это название нового сервера, вырастающего из старого-доброго ii-php:

https://gitlab.com/shaos/iii-php

[>] Re: Что такое iii
iii.nizya
shaos(spnet, 2) — shaos
2024-10-16 10:34:55


Придумал слоган по английски, описывающий то, что я хочу сделать :)

iii is a strengthened ii with some elements of IDEC (ii-like Data Exchange Convention)

Stengthened значит "усиленный":
- никаких файлэх;
- никаких отправок паролей через GET по секьюрному соединению (POST всё ещё ок);
- никаких отправок паролей вовсе через несекьюрное соединение (используем HMAC-RIPEMD-160-96 вместо);
- пересчёт хеша для проверки целостности сообщения;
- чётко прописанный протокол действий на случай если какой-то узел становится скомпрометированным;
- чётко прописанный протокол действий на случай если какой-то поинт становится скомпрометированным;
- гибкая система наказания поинтов и узлов (модерирование, игнор, временный бан и т.д.);
- возможна фильтрация входящих сообщений и т.д.

[>] Re: Что такое iii
iii.nizya
shaos(spnet, 2) — shaos
2024-10-16 10:56:19


да - и поиск :)

[>] Re: Что такое iii
iii.nizya
shaos(spnet, 2) — revoltech
2024-10-27 23:48:24


> Что мешает искать уже оффлайн среди выкачанного?

Ретроклиенты без винтов

В сети ii/IDEC кстати был поиск - через elasticsearch на dynamic.lessmore.pw но исчез вместе с нодой и её автором - ладно хоть следы какие-то остались в гитхабе:
https://github.com/idec-net/dynamic.lessmore.pw
https://github.com/idec-net/lessmore-node

>> никаких отправок паролей вовсе через несекьюрное соединение
> А откуда ты знаешь, секьюрное у меня соединение или нет? Я могу и http через torsocks заворачивать, вай бы и нот?

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

> > гибкая система наказания поинтов и узлов (модерирование, игнор, временный бан и т.д.);
> Ну это уже форумное вахтёрство. Всегда найдётся узел, где такого не будет.

ну а как иначе? я админю phpBB форум 20 с лишним лет - я знаю что если вновь прибывшим доверять прям сразу, то очень быстро форум превращается в пристанище "проституток из новосибирска" и "новая крипта которая даёт стабильный заработок" (причём на всех возможных языках планеты), да и старожилов иногда заносит когда они с пьяных глаз начинают материть всех подряд...

[>] Re: Что такое iii
iii.nizya
shaos(spnet, 2) — revoltech
2024-10-28 21:25:10


Зачем отдельные гейты если можно всё в одном узле сделать?

По несекьюрным каналам сообщения можно слать без пароля, но с HMAC подписью - ключ (shared secret) при этом хранится и у клиента, и на сервере - на сервер его надо передать один раз секьюрно (да хоть по емейлу сисопу) и меняется только если клиент или сервер стали compromised - я скоро опишу как я это вижу в idec.talks

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 00:21:12


> Во-первых, изначально у меня была ошибка, ?sf не прозрачна, её нельзя добавить вообще везде. Потому что есть php-ноды, и там должно быть &.

Ну я ведь у себя поддержал list.txt?h=1 :)

Просто парсить надо будет вручную

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 00:30:19


Ну расширенный слайсами /u/e существует уже тоже 10 лет и поддержан кучей клиентов и серверных реализаций - так что проще добавить одну проверку в blcat.ru дабы исключить падучесть и далее сосуществовать в мире и согласии :)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 01:05:17


> тут нет никаких "что-то ещё", либо эха либо msgid.

… либо мусор

Если нет проверки на то, что тебе не подсунули мусор, то это неработоспособное решение - как POC для запуска в песочнице для ограниченного круга лиц - годится, а для реальных применений в массах - нет…

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 02:30:11


> Ты качаешь с доверенных узлов по предварительной договорённости.

Каких нахрен доверенных узлов? Оно всё в интернет торчит голыми жопами - кто-то напишет сырой клиент который при переполнении чего-нибудь где-нибудь зашлет тебе дамп своей памяти вместо корректного запроса и чо?

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 02:40:08


> которые не понимающие их станции игнорят

А вдруг не игнорят? Там ведь может быть только либо ii/ok, либо repto/msgid если там не ii/ok то это должно быть repto - где написано что там может быть мусор? :)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 03:15:22


если бы создатели сетевых протоколов всецело доверяли друг другу, то интернет бы давно умер…

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-01 04:05:45


> http://ii.blcat.ru/lim/100/list.txt

А это не изнасилование запроса /list.txt? ;)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — revoltech
2024-11-01 10:19:54


Вот чего я родил - всем сестра'м по серьга'м как говорится :)
elseif ($opts[0] == 'u' and $opts[1] == 'e') {
	$work_options=array_slice($opts, 2);
	$aecho = [];
	$aoff = [];
	$alen = [];
	$lim = 0;
	$count = 0;
	foreach ($work_options as $work) {
		if(is_numeric($work)) {
			if($lim >= 0) die("error: unexpected single number");
			$lim = intval($work);
			if($lim < 0) die("error: unexpected negative number");
		} elseif(strpos($work,".")!==false) {
			if($lim < 0) die("error: missing lim value");
			array_push($aecho,$work);
			if($lim > 0) {
				array_push($aoff,-$lim);
				array_push($alen,$lim);
			} else {
				array_push($aoff,NULL);
				array_push($alen,NULL);
			}
			$count = $count + 1;
		} elseif(strpos($work,":")!==false || strcmp($work,"all")==0 || strcmp($work,"last")==0) {
			if($lim != 0) die("error: slice can not be used with lim");
			if(strcmp($work,"all")==0) {
				$a = 0;
				$b = 0;
			} elseif(strcmp($work,"last")==0) {
				$a = -1;
				$b = 1;
			} else {
				$numbers=explode(":", $work);
				$a = intval($numbers[0]);
				$b = intval($numbers[1]);
			}
			for($i=$count-1;$i>=0;$i--) {
				if(!is_null($aoff[$i])) break;
				$aoff[$i] = $a;
				$alen[$i] = $b;
			}
		} elseif(strcmp($work,"lim")==0) {
			$lim = -1;
		} else die("error: wrong arguments");
	}
	$buffer = "";
	for($i=0;$i<$count;$i++) {
		$echo = $aecho[$i];
		if($aoff[$i]==0 && $alen[$i]==0) {
			$slice = $access->getMsgList($echo); // NULL, NULL
		} else {
			$slice = $access->getMsgList($echo, $aoff[$i], $alen[$i]);
		}
		if (count($slice) > 0) {
			$buffer.=$echo."\n".implode("\n", $slice)."\n";
		} else {
			$buffer.=$echo."\n";
		}
	}
	echo $buffer;
}
тут тебе и стандартный ii, и со слайсами в конце [-]N:M как в IDEC, и со слайсами внутри (между именами эх) как я предлагал ранее, и можно писать last вместо -1:1, и можно писать all внутри если в конце стоит last или какие другие нумера (типа /u/e/echo.1/all/echo.2/echo.3/last если надо только последнее сообщение для последних двух эх и всё для первой), и можно после каждой эхи писать, как предлагал revoltech, и даже lim/N в начале пройдёт как у Ромы (правда при этом уже нельзя будет слайсы воткнуть), а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — revoltech
2024-11-01 10:54:14


> это как раз тот уровень сложности, от которого я стараюсь держаться подальше.

Это сложность по твоему? Это наоборот лёгкость и непринуждённость :)

> Такого, кстати, быть не должно.

Да запросто - например я вашу беседу у себя на ноде вижу задом наперёд - сначала твои ответы, потом сообщения на которые ты отвечаешь, а где-то наверное есть правильный порядок...

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — doesnm
2024-11-01 11:19:03


Возможно revoltech берёт сообщения Ромы прямо с blcat.ru и отвечает на них через меня, а я опрашиваю blcat.ru уже после, соответствено у меня ответы появляются раньше вопросов и затем это распространяется везде, кто берёт idec.talks с меня...

[>] Re: Test emoji
idec.talks
shaos(spnet, 2) — revoltech
2024-11-01 11:19:36


А вот этого сообщения у меня ещё нет :)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-01 11:27:12


На http://ii.blcat.ru/idec.talks правильный порядок - значит blcat берёт сообщения с меня чаще, чеми я с него, а revoltech по-видимому читает сразу всех и часто - я просто вижу его ответы раньше т.к. он мой поинт и отвечает через меня...

[>] Re: Test emoji
idec.talks
shaos(spnet, 2) — tuple
2024-11-01 11:28:34


На ii-php всё видно :)

Надо игру какую-нить заварганить пошаговую...

[>] Re: Тест скорости фетча (+потеряшки)
idec.talks
shaos(spnet, 2) — tuple
2024-11-01 11:46:44


Если кому интересно вот разница в траффике между HTTPS и HTTP ответами на один и тот же запрос с моей ноды:

HTTPS:
24.130.121.38 - - [01/Nov/2024:00:36:38 -0700] "GET /iii/x/h/bot.habr.rss/lor.opennet HTTP/1.1" 200 3977 "-" "curl/7.64.0"

HTTP:
24.130.121.38 - - [01/Nov/2024:00:38:43 -0700] "GET /iii/x/h/bot.habr.rss/lor.opennet HTTP/1.1" 200 216 "-" "curl/7.64.0"

Как можно видеть HTTPS лишние 3.5КБ передаёт соответственно для HTTPS лучше большие и редкие запросы делать, а вот для HTTP наверное лучше много мелких, чтобы сервер быстрее отрабатывал.

[>] Re: Рома порвался
idec.talks
shaos(spnet, 2) — Andrew Lobanov
2024-11-01 18:02:19


> Ну я Шаоса, вроде, не тяну.

Ну как не тяну? Тянешь, но по старому списку эх 2021 года и по старому адресу…

[>] Re: Рома порвался
idec.talks
shaos(spnet, 2) — shaos
2024-11-01 18:35:30


TOP10 VISITORS:

[1] Facebook point=0 web=1027 up=22.9MB (33%)
[2] 176.109.111.x point=46 web=0 up=16.7MB (24%) <--- tavern (2/hr)
[3] 92.63.98.x point=70 web=0 up=5.9MB (8%) <--- tgi (3/hr)
[4] Google point=42 web=480 up=5.7MB (8%) <--- Google (2/hr)
[5] 145.224.100.x point=115 web=1 up=5.0MB (7%) <--- 145.224.100.x (5/hr)
[6] Amazon point=0 web=83 up=4.1MB (5%)
[7] 95.165.9.x point=135 web=2 up=3.3MB (4%) <--- ping (6/hr)
[8] 217.197.116.x point=150 web=0 up=2.7MB (3%) <--- blackcat (6/hr)
[9] 24.130.121.x point=35 web=58 up=2.0MB (2%) <--- spnet (1/hr)
[10] 172.56.42.x point=0 web=35 up=0.2MB (<1%)

TOTAL TRAFFIC: 68MB

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-01 19:34:13


Если сохранять хеш последнего принятого сообщения для КАЖДОЙ опрашиваемой ноды, то тогда да - имеет право на жизнь. По идее оно может собой заменить хеш списка сообщений для эхи (мой /x/h или /list.txt?h=1) т.к. список не может расти изнутри - только с конца...

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-01 19:37:13


Время ненадёжно т.к. сообщения приходят так как приходят из-за особенностей роутинга и последовательности фетчинга, а вовсе не в хронологическом порядке, и старое сообщение вполне может внезапно "всплыть" выше по списку чем более новые ответы на него (см. беседу revoltech с Ромой).

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-01 19:46:23


Выше по списку в ленте сообщений где сверху показаны последние сообщения, а в списке хешей эхи оно естественно будет ниже по списку...

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-01 21:10:22


А ну это сейчас вообще никем не фиксируется

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-01 21:46:38


Ну теоретически если кто хранит мессаги в MySQL или SQLite, то время добавления можно и сохранять, а если только в файлах, то по времени создания файла? Можно попробовать - всё равно ведь не всё перебирать надо, а только последние сообщения в эхе пока не найдём «прошлое»…

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-02 00:29:48


Реверсная выдача это когда клиент качает список в обратном порядке пока не дойдёт до знакомых хешей? Это может работать только для отдельных эх (типа /e но в обратном порядке).

Для минимизации количества запросов можно все эхи разом опросить - для этого придётся городить новый вызов и новый формат ответа, где будут все эхи вперемешку (по заданному списку) и имя эхи будет в каждой строке, типа:

echo.1:msgid999
echo.2:msgid998
echo.1:msgid997


[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 02:52:07


Речь была вроде не про мусор в выводе /u/e а про мусор в запросе /u/e - такой запрос кто угодно может сделать

[>] Re: Тест скорости фетча (+потеряшки)
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 02:56:57


> у тебя нет http, по нему нет никакой отдачи.

Есть :)

Порт 8085 ;)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — Andrew Lobanov
2024-11-02 09:12:42


Ну вон я же вчера приводил замеры - каждый HTTPS запрос добавляет 3.5КБ к полезной нагрузке - будет 1000 запросов, будет лишних 3.5 мега...

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-02 10:00:12


Вроде сделал по времени сохранения - тормозов не заметил даже на больших эхах

Ща ещё немного погоняю и выложу

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 10:01:39


Я считаю тупо по апачи-логам - сколько там байт написано в ответе, столько и приплюсовываю

Сегодня кстати у меня появится /u/e/lim/N/... ;)

[>] spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — All
2024-11-02 10:51:35


Смотрим если вдруг вылезут косяки с веб-интерфейсом либо пинтовым апи. Новый поинтовый апи доступен всё так же по https://sprinternet.io/iii/ (что через rewrite вызывает iii-point.php?q=/ и если кто-то напрямую дёргает ii-point.php, то с него надо будет слазить т.к. там старый код). Основное нововведение, это насильственные действия в отношении /u/e/ в особо извращённой форме :)
Я вчера показывал свой шедевральный код, который я сегодня ещё более усугубил - ща объясню.

Всё также можно делать запросы в стародавнем стиле ii:

https://sprinternet.io/iii/u/e/retro.talks/english.talks

Всё также можно делать запросы со "слайсами" в стиле IDEC (когда диапазон указанный в конце распространяется на все перечисленные эхи):

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/english.talks/-1:1
retro.talks
XOjs0DTBN77YYkJT2drY
english.talks
HOYW7nXXHb3HPKAFLz1w

Но теперь появляется возможность писать диапазоны не только в конце, но и в середине списка эх (как я уже вчера докладывал):

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-2:2/english.talks/-1:1
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
HOYW7nXXHb3HPKAFLz1w

Причём вместо -1:1 можно написать волшебное слово last:

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/zx.spectrum/-2:2/english.talks/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
zx.spectrum
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl
english.talks
HOYW7nXXHb3HPKAFLz1w

Также в середине списка можно указать волшебное слово all если вдруг какую-то среднюю эху надо выкачать целиком:

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-3:3/english.talks/all/zx.spectrum/last
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

И это уже похоже на то, что revoltech предлагал вот тут ii://El8TC509rAzTVxpWWAaa

А сегодня я даже сделал возможным указывать хеш, начиная с которого надо возвращать список хешей как revoltech предлагал вот тут ii://KmXTgt056WiPcGcdA9Mv т.е.

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/5B3Tra1DRJEcymDcA6Gi/english.talks/all/zx.spectrum/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

Более того - можно указывать только первые символы хеша ;)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/5B3T/english.talks/all/zx.spectrum/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

Главное чтобы оно было не цифрой, иначе оно будет ругаться.

Ну и конечно же анонсированный вчера /u/e/lim/N/... :)

> curl -XGET https://sprinternet.io/iii/u/e/lim/3/retro.talks/english.talks/zx.spectrum
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
MPaCqYswUePWAAfiioBL
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl

Я вчера написал, что lim нельзя использовать вместе со слайсами, а сегодня понял, что можно, но только если lim указывается правее слайсов :)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-4:4/lim/3/english.talks/zx.spectrum
retro.talks
H50pJyclcYjeJbXBAi8k
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
MPaCqYswUePWAAfiioBL
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl

т.е. [-]N:M действует влево (как и all, last и hash), а lim действует вправо!

Ну и напоследок - выдача сообщений сохранённых позже какого-то времени :)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/english.talks/zx.spectrum/1730472839
retro.talks
english.talks
HOYW7nXXHb3HPKAFLz1w
zx.spectrum

(если время совпадает, то такое сообщение тоже возвращается)

Кода это заняло не так много ( чуть больше, чем я вчера показывал ) - я больше кода выкинул, когда довыпиливал файлэхи :)

Кому интересно, то можно посмотреть на коммиты тут https://gitlab.com/shaos/iii-php

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 10:52:57


> Тока он наоборот, lim/n/u/e

Не - так не получится :)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 11:22:51


По идее можно попробовать и /lim/N/u/e/ поддержать, но через хак - оно будет смотреть если это /lim/N/u/e/ то само будет переупорядочивать в /u/e/lim/N/

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 11:37:23


Сделал

> curl -XGET https://sprinternet.io/iii/lim/3/u/e/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 11:38:50


Сделал хак для поддержки /lim/N/u/e/...

> curl -XGET https://sprinternet.io/iii/lim/3/u/e/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

работает также как и

> curl -XGET https://sprinternet.io/iii/u/e/lim/3/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 11:42:33


> Так. Я могу задать срез последней, я могу задать каждой. А если я задам не каждой, а некоторым, что будет тогда?

Когда ты задаёшь "срез" в конце, то он распространяется на весь список

Если надо чтобы что-то из списка брало по своему, то там надо указать свой "срез" либо волшебное слово all либо волшебное слово last

типа /u/e/echo.1/echo.2/all/echo.3/last вернёт всё для echo.1 и echo.2, но только хеш последнего сообщения для echo.3

ну ещё lim можно воткнуть в середину - вот такая запись сделает тоже самое:

/u/e/echo.1/echo.2/lim/1/echo.3

короче полная гибкость и свобода выбора :)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 11:52:05


ну конечно оно в каком-то смысле дублирует слайсы :)

короче с хаком теперь работает, но только применительно к /u/e т.е. например /lim/3/list.txt у меня не пройдёт ;)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 11:53:48


Хак:
elseif (($opts[0] == 'u' and $opts[1] == 'e') ||
        ($opts[0] == 'lim' and $opts[2] == 'u' and $opts[3] == 'e')) {
	$work_options=array_slice($opts, 2);
	// lim/N/u/e hack
	if($opts[0] == 'lim') {
		$work_options[0] = 'lim';
		$work_options[1] = $opts[1];
	}

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 12:02:52


По ходу пьесы удалил около 500 строк отвечающих за файлэхи - это было порядка 20% всего кода ii-php (сейчас осталось чуть больше 2000 строк), а чтобы поддержать в /u/e/ слайсы где попало, lim/N, выдача по хешу, выдача по времени сохранения плюс хак /lim/N/e/u потребовалось добавить меньше 50 строк...

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 12:05:56


> сейчас осталось чуть больше 2000 строк

там ведь ещё есть неиспользуемый сейчас транспорт MySQL - я пока думаю стоит туда вообще залезать или остаться в рамках файлового представления

наверное надо пересаживаться на MySQL хотя бы для хранения метаданных типа цепочек тредов, таблиц поиска и т.д.

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15