Привет!
Тут в клубе волна рассказов про телеграм ботов, пришло время переписать свой прошлый про Сучару с тех времен еще, когда он был написан до выхода клуба в паблик, потому, как мне кажется, он вообще не соответствует духу и качеству клуба.
Мой бот выбирает пидора дня, ежедневно им пользуются сотни чатов, и уже успел принести мне 5000 рублей 15000 рублей с момента выхода поста и продолжает приносить по 3-4 шаурмы в неделю.
Подробнее ниже.
Disclaimer ⚠
Здесь ниже вы увидите мою нетолерантную, оскорбительную, подростковую, несмешную, пошлую и вульгарную сублимацию.
Она не имеет отношения к Вастрик.Клубу и я готов к критике любого характера, если вам кажется мое творчетсво плохим, то вы можете свободно об этом написать в комментариях и мы с вами все обсудим. 💖
Она в целом отражает мой внутренний мир и мой взгляд на юмор.
Если вы оскорбились, то можете заcancelить меня, я не обижусь.
Бот не про гомофобию, гомофоб как известно хуже пидора. (если вы в этот момент оскорбились или у вас что-то дернулось, то лучше дальше не читать, но правда, гомофобия для меня это такое же невежество, как и плоская земля или отрицание СПИДа или вера в высадку американцев на луну)
В чем задача бота? 🤖
Бот нужен для того, чтобы в чатике ваших друзей в телеграмме было чуть веселее. У бота есть ряд функций, в том числе достаточно уникальных на мой взгляд, сейчас все расскажу и покажу.
Предпосылка создания 🧾
В целом я делал его только для себя, у меня не было цели распространять его куда-либо за пределы круга своего общения, поэтому вкладывал я всю душу.
Изначальная задача была супер простая: надо было заменить Sublime Bot и Хуебота.
Кто не знает, Sublime Bot был наверное первым ботом в телеге, кто выбирал пидора дня.
А Хуебот просто хуифицировал
Заменить их хотелось по причинам:
- Приватность
- Говянность исходных ботов
Sublime Bot постоянно ломался, а так же требовал регистрации для участия в выборе пидора дня.
Основные фишки бота
Выбор пидора дня 🎉
Все очень просто, среди всех пользователей чата выбирается случайным образом пидор.
Для каждого розыгрыша выбираются 3 случайные фразы крайне гомосексуального характера.
Есть статистика по месяцам, по году, за все время
Статистика для тех, кто был победителем в том или ином месяце:
В целом на этом функция заканчивается, правда в некоторых чатах вокруг этой функции строилась социальная составляющая.
К примеру, на одной из моих работ пидор месяца среди коллег заказывал на всех пиццу. Мы так и называли тогда это -- пидорская пицца.
В компании про это в какой-то момент знали, поэтому другие люди, когда видели у нас пиццу, то приходили и спрашивали:
Это у вас день рождения или пидорская пицца?
В еще одном чате пидор месяца проставлял для всех кальян.
Пиздаболия 🦜
Я не знаю, как правильно назвать эту фишку, но она есть и она практически ключевая.
Суть ее в том, что Сучара иногда вклинивается в диалог и отвечает на сообщения других людей в чате. Так же он триггерится на определенные эвенты (вход/выход людей в чат, некоторые слова, стикеры, упоминания Сучары).
В 1 из 3 случаев это смешно, люди часто думают, что он обладает какой-то степенью интеллекта.
Иногда получается говно:
Фича работает очень просто, она просто выдает рандомное сообщение из базы сохраненных сообщений.
Здесь мы переходим к крайнее неэтичной части Сучары.
Приватность 🔐
Бот сохраняет переписку. Я изначально боролся с тем, чтобы сохранить приватность своего чата с друзьями, но параллельно с этим сделал бота, который логгирует совершенно все, что у него получается логгировать.
Плохо ли это? Определенно да, я бы не хотел такого бота себе в чат.
Как я себя оправдываю? Оправдываю себя тем, что
- Доступ к логам есть только у меня
- База защищена тем, что все взаимодействие идет через телеграм. Чтобы взломать сервер с ботом, надо хотя бы знать айпи сервера, а его знает только телеграм. Если взломают телеграм, то какая уже разница :)
- Я нашел настолько скучным и унылым чтение переписок других чатов, что не заглядываю туда практически никогда
- Корыстных или плохих целей у меня нет
Так вот, из этой переписки Сучара и берет фразы. Фразы берутся только с русскими буквами, без цифр, латиницы, ссылок, не длиннее нескольких слов. За 3 года (день рождения Сучары -- декабрь 2017 года) я ни разу не видел чтобы сучара какие-то приватные данные смог через эти фильтры выдавать, да и кто будет реально приватные данные сливать в групповые чаты :)
Ах да, главной фишкой пиздаболии является то, что в какой-то момент, когда в базе копится достаточно сообщений конкретного пользователя, Сучара начинает отвечать сообщениями только указанного пользователя.
Идея этого в том, что если вы токсик по жизни, то Сучара будет вас хуесосить. Если вы благородный и благодарный человек, то Сучара будет с вами вежлив.
Психология 🔮
Считаю крайне уморительным то, что люди реально находят связь между своими сообщениями и сообщениями бота. Даже если она призрочная, им удается построить в голове цепочку рассуждений так, чтобы сказанное ботом имело осмысленность. Не попробуете -- не поймете о чем я говорю. Эффект не пропадает после того как люди узнают о реальном механизме выбора сообщений.
Вопросы Миру ❓
Что-то вроде внутреннего коммьюнити в рамках Сучары.
Позволяет от чата раз в день отправить вопрос, который разойдется в кучу чатов, а пользователи там смогут на него ответить простым реплаем.
Отвечать можно текстом, картинкой, гифкой, аудио, контактом, геопозицией, короче чем угодно, Сучара все передаст.
Иногда получается годнота, а так же позволяет оценить размах Сучары на текущий момент.
Игра внутри чата 🕹
Самая свежая и сырая фишка.
Суть проста -- есть некоторая история, по которой можно передвигаться, путем определения дальнейшего шага из предложенных. Пошаговый текстовый квест, короче.
Следующий шаг выбирается благодаря голосованию пользователей в чате.
Пока что там один и очень наркоманский сценарий, скорее тестовый, чем интересный, но даже он потребовал много усилий, потому как витьеватый. Какая-то глобальная история потребует огромную кучу усилий для создания.
Вот как выглядит блок-схема текущего сценария:
Играть пока что не интересно, но потенциал огромный. Реализовано все тоже хорошо, можно забирать голоса из голосования и ничего не сломается, можно смотреть что было, показан предыдущий вариант выбора, корректное поведение при неопределенных голосованиях, а так же просмотр полной истории.
Движок тоже сильный, внутри фактически валяется граф, любой узел можно связать с любым другим узлом, количество связей ограничено количеством вариантов выбора в голосовании телеграмма.
Есть так же идея вынести это в другого бота и там продвигать уже как коллективную текстовую игру, но встает вопрос написания хорошего сценария.
Утилитарные фишки 🔧
Умеет в выбор из двух или более стульев:
Есть так же набор настроек весьма внушительный
Вот вывод команды /help:
Продвижение бота 📺
С продвижением все просто, сперва рассказал друзьям, а когда это не сработало, то дал рекламу.
Есть еще элемент сарафанного радио, но не слишком масштабный.
При продвижении вскрывалось много болезней, например у бота есть команда /rage, которая в течение 10 минут или 20 сообщений заставляет Сучару агриться на все сообщения капсом.
Я выяснил, что иногда люди пускают к себе бота и сразу тыкают /rage, а это вызывает такой поток спама, что бота тут же выпинывают.
Решение оказалось простым, банально отключить команду в первые сутки после добавления бота:
Так же при активной компании продвижения новые люди используют /ask_world и спамят тем самым другие чаты, а так же видят такое же количество спама от других, в итоге пугаются и тоже выпинывают Сучару, в итоге я не придумал ничего лучше, кроме как снизить количество чатов в которые рассылаются сообщения.
В целом конверсия низкая, но достаточная, где-то 5% чатов оставляют Сучару надолго. Не то чтоб я прям анализы проводил, просто смотрю на метрики.
Заработок 💰
Заработка никакого нет, только траты на хостинг.
Иногда я прошу людей донатить через вопросы миру, но как правило донатят либо знакомые, либо рублей 50-100 за раз.
За все время (с декабря 2017) где-то тысяч 5 рублей суммарно надонатили.
Делать какие-то платные фишки я не хочу, это очень долго и нудно, к тому же идей особо нет. Для продажи рекламы размер аудитории не тот, никакой вменяемый рекламодатель не пойдет на такую рекламу.
Автор пиздабол, в запиненных комментариях он переобулся.
Для меня лично этот проект это огромный фан и удовольствие, когда людям заходит Сучара.
Траты 💵
Ну, за хостинг я плачу сколько-то, а так же однажды я решился на уникальный авторский стиль.
Раньше у Сучары аватарка была вот такая:
Почему Иисус? Хз, просто не думали особо перед выбором, есть в этом какой-то символзим.
Заплатил художнику где-то 50 евро за доработку аватарки в том же стиле:
Проблемы 📛
Иногда приходят школьники и начинают ебать мозги, например в какой-то момент они обнаружили, что можно в новые чаты добавлять Сучару и оттуда рассылать сообщения, тем самым преодолевая лимит в 1 сообщение на чат в день.
Пришлось делать для них заглушку, теперь если есть подозрения, что юзер спамит, то его вопросы уходят в аналог shadow ban: Сучара делает вид, что отослал вопрос, а на самом деле нет.
Иногда люди догадываются о характере работы Сучары и просят почистить их данные, я иду навстречу (правда путем того, что Сучара перестает выдавать чьи-то данные, а не удалением их из базы).
Статистика 📈
В целом масштабы Сучары остановились на месте, сарафанное радио похоже емкость свою израсходовало, а рекламы я давно уже не делал.
На данный момент расклад такой:
В целом это достаточно много для меня, но хочется расти и дальше, но я каждый раз перед рекламными кампаниями хочу какие-то фишки крутые привнести, в данный момент это конечно же новая возможность играть в игру чатом, но не проходит проверку качества ну совсем, надо делать нормальный сценарий.
По технике 👩💻
Написано все на Котлине, база Постгрес, есть Редис для key-value.
Есть документация, не доделанная и скорее всего не будет, она просто делалась как мем.
Где еще вы увидите такое?
DSL для игры 📜
Из прям вещей, которыми горжусь, это DSL для написания сценариев в пошаговой игре.
Как бы написать сценарий одно, а вот добавить его в базу это совсем другое. Так как это граф, то внутри базы есть просто таблицы с узлами и соединениями между узлами. Узлов много, соединений еще больше, все это руками в базу вносить можно ебнуться.
Поэтому я написал удобный DSL, где это все более-менее интуитивно запихивается, а на выходе получается SQL для инсерта в базу.
ООП 🧩
Я часто показываю код проекта в рамках обучения джунов ООП, потому как мне удалось немного прекрасного из него выжать. Подробнее в документации, но если коротко, то добавление новых фич как правило сводится к имплементации простого интерфейса и все.
Звучит просто, но это даже не весь список изолированных элементвов логики:
Например, если я хочу добавить новую команду, то мне надо лишь реализовать интерфейс CommandExecutor.
Если я хочу настроить продолжительное взамодействие с Сучарой (ответ на ответ на ответ), то для этого я реализую заранее сделанный ContiniousConversationExecutor.
Если хочется, чтобы часть поведения отключалась, то я просто добавляю интерфейс Configurable.
Если хочется полного контроля, то просто реализую самый базовый интерфейс Executor.
В итоге у меня написан классный Router, который без костылей практически разруливает все приходящие сообщения, прям кайфую с него. Выдержка из документации:
Короче, на мой взгляд у меня получился идеальный баланс между ООП и здравым смыслом.
Планы на будущее 👨🎓
Во-первых, хочется расширять базу пользователей. Я все время откладываю это, так как считаю, что что-то недопилено.
Во-вторых, хочется наконец-то прикрутить настоящие нейросети и заставить Сучару говорить. В идеале обучить его на огромной базе сообщений, которые годами у меня собираются, чтобы хоть как-то без стыда оправдать то, как позорно я собираю все, что возможно.
Монетизации нет и не будет, только в рамках добровольных пожертвований.
Выводы ✨
Закончим все на красивом числе знако
Как говорится:
Знаю большое комьюнити, которое целиком выстроились вокруг этого бота и он стал важнейшим звеном их взаимодействия, они даже перестали писать друг другу сообщения, всё теперь через бота.
Лучший бот что мне встречался, даже круче нашумевшего во всех кругах MSU Hub Bot
Полнейший артхаус, люблю такое.
Описание заебательское, буду давать всем примером как надо писать в Клубе посты о проектах!
Великолепный бот!
Собственно что еще надо, собственно что бы варьировать скучноватые будни? Естественно замечательный собеседник!
И данный бот совладевает с задачей на 100%.
Великолепное хитросплетение юмора, здоровой самоиронии и нешуточного технологического расклада.
Всякий раз свежие и сочные комменты в тему, крутые выборочные опросы, мини игры и почти все другое. Все это, слилось под одним ёмким заглавием Сучара.
Отправной код бота - это элементарно произведение компьютерного искусства, симфония на Котлине(отличным прогрессивным языке программирования).
Вообщем, расклад к составным частям поражает воображение! В том числе и аватарка изготовлена на заявка проф художником!
Исследовать нюансы и аспекты сего бота возможно безгранично.
Всем советую применить данный бот в чатах с приятелями, своими людьми, близкими и родными, для трудящихся чатов он также отлично подходит, скрасит сероватые повседневности, добавит живости и яркости диалогами.
Возможно в том числе и, элементарно потрещать с ним в личке и заряд впечатлений и неплохого настроения снабжен на весь день!
Сам пользуюсь его всюду, данный бот 1 из почв моего возлюбленного комьюнити в ТГ, почти все приятели пользуют данный бот любой денек и не имеют все шансы предположить своё общение без него.
Замечательная штука!
😱 Комментарий удален его автором...
В одном офисе я видел такого бота живьём
Звали Валерой
прекрасный бот, а его исходники - произведение искусства. а dsl то, дсл достоин буквально статей в лучших изданиях планеты.
Ура, пидор дня.
Касаемо DSL — я правильно понимаю, что это не совсем язык, на небольшой фреймворк на котлине? Оно компилируемое?
Не было мысли перевести это на .ink или какие-нибудь еще скрипты, чтобы можно было дать чатам возможность добавлять свои сценарии?
Сучара мне вообще как брат. Мы с ним так много пережили вместе...
Эммм... чет толи я туплю, толи это пранк такой но...
А где сорцы то, где можно оценить гениальность ООП архитектуры, которую что в посте что в комментах так нахваливают?
Молю, сделай этот пост открытым, я хочу разослать всем этот прекрасный текст
😱 Комментарий удален его автором...
Я пришёл подушнить в соотвествии с правилом 7. Не такого, кхм контента, ожидаю от клуба. И уж точно не от недельного дайджеста. Дело даже не юморе про пидора дня (предположим что ни один пользователь бота не использовал это в гомофобном контексте), или гражданина Украины, а в градусе ненависти. Автор, прекрасно это понимая, написал дисклеймер, тем не менее опубликовал и пост даже попал в топ недели.
@sumerman, hate speech is defined by the Cambridge Dictionary as "public speech that expresses hate or encourages violence towards a person or group based on something such as race, religion, sex, or sexual orientation".
Для вас «пидор» это определение, которое относится к сексуальной ориентации?
Для автора, если я правильно понимаю, это часть анекдота «...нет, в плохом смысле. Денег занял и не отдает».
Можно заменить его на любое другое слово, обладающее схожим количеством атрибутики, к примеру, выбирать «уркагана дня», заменить жаргонное описание анального секса на тюремные байки и назвать бота «Петушара».
Я не вижу в данном проекте hate speech, это исключительно юмористический проект, направленный на людей со схожим с авторским чувством юмора. Мне лично такие шутки не кажутся смешными (слишком просто, слишком в лоб), но юмор это субъективная категория.
Если вам не смешно, просто не ходите на этот сайт с анекдотами. Загляните на «Анекдоты категории Б», там веселее.
Уверяю, пройдет совсем немного времени и мы будем с удивлением смотреть на эту историю, как сейчас с удивлением смотрим на старые наивные фильмы и с трудом пытаемся вызвать у себя ту эмоцию, которая была так очевидна зрителям 50 лет назад.
Это просто станет не смешно, а, поэтому, никому не нужно.
Лучший бот,
Юзаем его давно и активно боремся за почетное звание пидор года (рулетка добавила пикантности)
Спасибо тебе, Автор (:
Привет, как рекламу давал? какой канал? как аудиторию подбирал?
0/10
о, крутая статья. Хорошо описаны кейсы и история развития проекта, интересный опыт разработки. Была проделана большая и отличная работа, мое почтение автору!
К сожалению я не могу разделить Ваше отношение к теме проекта(он очень токсичный), но это уже другая история :-D
лично я бы сразу уволился из конторы где есть такое проявление, с позволения сказать корпоративной "культуры", но мне не довелось такое испытывать на себе.
как это ни при чем? Если это рабочий чат - значит это напрямую относится к компании. Компания в лице разного рода сотрудников уже может сама решать либо спобосбствовать этому "шутливому" общению, либо его присекать.
Если делать это в личной переписке вне корпорации - каждый волен делать что угодно.
Для меня категорически недопустимо называеть кого-либо "пидором" :-)
Еще раз уточню - я не имею ничего против наличия ботов и мне крайне интересно читать про разный опыт его развития, связанные с этим проблемы и способствующие особенности. Функциональность у роботов может быть разной и это один из примеров. Если заменить лейбл на "счастливчик" то меня все устроит) маленькие такие штучки и приколы внутри коллектива - это всегда прекрасно. Сам по себе юмор хорош когда никто не считает себя оскорбленным. Иначе - это не юмор а шейминг в разном виде.
😱 Комментарий удален его автором...
😱 Комментарий удален его автором...
😱 Комментарий удален его автором...
Это
Просто
Охуенно
Звучит даже лучше чем пидорбор (@allForPidorsBot)
Но походу придётся самому собирать и деплоить( Потому как нужен только в чате с друзьями, я там логирование ни к чему.
Это просто охуенно, такой угар в чате теперь <3
Привет!
Тестим с пацанами Сучару последние три недели. Нравится, что можно писать вопросы в другие чаты. Но никогда не получаем ответы от них обратно :(
А расскажи пожалуйста какой гейтвей для платежей ты выбрал и почему? Какие плюсы, минусы, подводные камни?
Поражают масштабы!
Хотел было затащить в чат с друзьями, но сохранение сообщений в базу смутило. Хотелось бы версию без шпионажа.
@Kirk а что используется для аналитики?
Полуденный пидор
12pm по разным часовым поясам - это как пидор дня, только в стилистике, гонконгский полуденный триадарас или "пидор с уолл стрит" для нью-йоркского полудня, пока непонятно как это привязывать к пидору дня, мб наоборот в полночь по разным часовым поясам, тип, пробили полуночные часы в казахстане и гений превратился в пидора
В рамках идей для крипто-инвесторов, как только биток пробивает еще -5% - выбирается крипто-пидор с волосатым блокчейном, 10 анальных аппрувов из 10
Статистика пидоров месяца также кстати может к крипте присосаться, тип, какой-то %пидорнейм% за каждый день пребывания в топе ЗАРАБОТАЛ очком N койнов
Сучара скатился. В мировых вопросах херь какая-то от буквально двух-трех чатов.
Переворачивай счетчик) +1.
кстати, а что за перфоманс был на 3 дня с арестованными вместо пидоров недавно?
Подняли у себя на серваке бота =) Работает прекрасно, теперь предстоит длительный путь обучения =)))
Но есть вопрос: как его правильно обновлять? Подставлять ему новый докер-образ с гита и compose up -d?
Привет. Подскажи, чем собираешь статистику, чтоб были такие дашборды? Сервис мб какой?
Надо короче расширить его до про-версии и закинуть в политические чаты.
И пусть сучару дня ищет не среди пользователей, а среди наших СМИ, и хуесосит правительство и чиновников, правда наверное Медведев будет сучарой - каждый день...
Ярослав привет!
Бот перестал определять пидора дня. Что то случилось? Мы с парнями очкуем.
Все пашет)