TGI station



Назад

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

subject: spnet проапгрейдился до iii-php v0.9
02.11.2024 09:51
shaos (spnet, 2)  
 
Смотрим если вдруг вылезут косяки с веб-интерфейсом либо пинтовым апи. Новый поинтовый апи доступен всё так же по 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.t…
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.…
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/engli…
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.…
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.spe…
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/z…
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/…
retro.talks
english.talks
HOYW7nXXHb3HPKAFLz1w
zx.spectrum

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

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

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 10:18
ahamai (blackcat, 2) => 2SuPPA6hFPjlM5IH6sne  
 
Так. Я могу задать срез последней, я могу задать каждой. А если я задам не каждой, а некоторым, что будет тогда?
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 10:38
shaos (spnet, 2) => 2SuPPA6hFPjlM5IH6sne  
 
Сделал хак для поддержки /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

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 10:42
shaos (spnet, 2) => QbWnLH9srLUQ8u8IuGX9  
 
> Так. Я могу задать срез последней, я могу задать каждой. А если я задам не каждой, а некоторым, что будет тогда?

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

Если надо чтобы что-то из списка брало по своему, то там надо указать свой "срез" либо волшебное слово 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

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 11:02
shaos (spnet, 2) => pNU7DLncj2LikcrcX2AN  
 
По ходу пьесы удалил около 500 строк отвечающих за файлэхи - это было порядка 20% всего кода ii-php (сейчас осталось чуть больше 2000 строк), а чтобы поддержать в /u/e/ слайсы где попало, lim/N, выдача по хешу, выдача по времени сохранения плюс хак /lim/N/e/u потребовалось добавить меньше 50 строк...
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 11:05
shaos (spnet, 2) => KGhCKxNm6PKzd0xDidwl  
 
> сейчас осталось чуть больше 2000 строк

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

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 11:04
ahamai (blackcat, 2) => JxFzdGq3uz9fAY5J86ma  
 
Жесть. Ты теперь обязан жениться на u/e
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 11:41
hugeping (ping,1) => JxFzdGq3uz9fAY5J86ma  
 
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)

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 18:46
shaos (spnet, 2) => A48Rs8ZmrPh8ZzYL7uga  
 
> Просто на всякий случай. В слайсах, установка limit в 0 означает безлимит.

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 19:01
shaos (spnet, 2) => dzeOMrsaJHaZ5wCPBYFP  
 
> Жесть. Ты теперь обязан жениться на u/e

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

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 19:05
shaos (spnet, 2) => bjuri9sc06qQiaZSJarJ  
 
-1:0 не работает (точнее работает, но возвращает 0 хешей)
но я эту логику не трогал - видимо ii-php всегда так работал
исправлю
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 19:22
shaos (spnet, 2) => 7Zz6DC3hRRHZuT630rBx  
 
Проверил старый ii-point.php - он и по 0:0 возвращал 0 хешей :)
Так что я получается это уже частично исправил ;)
Осталось N:0 исправить...
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
02.11.2024 21:43
hugeping (ping,1) => UKSPwN2AWMGqWHkA1roU  
 
shaos> Осталось N:0 исправить...

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

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 01:31
ahamai (blackcat, 2) => wu9IbtBgenqEbRIUdV6k  
 
> Я сегодня тоже баг в сплайсах у себя обнаружил. Не работали положительные индексы вообще :)
> Но никто не использовал их в таком режиме. Исправил.

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

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 05:20
shaos (spnet, 2) => UKSPwN2AWMGqWHkA1roU  
 
> Осталось N:0 исправить...

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

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 05:36
ahamai (blackcat, 2) => m14hRqYHVzKwReODIAqq  
 
Теоретически кто может сконвертить фидошные, с оригинальной датой. Лучше убрать один порядок :)
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 06:12
shaos (spnet, 2) => x9OAYqAn1r2tOHahnBKM  
 
Это не дата в заголовке сообщения, это дата когда сервер это сообщение принял либо по фетчу, либо по пушу, либо через поинтовый апи, либо путём копирования файлов извне (у меня сейчас - дата модификации файла сообщения). Ясно понятно, что 2001 год там быть не может. Да и в заголовке старая дата как бы не должна быть т.к. это timestamp проставляемый сервером при конвертировании ii сообщения из поинтового в сохранённое, чего никак не могло произойти раньше 2014 года...
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 06:15
shaos (spnet, 2) => sylP4wPyy22HeJA6MeLT  
 
И потом этот unixtime используется для отрезания сообщений в /u/e - типа дай мне всё что новее, а это обычно прям щас, не в прошлом
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 08:26
shaos (spnet, 2) => m14hRqYHVzKwReODIAqq  
 
Тут ещё такой момент есть - ii-php со стародавних времён накладывает блеклистовый фильтр уже после того, как слайсы посчитаны и выходной список софрмирован, т.е. например если последнее сообщение в эхе заблеклисчено, то -1:1 вернёт ничего. По идее это решается административно путём принятия за правило никогда не блеклистить последнее сообщение в эхе - пусть оно немного "полежит" :)

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

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 09:20
ahamai (blackcat, 2) => 4e44oq886Pr6iXzjAq83  
 
вообще изначально большие блеклисты не имели смысла - сисопы блеклистили, потом вычищали у себя из баз, а потом и снова удаляли из блеклистов. щас я так понимаю каждый свой блеклист ведёт :) раньше он был фактически общий
--------------------------------------------------------------------------------

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 09:35
hugeping (ping,1) => 4e44oq886Pr6iXzjAq83  
 
shaos> А так надо быть готовым к тому, что запросив у меня скажем -10:10 можно получить в ответ только 9 сообщений...

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

subject: Re: spnet проапгрейдился до iii-php v0.9
03.11.2024 09:39
ahamai (blackcat, 2) => sylP4wPyy22HeJA6MeLT  
 
люблю оптимизм. :) будем ждать первую эху с миллиардом сообщений
--------------------------------------------------------------------------------