#  Re: /x/file
Andrew Lobanov (tavern,1) → vit01  –  10:43:06 2016-05-03

vit01> Дело здесь не в самих ошибках в коде и коллизиях. Суть в костылях, которые надо нагромождать в исходниках, чтобы заставить это работать. Причём на разных нодах они могут приводить к разному поведению, и это очень неудобно.

Просто смотря от чего плясать. Я стараюсь от удобства пользователя, хотя по большей части для этого есть скрипт и пользователю должно быть до лампочки.

vit01> Насчёт POST прошу уточнить, т.к. это важно. Мы делаем примерно такой вариант?

vit01> ====
vit01> POST /x/filelist
vit01> # публичный список

vit01> POST /x/filelist pauth=string
vit01> # приватный + публичный список, либо только публичный, если неверно

vit01> POST /x/file pauth=string, filename=string2
vit01> # содержимое файла, если pauth верный или filename публичный

>> Читать далее
#  Re: пишу фильтр
vit01 (mira, 1) → Roman Yakovlev  –  11:29:39 2016-05-04

RY> это третий python? что-то ни re.UNICODE, ни уникодизации строки

Да, конечно, это третий питон. Но ты, наверное, и сам лучше меня знаешь, как это дело на второй исправить.
Только не забудь в комментариях написать, зачем тебе вообще эти строки кода, а то люди не поймут.
#  Re: пишу фильтр
Roman Yakovlev (station13, 11) → vit01  –  11:46:38 2016-05-04

>> это третий python? что-то ни re.UNICODE, ни уникодизации строки

>Да, конечно, это третий питон. Но ты, наверное, и сам лучше меня знаешь, как это дело на второй исправить.
>Только не забудь в комментариях написать, зачем тебе вообще эти строки кода, а то люди не поймут.

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

или ещё какие-то клиенты имеют эту "фичу" жёстко забитой?

#  Re: пишу фильтр
vit01 (mira, 1) → Roman Yakovlev  –  10:57:29 2016-05-04

Попробуй регулярку из моего клиента


re.compile(r"^\s?[\w_А-Яа-я\-]{0,20}(>)+.+$", re.MULTILINE | re.IGNORECASE)


Вместо > > ставишь, и всё
#  Re: пишу фильтр
Roman Yakovlev (station13, 11) → vit01  –  13:08:34 2016-05-04

>> если ты сделаешь опцию, чтобы такое цитирование отключалось - фильтр вообще можно будет выкинуть, потому что это остался единственный клиент, где такое поведение "насильно" :)
>Если такое цитирование у меня отключить, то сообщения перестанут выделяться цветом, а это крайне нежелательно для глаз.
>Да и вообще: ты хотя бы протестировал клиент, чтобы уже делать какие-то выводы? Присланная регулярка поддерживает как старые, так и новые цитаты, так что никто в пролёте не оказывается.
>А насчёт адаптации к ГК11 было написано ещё в этом сообщении: ii://F17PPvWlIqnmScZeagVo

причём здесь, как это выглядит? мне надо, чтобы имелась возможность НЕ ОТПРАВЛЯТЬ такие сообщения, при включении некоторой опции.

потому что я сейчас сижу и думаю, и вижу только два варианта:
- либо я приделываю "вырезалку кривых цитат" из того, что присылают на ii-гейт, но это всё из-за одного-единственного клиента. с которого пока ни одного сообщения не было написано.

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

или я могу как-то опознать клиента, и вместо принятия сообщения написать "ваш клиент не поддерживается нашим гейтом"?
#  Re: /x/file
Andrew Lobanov (tavern,1) → vit01  –  09:28:55 2016-05-03

vit01> Вот почесал репу и придумал вариант, который устроит нас обоих. Можно разделить /x/file на 2 схемы: одна для списка, другая для скачивания.

Сделал в таверне такой вариант. Попробовал его и с GET и с POST запросами. Понравилось. Пока из всего, что мы надумали, этот вариант мне нравится более всего.
#  umbrella
Difrex (mira, 14) → All  –  13:39:49 2016-05-04

* Переехали в хетцнер
* Elasticsearch 2.3
* Теперь только SSL. HTTP реврайтится в HTTPS
#  пишу фильтр
Roman Yakovlev (station13, 11) → All  –  04:31:11 2016-05-04


def _is_name(qq):
return False
# здесь надо зафигачить проверку, которая определяла бы
# похоже ли написанное на имя или нет, но случаи типа
# 5>2, -3>-4, 5*2+4>100-10 не вырезала


def _msg_filter(lines):
out = []
codestart = 0
for n in lines:
if n == '====':
codestart = 1 - codestart
if '>' in n and not codestart:


>> Читать далее
#  Re: umbrella
Difrex (mira, 14) → Difrex  –  13:59:37 2016-05-04

Да, хочу сменить ЮзерАгент фетчера на umbrella/bot 0.x, все ноды корректно отдадут контент?
#  Re: *.difrex.ru
Difrex (mira, 14) → vit01  –  06:40:49 2016-05-04

>А теперь 502 выдаёт.
Fixed
#  Re: *.difrex.ru
Difrex (mira, 14) → Difrex  –  12:42:44 2016-04-29

Поднялся
#  Re: /x/file
vit01 (mira, 1) → Andrew Lobanov  –  03:49:44 2016-05-03

AL> Если считаешь, что надо всегда указывать authkey, даже если его нет, то сделаем так. Просто я и так и этак смотрю на такой подход, а он мне всё равно не нравится.

Ну а что бы ты предложил в альтернативу? Тут два варианта: либо GET-запросы не работают с приватными файлами, либо оно выглядит "некрасиво".

Мне-то всё равно, у меня клиент в любом случае работает только через POST (а кроме нас двоих сабжем в принципе никто не пользуется), так что пробуй, решай, как удобнее будет.
#  Re: Странности Таверны
Andrew Lobanov (tavern,1) → vit01  –  15:23:25 2016-05-02

vit01> # на предыдущем сообщении, на которое сейчас отвечаю, регулярки веб-интерфейса таверны сломались

Вот это уже пофиксил. С остальным пока не могу разобраться.
#  Re: Странности Таверны
Andrew Lobanov (tavern,1) → vit01  –  16:26:31 2016-05-02

vit01> Возьмём, к примеру, сообщение из пайпа про фоточки с прогулки: ( ii://flYdgHRQTACMOc9kW4KW )

vit01>> Если что, вот браузерная ссылка: http://ii-net.tk/ii/ii-point.php?q=/x/file/none/2016-04-16.tar.xz

vit01> Когда человек запрашивает публичный файл (даже не являясь поинтом), то он имеет право ставить в поле authstr всё, что захочет. В данном случае стоит "none", но можно хоть "blablabla" поставить, и mira station всё равно отдаст файл. Если файл публичный, то нода authstr просто не будет проверять.

Твою точку зрения я понял, но мне она не кажется так уж хорошей. Поведение должно быть такое, чтобы человек интуитивно мог составить ссылку.

Лично я, когда предлагал эту схему, предполагал переменное количество параметров в зависимости от того, что пользователь передаёт. Чтобы хоть wget'ом, хоть через браузер мог быстро и понятно получить файлы.

// Я ещё подумаю, а пока x/file в таверне можете считать нерабочей.
#  Re: /x/file
Andrew Lobanov (tavern,1) → vit01  –  05:41:34 2016-05-03

vit01> Ну а что бы ты предложил в альтернативу? Тут два варианта: либо GET-запросы не работают с приватными файлами, либо оно выглядит "некрасиво".

Видимо, у нас разное представление о "прекрасном" просто. Мне нравится идея, что третий параметр может быть или authkey или именем файла и нода в зависимости от этого отдаёт соответствующую информацию.

vit01> Мне-то всё равно, у меня клиент в любом случае работает только через POST (а кроме нас двоих сабжем в принципе никто не пользуется), так что пробуй, решай, как удобнее будет.

Да не. Давай уже определимся. С учётом того, что ты с моей точки зрения больший авторитет имеешь в вопросах стандарта, так как ты больше для него и нашей сети сделал, твоё видение более правильное =) Просто пропиши этот момент в стандарт более однозначно, а я уж буду им руководствоваться при правке своей ноды.
#  Re: /x/file
vit01 (mira, 1) → Andrew Lobanov  –  07:34:17 2016-05-03

AL> Видимо, у нас разное представление о "прекрасном" просто. Мне нравится идея, что третий параметр может быть или authkey или именем файла и нода в зависимости от этого отдаёт соответствующую информацию.

Проблема в том, что нода должна как-то различать authstr и имя файла. Вот отправил ты запрос /x/file/string, а нода должна думать: ты поинт и хочешь получить список, или ты файл с именем string скачать хочешь? Забавные вещи будут выходить, если в конфиге есть и файл с таким названием, и поинт с таким authstr.

Вот почесал репу и придумал вариант, который устроит нас обоих. Можно разделить /x/file на 2 схемы: одна для списка, другая для скачивания.


GET /x/filelist
# публичные файлы

GET /x/filelist/pauth
# публичные + приватные файлы, если authstr верный

GET /x/file/filename
# публичный файл или ошибка


>> Читать далее
#  Re: Странности Таверны
Andrew Lobanov (tavern,1) → vit01  –  17:35:02 2016-05-02

vit01> А так разве медленно и непонятно? При нынешнем подходе оно хотя бы работает и выполняет поставленные задачи.

Ну так и без расширенной u/e оно хотя бы работало. И выполняло поставленные задачи. Надо думать об удобстве.

vit01> Можно поменять местами pauth и filename, но в таком случае будет неудобно получать список файлов.

Да там одно простое условие. Просто я писал как всегда перед сном и потому там лажа у меня в коде. Но я не настаиваю. Стандартом по факту занимаешься ты. Если считаешь, что надо всегда указывать authkey, даже если его нет, то сделаем так. Просто я и так и этак смотрю на такой подход, а он мне всё равно не нравится.

Пожалуй, сделаю пробно в таверне то, о чём я говорю, а ты посмотришь. Если не понравится, то сделаю с обязательной авторизацией.
#  Наконец-то починил RSS ЛОРа
vit01 (mira, 1) → All  –  14:37:44 2016-05-02

Оно перестало работать где-то в конце февраля, а мне с тех пор никто это не припомнил.
Что ж, лучше поздно, чем никогда.
#  Re: Странности Таверны
Andrew Lobanov (tavern,1) → vit01  –  15:55:07 2016-05-02

vit01> Неа. Судя по стандарту, третьим параметром всегда должна идти authstr.

vit01> Если человек сделал запрос /x/file/string, то нода должна проверить правильность authstr и вывести на экран список файлов, причём не только публичных, но и "приватных".

vit01> Мы же при формировании стандарта договорились сделать возможность размещать как файлы только для поинтов, так и файлы для всех остальных.

А как быть, если у пользователя отсутствует поинт на ноде? Не надо забывать про GET-запросы всё таки.

Я сейчас туда заглянул и ужаснулся. x/file надо переделывать с нуля, можно сказать. Что-то я там такую чушь наворотил. Только сперва таки надо разобраться что пользователь должен слать в GET-запрос.
#  Re: Странности Таверны
vit01 (mira, 1) → Andrew Lobanov  –  16:57:00 2016-05-02

AL> Лично я, когда предлагал эту схему, предполагал переменное количество параметров в зависимости от того, что пользователь передаёт. Чтобы хоть wget'ом, хоть через браузер мог быстро и понятно получить файлы.

А так разве медленно и непонятно? При нынешнем подходе оно хотя бы работает и выполняет поставленные задачи.
Можно поменять местами pauth и filename, но в таком случае будет неудобно получать список файлов.
#  Caesium
vit01 (mira, 1) → Andrew Lobanov  –  07:45:04 2016-05-03

Кстати, отправил тебе недавно исправление к патчу для андроида. Слей пулл-реквест, пожалуйста.
#  Re: *.difrex.ru
vit01 (mira, 1) → Difrex  –  12:38:13 2016-05-01

А теперь 502 выдаёт.
#  Re: /x/file
Andrew Lobanov (tavern,1) → vit01  –  08:06:19 2016-05-03

vit01> Проблема в том, что нода должна как-то различать authstr и имя файла. Вот отправил ты запрос /x/file/string, а нода должна думать: ты поинт и хочешь получить список, или ты файл с именем string скачать хочешь? Забавные вещи будут выходить, если в конфиге есть и файл с таким названием, и поинт с таким authstr.

Вероятность того, что authkey будет хотя бы напоминать имя ркального файла болтается где-то в районе нуля. У нас и коллизии в msgid могут запросто возникнуть, но с исчезающе малой вероятностью. Потому я считаю, что простой проверки по поинтлисту достаточно, чтобы определить что это пользователь передал.

vit01> Вот почесал репу и придумал вариант, который устроит нас обоих. Можно разделить /x/file на 2 схемы: одна для списка, другая для скачивания.

vit01> ====
vit01> GET /x/filelist
vit01> # публичные файлы

vit01> GET /x/filelist/pauth
vit01> # публичные + приватные файлы, если authstr верный

vit01> GET /x/file/filename
vit01> # публичный файл или ошибка

>> Читать далее
#  Re: *.difrex.ru
Difrex (mira, 14) → Difrex  –  11:28:52 2016-04-29

Что-то у них не то. Пришлось тикет завести.
Буду переезжать на хетцнер. Там 4Гб памяти за те же деньги. Эластику будет там хорошо.
#  Re: Странности Таверны
vit01 (mira, 1) → Andrew Lobanov  –  15:32:25 2016-05-02

vit01>> Это не первая странность с /x/file. Проверив через браузер, обнаруживаю, что при запросе /x/file/filename выдаётся содержимое файла (хотя по стандарту так не должно быть)

AL> Вот тут поподробней. Судя по стандарту он так и должен себя вести в случае с публичным файлом.

Неа. Судя по стандарту, третьим параметром всегда должна идти authstr.
Цитата http://ii-net.tk/idec-doc/?p=extensions

> POST /x/file или GET /x/file/pauth/filename
> Параметры в теле запроса: pauth и filename. pauth - строка авторизации, filename - имя скачиваемого файла.

> Если filename отсутствует, то выдаёт список публично доступных файлов в формате <Имя>:<размер в байтах>:<Описание>. Если параметр pauth верный (существует поинт с таким паролем), то добавляет к "публичному" списку также скрытые от посторонних глаз файлы.

Если человек сделал запрос /x/file/string, то нода должна проверить правильность authstr и вывести на экран список файлов, причём не только публичных, но и "приватных".

Мы же при формировании стандарта договорились сделать возможность размещать как файлы только для поинтов, так и файлы для всех остальных.

>> Читать далее
Powered by iii-php v0.11