TGI station



Назад

idec.talks :: spnet проапгрейдился до iii-php v0.11
===================================================

subject: spnet проапгрейдился до iii-php v0.11
09.11.2024 17:13
shaos (spnet, 2)  
 
v0.10 - стал убирать \r при выводе сообщения - в результате исправился показ секций ==== вводимых на самой ноде (ещё надо сделать убирание при получении сообщения т.к. например iii-php будучи запущенным в Firefox создаёт сообщения с \r\n), также убрал показ самих ==== (остался только <pre>)

v0.11 - в Echolist сделал подсветку эх у которых последнее сообщение новее 3 дней

Исходники под MIT-лицензией как обычно тут: https://gitlab.com/shaos/iii-php

P.S. Сейчас делаю topicid...
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.11
10.11.2024 06:51
shaos (spnet, 2) => AIzaO3W3nR1m7703ngN4  
 
Пока лазил по архивам наткнулся на старое сообщение от автора ii-php:

/x/e ii-php

Оказывается, рабочая реализация "сообщений с определённого msgid" на моей ноде уже имеется. Это /x/e, который был реализован про запас.

Образец

POST /x/e
параметр data равен:

====
pipe.2032:msgid
ii.14:msgid
ещёэха:msgid
====

Результат:
====
pipe.2032
msgid
msgid
msgid
ii.14
msgid
ещёэха
msgid
====

Если указанного msgid в базе нет, выдаёт всю эху. Если msgid последний в списке, то в результате пустота (нет даже названия эхи).

--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.11
10.11.2024 06:52
shaos (spnet, 2) => JPwCEzz2DH0NkC2tCHP8  
 
И оно в моём iii-php действительно всё ещё есть :)

====
elseif ($opts[0] == 'x' and $opts[1] == 'e' and remote('data')) {
$lines=explode("\n", $_POST['data']);
foreach ($lines as $line) {
$line=explode(":", $line);
if (count($line)!=2) continue;

$echoarea=trim($line[0]);
$msgid=trim($line[1]);

$index=$access->getMsgList($echoarea);
$maxElement=count($index)-1;

$search=array_search($msgid, $index);
if ($search!=NULL and $search<$maxElement) {
$newMessages=array_slice($index, $search+1);
echo $echoarea."\n".implode("\n", $newMessages)."\n";
} elseif ($search==$maxElement) {
continue;
} else {
echo $echoarea."\n".$msgids;
}
}
}
====
--------------------------------------------------------------------------------