Позднее Ctrl + ↑

WhatsApp

Короткая но развеселая заметка из будней борьбы со спамом.

Допустим, у нас стоит задача, запретить оставлять свои контакты в каком-либо текстовом поле. Под контактами подразумеваем любые данные, которые ведут на другую социальную сеть или мессенджер. Например: номера телефонов, e-mail, ссылки на профили в Facebook и ВКонтакте.

Конечно, пользователям это не понравится, особенно если альтернатива — заплатить свои кровные пять копеек. Поэтому стартует раунд специальной олимпиады — как бы так исковеркать текст, чтобы алгоритм не понял, что это именно контактные данные?

Ради интереса, собрал небольшой списочек разных вариантов. Поплачьте вместе со мной, да.

WhatsApp — каноничный вариант, для референса. А теперь, начинается хтонический ужас:

wapp, воцап, воцапе, вайцап, vвотцар, воссап, ватсаб, всапп, вцабб, ведсап, ватсап, цапе, выцапан, watsap, vhatsapp, whatsup, whatapp, wtzp, whatsap, vatsap, what’s app, whatssapp, w h a t s, watsaap, what’s up, whapp, wathsape, wahatsapp, wp, whaazapa, vathsapp, watsp, whatsa, uozzaap, wapsattan — этот, мой любимый.

Все это не считая вариантов разделенных пробелами «w h a t s», другими разделителями типа «w.h.a-t-sapp», повторения букв «вааацааап» и других увеселительных мероприятий. И мы еще даже не добрались до самих номеров телефонов для WhatsApp.

И фильтруя все это, стоит не забывать, что пользователь может просто поприветствовать собеседника «what’s up bro» и любые следующий цифры могут быть отнюдь не номером телефона, а датой и временем или гео-координатами или бог весть чем.

Шах и мат любители регэкспов для фильтрации спама.

Про Эгею

После довольно долгих поисков движка для блога, выбрал Эгею от Ильи Бирмана, главным образом из-за красивой верстки текста. В теории, движок позиционирует себя как «скопировал в папку и все работает». Но, на практике пришлось чуть-чуть повозиться.

Для начала, он не очень дружит с Nginx: не работают ЧПУ и вместо красивой ссылки https://agasiev.com/all/tgrm-me-bot/ будет https://agasiev.com/?go=all/tgrm-me-bot/. В целом, с этим можно бороться настройкой веб-сервера и конфига Эгеи, через force_canonical_urls, но для тэгов ссылки у меня так и не заработали, так что плюнул и поставил Apache.

Далее, движок плохо работает на PHP 7.2, из-за ругательств последнего на использование констант в массивах. Т. е. где-то в обфусцированном коде написано так:

$array_name[key_name];

А надо так:

$array_name['key_name'];

В принципе оба варианта в реальной жизни работают, но это плохой способ писать код на PHP, чреватый кучей ошибок, и поэтому с версии 7.2 интерпретатора такой стиль стал deprecated. Пришлось откатить PHP до версии 7.1.

А в остальном, прекрасная система, спасибо автору. Жаль только, что весь код обфусцирован, я бы хотел иметь вариант платной лицензии, по которой предоставляются исходники движка для доработки.

Tgrm.me

За пару дней написал бота @TgrmMeBot для постинга сообщений из Telegram каналов на блог-платформу: Tgrm.me.

Идея была в том, чтобы помочь увеличить количество подписчиков каналов за счет их продвижения в поисковиках. Заодно добавил возможность создавать свои веб-блог без ведения канала: нужно просто напис
ать боту в личку.

Добавляешь бота в список администраторов канала и с первым новым постом появится страница https://tgrm.me/channelname, на которую будут копироваться все ваши сообщения.

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

Для того, чтобы посты были похожи на ленту Telegram, сделана подгрузку изображений, учет Markdown разметки и еще много плюшек. Видео и файлы грузить не хочу, чтобы не сделать из сайта прибежище порн
ографии и пиратов. Иногда, попадаются любители торговать наркотиками, но они быстро блокируются.

Сайт работает на PHP + Nginx, бот на Python3, Redis, MySQL, библиотека для доступа к API Telegram самописная, старая, урезанная версия того, что я использую в заказных проектах для Chatbot.name.

В целом, сервис пользуется некоторой популярностью. Сейчас подключено около 700 каналов и опубликовано 35000 постов.

Сам бот: @TgrmMeBot, чат техподдержки @TgrmSupport.