[#] spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — All
2024-11-02 06: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: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — shaos
2024-11-02 07:18:13


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

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-02 07: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
shaos(spnet, 2) — ahamai
2024-11-02 07: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: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-02 08:02:52


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

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


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

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

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

[#] Re: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — shaos
2024-11-02 08:04:26


Жесть. Ты теперь обязан жениться на u/e

[#] Re: spnet проапгрейдился до iii-php v0.9
hugeping(ping,1) — shaos
2024-11-02 08:41:46


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

Просто на всякий случай. В слайсах, установка limit в 0 означает безлимит.

https://hugeping.tk/u/e/idec.talks/0:0 - всё
https://hugeping.tk/u/e/idec.talks/-1:0 - последнее (ну или -1:1)

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — hugeping
2024-11-02 15:46:45


> Просто на всякий случай. В слайсах, установка limit в 0 означает безлимит.

0:0 у меня таки сработает как all
а вот -1:0 надо посмотреть...

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — ahamai
2024-11-02 16:01:44


> Жесть. Ты теперь обязан жениться на u/e

Выходит что так :)

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


-1:0 не работает (точнее работает, но возвращает 0 хешей)
но я эту логику не трогал - видимо ii-php всегда так работал
исправлю

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-02 16:22:08


Проверил старый ii-point.php - он и по 0:0 возвращал 0 хешей :)
Так что я получается это уже частично исправил ;)
Осталось N:0 исправить...

[#] Re: spnet проапгрейдился до iii-php v0.9
hugeping(ping,1) — shaos
2024-11-02 18:43:13


shaos> Осталось N:0 исправить...

Я сегодня тоже баг в сплайсах у себя обнаружил. Не работали положительные индексы вообще :)
Но никто не использовал их в таком режиме. Исправил.

[#] Re: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — hugeping
2024-11-02 22:31:39


> Я сегодня тоже баг в сплайсах у себя обнаружил. Не работали положительные индексы вообще :)
> Но никто не использовал их в таком режиме. Исправил.

я про это и говорил, что не смогу у себя реализовать такое правильно, потому что этого не понимаю

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-03 02:20:39


> Осталось N:0 исправить...

Исправил - заменяю количество 0 на 999999999 (один миллиард минус 1) т.к. вряд ли когда-нибудь в ii/IDEC будут эхи с количеством сообщений больше миллиарда - ограничение такое сделал ещё и из-за того, что у меня в /u/e/ теперь unixtime может пролетать и для простоты он у меня определяется как число >=1000000000 что соответствует Sun Sep 09 2001 01:46:40 GMT+0000 (не думаю, что в ii/IDEC когда-либо попадутся сообщения древнее сентября 2001 года)...

[#] Re: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — shaos
2024-11-03 02:36:03


Теоретически кто может сконвертить фидошные, с оригинальной датой. Лучше убрать один порядок :)

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


Это не дата в заголовке сообщения, это дата когда сервер это сообщение принял либо по фетчу, либо по пушу, либо через поинтовый апи, либо путём копирования файлов извне (у меня сейчас - дата модификации файла сообщения). Ясно понятно, что 2001 год там быть не может. Да и в заголовке старая дата как бы не должна быть т.к. это timestamp проставляемый сервером при конвертировании ii сообщения из поинтового в сохранённое, чего никак не могло произойти раньше 2014 года...

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-03 03:15:58


И потом этот unixtime используется для отрезания сообщений в /u/e - типа дай мне всё что новее, а это обычно прям щас, не в прошлом

[#] Re: spnet проапгрейдился до iii-php v0.9
shaos(spnet, 2) — shaos
2024-11-03 05:26:28


Тут ещё такой момент есть - ii-php со стародавних времён накладывает блеклистовый фильтр уже после того, как слайсы посчитаны и выходной список софрмирован, т.е. например если последнее сообщение в эхе заблеклисчено, то -1:1 вернёт ничего. По идее это решается административно путём принятия за правило никогда не блеклистить последнее сообщение в эхе - пусть оно немного "полежит" :)

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

[#] Re: spnet проапгрейдился до iii-php v0.9
hugeping(ping,1) — shaos
2024-11-03 06:35:04


shaos> А так надо быть готовым к тому, что запросив у меня скажем -10:10 можно получить в ответ только 9 сообщений...

Интересно. Мой вариант фетча с пробами по -N:1 вроде бы устойчив к такому поведению. Вот если сразу 16 заблеклистишь последних, тогда будут проблемы :)

[#] Re: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — shaos
2024-11-03 06:20:42


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

[#] Re: spnet проапгрейдился до iii-php v0.9
ahamai(blackcat, 2) — shaos
2024-11-03 06:39:28


люблю оптимизм. :) будем ждать первую эху с миллиардом сообщений