[#] пишу фильтр
Roman Yakovlev(station13, 11) — All
2016-05-04 08:31:11


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:
            qq, qline = n.split('>',1)
            if len(qq) < 21 and _is_name(qq):
                out.append('>' + qline)
            else:
                out.append(n)
        else:
            out.append(n)
    return out

честно говоря, чем больше смотрю на варианты, тем меньше понимаю, как её написать :(

ваши идеи?

[#] Re: пишу фильтр
Roman Yakovlev(station13, 11) — vit01
2016-05-04 17:08:34


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

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

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

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

или я могу как-то опознать клиента, и вместо принятия сообщения написать "ваш клиент не поддерживается нашим гейтом"?

[#] Re: пишу фильтр
vit01(mira, 1) — Roman Yakovlev
2016-05-04 14:57:29


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

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

Вместо &gt; > ставишь, и всё

[#] Re: пишу фильтр
Roman Yakovlev(station13, 11) — vit01
2016-05-04 15:46:38


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

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

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

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

[#] Re: пишу фильтр
vit01(mira, 1) — Roman Yakovlev
2016-05-04 15:29:39


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

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

[#] Re: пишу фильтр
vit01(mira, 1) — Roman Yakovlev
2016-05-04 16:39:00


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

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

Да и вообще: ты хотя бы протестировал клиент, чтобы уже делать какие-то выводы? Присланная регулярка поддерживает как старые, так и новые цитаты, так что никто в пролёте не оказывается.

А насчёт адаптации к ГК11 было написано ещё в этом сообщении: ii://F17PPvWlIqnmScZeagVo

[#] Re: пишу фильтр
Roman Yakovlev(station13, 11) — vit01
2016-05-04 15:12:59


>Попробуй регулярку из моего клиента
>====
>re.compile(r"^\s?[\w_А-Яа-я\-]{0,20}(&gt;)+.+$", re.MULTILINE | re.IGNORECASE)
>====
>Вместо &gt; > ставишь, и всё

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

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

[#] Re: пишу фильтр
Difrex(mira, 14) — vit01
2016-05-04 18:01:43


vit01> Все эти скобочки >>> или RY> вместе с самими цитатами пользователь выставляет ВРУЧНУЮ, через Ctrl-C, Ctrl-V, <что угодно>!
Про это говорили уже неоднократно, кстати. Опять будет эпопея про цитирование на месяц? :D

[#] Re: пишу фильтр
vit01(mira, 1) — Roman Yakovlev
2016-05-04 17:47:39


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

Это уже какой-то режим советской цензуры получается :)

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

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

Может быть, мы просто друг друга не до конца понимаем?
Вот нажимаю я кнопку "Ответить" в CutieFeed. Открывается Vim, Emacs, что угодно, и там:

ii.14
Roman Yakovlev
Re: пишу фильтр

@repto:L8cTAGBx6aKdxcAdR7uX

Все эти скобочки >>> или RY> вместе с самими цитатами пользователь выставляет ВРУЧНУЮ, через Ctrl-C, Ctrl-V, <что угодно>!

// Цезий, кстати, делает автоцитирование, но в моём клиенте этого нет и никогда не было

[#] Re: пишу фильтр
Roman Yakovlev(station13, 11) — vit01
2016-05-04 18:02:26


>// Цезий, кстати, делает автоцитирование, но в моём клиенте этого нет и никогда не было

да, видимо жаль, что я так и не смог его запустить

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