Множественное удаление

🧲 Множественное удаление

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

Я бы хотел представить обновление как-нибудь красиво. Но, я уверен, что не смогу сделать это красивее чем сделали сами участники. НЕ КОТ написал:

«Походу обновление запустилось»
https://t.me/dostavista_unofficial/1/2694586

Больше и добавить нечего. Зато одно это сообщение, я думаю, если приглядеться — расскажет нам намного больше, чем сказал бы я. Мне что? Мне не поверят, скажут: «Ты специально это подстроил.» Ладно. Не привыкать. Но вернёмся к теме.

Я не знаю, как представить обновление лучше, чем это сделал НЕ КОТ. Само сообщение — говорит о многом. Хотя бы о том, что обновление заметили. Получается, что нам удалось поместить кнопку именно туда, где ей самое место. Иначе бы её не нашли. Какая похвала может быть лучше для разработчика дизайна? Я думаю — нет такой.

Второе, что можно тут увидеть: раз заметили — значит ждали. Значит мы сделали не бесполезную штуковину, а полезное дополнение.

Собственно проблема потопа сообщений уже давно у нас обсуждалась с НЕ КОТОМ. В последнее время — особенно часто:

«@iamnotstalin_person как моментально удалить весь спам в чате?»
https://t.me/dostavista_unofficial/1/2475403

Приходилось даже принимать на себя ответственность и обходить возможности бота:

«Удалил спам, под свою ответсвенность.»
https://t.me/dostavista_unofficial/1/2679997

Данная проблема так же использовалась для подрыва и оспаривания системы власти рабочих:

«….Дай им исключительные права по удалению сообщений обычными админскими правами, без бота. Ночью ты спишь, они не всегда)….
https://t.me/dostavista_unofficial/1/2562344

Сегодня, я рад поздравить нас. Как я вижу — мы закрываем и эту страницу. Так же как закрыли дверь для вредителей с арестами через дополнительные профили и многое другое. Тут не только победа над негодяями, которые мешают общаться, но ещё и очередная идейная победа над вредителями. Сделали. Идём дальше. Дальше — лучше. Хуже и без нас сделают)

Теперь хочу немного рассказать про разработку. Как я вижу, мы сделали всё на своём стиле. Однако, изначально, я думал, что это вообще невозможно. Собственно задача стояла так: «Сделать множественное удаление сообщений в чате от вредителей». Как это делать? Вот ты бы как стал? Да, для начала — следует провести анализ.

Собственно, нам необходимо не только удалить много вредительских сообщений, но ещё и сохранить полезные посылки. Получается, что «тупо удалить много сообщений» — нам не подходит. Следует сделать отбор вредных от полезных. Первая проблема.

Вторая проблема звучала так: «А как указать сообщения?». Проще говоря, как показать боту, какие именно сообщения следует удалять? По ссылке? Каждое сообщение пусть участники присылают? Нет. Задолбаются. Я бы задолбался точно. Как это сделать? Причём сделать удобно. Это вторая проблема.

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

Четвёртая проблема касается безопасности. Как сделать множественное удаление безопасным для чата? Как спастись или хоть немного оградиться от того, чтобы очередной псих не смог попросту нам вычистить чат в своём безумном угаре?

Опасность с двух сторон: разрешим множественное удаление только достоверным — потеряем защиту от тех кто без удостоверений, разрешим всем — значит разрешим и вредителям тоже. Такие 4 проблемы.

Можно здесь притормозить и подумать. Как бы ты решал эти задачки? Без кода, просто схематически. Может быть ты решишь даже лучше и мы возьмём это на заметку. Ну, а сейчас — к нашему итогу: о том как всё сделано.

Для понимания как это работает, думаю, достаточно ознакомиться со следующей схемой: множественное удаление позволяет удалять диапазон однотипных сообщений (для текста с одинаковой длиной) от одного и того же автора за указанный промежуток времени. Как бы и всё. Это и есть всё центральное обновление — множественные удаления. Теперь предлагаю — более детально о нём.

Удаление диапазона нам позволяет решить вторую проблему: «Как указать сообщения?». Диапазоном: от «А» до «Я». То есть, тут пользователю достаточно показать боту только два сообщения, вместо каждого из них по отдельности. Удобно? Удобнее я не знаю как. Быстро? Быстрее из всего известного мне.

Удаление однотипных сообщений от одного и того же автора за указанный промежуток времени — решает первую и четвёртую проблемы. Разбирается с отбором полезных сообщений от вредных и с безопасностью (доступ участников).

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

Собственно вот и всё. Тут мы и гасим их. Как сказал кто-то: «Если ты понял свой страх, то он уже не пугает». Теперь не страшно. Мне не страшно. Я, походу, понял как они работают. И сейчас — немного про безопасность.

Насколько хорошим людям опасен вредитель за множественным удалением? Что он может удалить? Множество однотипных сообщений. Но стоп! Обычные люди не присылают однотипные послания. Сколько может удалить вредить? Получается, что его максимум тут — удаление одного лишь сообщения. А если текст?

А для массового удаления текстовых посланий, они должны иметь ещё и одинаковую длину. Какова вероятность что подряд будет несколько полезных текстовых сообщений с одним и тем же числом символов? Ага, да. Согласен. Вероятность — стремится к нулю.

Ну, а про проблему номер 3, про внедрение в систему. Об этом можно вспомнить тот момент, что обновление было замечено участником. Думаю, это показывает, что оно на своём месте. А про код, не будем тут, наверное. Я сам его плоховато понимаю. Но, вроде, там тоже всё сидит более-менее на своих стульях.

И по итогу, что мы получаем? Я бы сказал, что получаем полностью завершённую систему общего управления чатом. Я не признавал важность множественного обновления, да. Не признавал. Но пришлось согласиться. С жизнью не поспоришь. Ну, как, успешно не поспоришь. И я решил не спорить, раз в этом споре мне было невозможно победить.

У нас есть теперь ещё одна функция. Мы можем быстро удалить множество сообщений (по факту до сотни за раз). Причём удалить выборочно в автоматическом режиме. Телеграм, насколько я знаю, такого ещё не позволяет (разрешает удалять сообщения от одного автора, но не отбирает их по типам). Получается, что нам пришлось в этот раз, тут обогнать ещё и Телеграм.

С победой всех! И тут наверное самое место поблагодарить всех тех кто помогал. Всех кто поддерживал порядок в чате и отдельно НЕ КОТА за предоставленную ссылку на чат обучения. Если бы не вы, то мы бы не получили это обновление сейчас. Не знаю, когда бы получили. Может бы вообще были без него.

Мы сэкономили время, это время я, со своей стороны, постарался потратить на необходимое обновление. Оно есть сегодня только благодаря вам. Может быть оно бы и было без вас, но точно не сегодня. Время. Вместе мы смогли быстрее. Я весной сказал, что в чате будет ещё лучше. Благодаря ребятам, что помогали — лучше стало уже. И дальше, я постараюсь делать всё, чтобы было и лучше даже чем сейчас.

А сейчас — двигаемся дальше. Это обновление у нас всё равно — лишь проверочное. Могут быть ошибки. Без них ни разу не было. Но если что, будем стараться исправлять.

Тем парням, кто не испугался большого текста — мысленно жму руку, мысленно обнял девушек (ну если они не против, конечно). Благодарю за ваше внимание и труд по прочтению. Ваш НЕ СТАЛИН.

Обсуждение закрыто.