[NEWS] Lols Anti Spam Bot
6.77K subscribers
218 photos
6 videos
120 links
Новостной канал проекта @LolsBot

Инструкция: https://telegra.ph/lols-bot-catcher-antispam-bot-05-20
Download Telegram
Меня иногда спрашивают: не окажут ли мои запросы api слишком большой нагрузки на сервер, если я буду его дёргать на каждое сообщение, а не только при входе участника в чат?

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

На фронте сейчас установлен Cloudflare, и для запросов в api установлено кэширование ответов на 5 минут. Поэтому если запрашивать один и тот же user_id, то до моего сервера дойдёт не больше одного (на самом деле больше, но не суть) запроса за 5 минут.

На днях на мой сайт была совершена небольшая DDoS атака, и либо я не нашёл, либо в Cloudflare нет автоматического режима на такой случай, и можно лишь вручную включить режим Under attack, который будет заворачивать 100% запросов на капчу. Но радует то, что CF на бесплатном тарифе не берёт денег за трафик вне зависимости от его объёма 😊
👍25🤔1👌1🥴1
Три причины почему спам не удаляется 🤓

🔸 алгоритмы бота не сработали, и он не увидел ничего плохого в сообщении. В таком случае можно ответить командой /report на сообщение спамера. Если команду вызывает админ чата - то реакция последует сразу же; если нет - то после дополнительной проверки.

🔸 если вы админ в чате, но бот проигнорировал команду /report - значит у него есть дела поважнее. Например борьба с oom-killer, выяснение отношений с rabbitmq, перепалка с php-fpm, или просто не поделил чего-то с clickhouse. Или просто из-за очередной вспышки на солнце упало чего-нибудь ещё. Тут можно просто подождать, когда-нибудь бот оживёт. Пока что вариантов резервирования не предусмотрено.

🔸 если в ответ на команду /report бот сказал, что команду нужно отправлять в ответ на сообщение, то загляните в последние действия группы. Вероятнее всего бот уже удалил это сообщение ранее, но из-за бага в клиенте telegram оно продолжает у вас отображаться. Можно удалить это сообщение или перезапустить клиент, и сообщение перестанет вас беспокоить.

В крайне редких случаях подобный баг будет на стороне самого telegram, и тогда сообщение будут видеть все пользователи, и удалить его не получится ни у одного админа чата - тут остаётся только ждать.
👍135👌2🐳2
Ближайший час объявлен ботом часом молчания 🤔

Не знаю почему, но sendMessage говорит
Too Many Requests: retry after 3600


На функционал антиспама это не должно повлиять.

UPD: вроде отпустило, не понял что это было, но на всякий случай сбросил очередь исходящих сообщений. Если отправляли какой-то запрос - нужно повторить.
🤔5🙏2😁1👌1
Добавил возможность менять базовые настройки бота, а также несколько новых опций, которые по умолчанию выключены во всех чатах. Для вызова меню настроек можно воспользоваться командой /config в чате или диалоге с ботом.

В настоящее время бот редко пишет в чаты о блокировке спамеров, так как он это делает в основном для тех, у кого spam_count > 0. А если вы вдруг проверяли блокируемых ботом пользователей, то у них часто можно заметить отсутствие отмеченных как спам сообщений.

В ближайшее время планирую исправить данный недостаток, в результате чего сообщений от бота в чатах может стать в 2-3 раза больше. И хотя они выглядят не так вызывающе, как сообщения спамеров, и остаются в чате на 30 секунд, но всё равно могут раздражать. Поэтому появилась первая платная опция в боте - Тихий режим.

В качестве платёжного шлюза выбрал Boosty. Хоть он и косячит с приёмом карт, у них нет возможности использовать больше одного языка на сайте, да и возможности кастомизации стоимости подписки ограничены. Но зато из коробки есть интеграция с telegram.

Кстати, если интересно проверить пользователя, у которого нет @username и ваш клиент не показывает его user_id, то можно добавить его в контакты, а затем поделиться контактом с ботом 😳
🔥13👍95👌1
Не сразу обратил внимание, что на экране мобильного телефона текст не влезает в кнопки, но спасибо добрым людям - подсказали. Заменил часть текста на иконки, теперь должно стать лучше.

Также добавил вторую платную опцию - возможность заменить бан на мьют. Опция пригодится тем, кто планирует накручивать счётчик пользователей чата за счёт спамеров. В качестве минуса можно отметить то, что обеззвученные пользователи смогут продолжить спамить реакциями.
👍124🔥3👌1
В дополнение к посту про просмотр user_id для пользователей без @username хотел показать ещё один возможный вариант.

Для проверки пользователя без @username и сообщений в чате можно добавить его в контакты (делиться своим номером телефона с ним не обязательно), а затем поделиться этим контактом с ботом. Если у пользователя публично не отображается номер телефона, то для отправки контакта боту следует использовать кнопку вызываемую командой /share

Такой вариант не сработает, если бот сам нигде не видел данного пользователя, но он хотя бы подскажет его user_id в ответе.
👍4😁1👌1🥴1
На этой неделе бот был установлен в 3000-й чат! 🥳

Хотел сказать большое спасибо за активный вклад нескольких пользователей в канал Scam Alert. В качестве благодарности решил подарить Premium подписку на пол года. Говорят что она уменьшает вероятность получить бан (не просто же так большинство спамеров и мошенников её покупают?). Хотя полностью его и не исключает, но что-ж поделаешь, хотя бы будет возможность наблюдать за большим количеством чатов одновременно 😁

Наградной список:
🎁 Мама, я в Москве (в Дубае)
🎁 Lolosha
🎁 Ekaterina
🎁 Бузя Buzova86
🎁 Nike Borzov

P.S. заодно опробуем новый scam trap: #airdrop #giveaway #free #premium 🗿
🔥29👍2010🏆8
Хотите поддержать бота донатом?

Настроил пять вариантов:

➡️ https://pay.cloudtips.ru/p/4ebef06a

➡️ https://boosty.to/lolsantispam

➡️ https://t.me/tribute (проще всего платить картой)

➡️ TMMDhYBByoJJHdHcmEL5GeZGai7j8ogBcg usdt(TRX)
0xF8785Ff3A6e5FFAd1a332965C62d65Aec5B53b39 usdt(ETH)

⭐️ ↘️
Please open Telegram to view this post
VIEW IN TELEGRAM
255👍38🔥16😡7👎4
[NEWS] Lols Anti Spam Bot pinned «Хотите поддержать бота донатом? Настроил пять вариантов: ➡️ https://pay.cloudtips.ru/p/4ebef06a ➡️ https://boosty.to/lolsantispam ➡️ https://t.me/tribute (проще всего платить картой) ➡️ TMMDhYBByoJJHdHcmEL5GeZGai7j8ogBcg usdt(TRX) 0xF8785Ff3A6e5FFAd1…»
Ночь прошла тихо, никто никаких ссылок не писал, потому что у бота снесло крышу, и он решил банить всех, кто присылал ссылки (на чаты в тг) в чаты 🙈

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

UPD: на всякий случай разбанил вообще всех забаненных за ночь. кто за дело получил - повторно получат 😅 а кто по ошибке был забанен - разослал в личку ссылки на чаты
24👍16🥰6😁4
Выглядит как признание 😆

Благодаря этим мошенникам обнаружил странный баг Bot API Telegram: при попытке удалить сообщение возвращается ответ ОК или Сообщение не найдено, но при этом сообщение остаётся в чате, его можно переслать и его видят остальные пользователи 😒

И проблема касается не только чужих сообщений - свои бот тоже не всегда может удалить. Ранее подобный баг ловил с функцией блокировки пользователей. Поддержка тогда развела руками. Сейчас попробовал повторить удаление сообщений через MTProto - и всё получилось 🤨

Воткнул костыль, надеюсь теперь меньше пропусков будет.

Ещё из полезного: пару дней тестирую функцию автоматического белого списка. Пока что без каких-либо уведомлений и возможности управления, но уже работает. Если администратор разблокирует пользователя, которого ранее заблокировал лолс бот - то пользователь добавляется в белый список и дальше бот полностью закрывает глаза на его действия в том чате, где он был разблокирован.
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍10❤‍🔥3🔥1
Эксперимент с Local Bot API Server пошёл не по плану, бот решил повторно обработать 100000 последних сообщений. Надеюсь ничего страшного не произойдёт 🤒

UPD: некоторое время он ещё пострадает такой фигнёй, отправляя повторно ответы на запросы
🔥5👌5🥴2🤔1
По прежнему не смог решить проблему с удалением сообщений, про которую писал недавно, и поддержка всё также игнорирует вопросы.

И с каждым новым днём становится только хуже, а сегодня прям совсем грустно. Сегодня на большую часть попыток удаления сообщения api telegram отвечает Bad Request: message to delete not found. При этом права в чате есть и сообщение в чате не удалено.

UPD: оказалось что проблема известная, и проявляется тем чаще, чем больше у бота аудитория. А самое грустное, что нормального решения для неё нет, поддержка также игнорирует подобные вопросы. Штош, значит займусь доработкой возможности создавать клонов бота, чтобы распределить аудиторию.
🤔11👍3🌚3🗿2
Произвёл некоторые доработки, оптимизировал работу с базой, накидал дополнительных костылей, и вроде бы уже пару недель проблемы с удалением сообщений не заметно, и в целом бот чаще успевает удалять спам, до того, как самые быстрые на диком западе админы успевают отправить /report в ответ на сообщение спамера 🌚 По скорости ответа в личке при проверке пользователя (особенно при использовании @username) пока ещё остаются вопросы.

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

На скриншоте для примера одна группа с активностью ~50 спамеров за сутки, с подключенной опцией, и вторая группа со среднесуточным числом блокируемых 20 штук, но без подключенной опции.

Для управления настройками бота и оформления подписки нужно отправить команду /config в группу или личным сообщением боту.
👍23🔥5🤔1👌1
Так как телеграм не позволяет смотреть историю действий админов дальше, чем за двое суток, а в статистике иногда появляются непонятные пики массовых блокировок от бота, то решил сделать простенький интерфейс для просмотра полной истории блокировок в чате с момента добавления в него бота 🧐

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

Кроме того, теперь в случае, если пользователь заблокирован (lols_ban), но у него spam_count равен нулю, то всё равно будет отображаться ссылка для просмотра сообщений, которая покажет последнее сообщение пользователя (или слово [attachment], если это была картинка, и бот не смог её загрузить).
👍246🔥1👌1
API переехал на поддомен - https://api.lols.bot/ (пока что планов закапывать api по старому адресу нет, разве что чуть позже появится deprecation notice)

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

Из-за этого бот стал чаще блокировать пользователей в момент входа в чат (а не отправки сообщения), и не всегда по делу (за неделю набралось штук 10 ложных сработок). С целью упростить процесс восстановления доступа к группе добавил к сообщениям о блокировке кнопку с шорткатом на профиль заблокированного пользователя в боте.

Некоторым админам эта кнопка показалась полезной, а некоторые из-за неё перепутали антиспам бота со спам ботом. Сейчас не все заблокированные пользователи видят кнопку, над этим ещё стоит поработать. Позже в профиле пользователя появится возможность отправить апелляцию на свой бан, а пока что там только контакт для связи.
👍133😁1👌1
У бота незапланированный технический перерыв 5-10 минут 🤒

UPD: бот ожил, пока не понятно чего он завис, видимо утёк 😒
😢13🖕41👌1
Несколько изменений произошло в боте:

🔸 справка по командам бота доступна по команде /commands (в качестве префикса для команд бот принимает символы / @ !)

🔹 в настройках появилась опция Простые команды позволяющая использовать те же команды без префикса

🔸 история блокировок теперь отображается полностью, а не с момента добавления бота в чат

🔹 исправил проблему с загрузкой истории блокировок для некоторых чатов, хотя никто и не жаловался

🔸 проверка блокировок через CAS теперь работает корректно, до этого грешил на кэш, а дело было в руках

🔹 при проверке пользователя теперь внизу добавляется кнопка для перехода в профиль в качестве альтернативы profile

🔸 заметил что часто админы удаляют сообщения бота о блокировках, поэтому добавил кнопку для быстрого удаления

🔹 в настройках появилась возможность просматривать белый список чата и немного им управлять

🔸 если раньше белый список защищал только от блокировки, то теперь бот полностью игнорирует сообщения таких пользователей

🔹 временно отключил массовую блокировку пользователей в первые сутки после добавления в чат, ибо некоторые админы сильно пугаются, когда бот блокирует больше, чем у них участников в группе
3👍20😁8🔥53