Привет!
Тут в клубе волна рассказов про телеграм ботов, пришло время переписать свой прошлый про Сучару с тех времен еще, когда он был написан до выхода клуба в паблик, потому, как мне кажется, он вообще не соответствует духу и качеству клуба.
Мой бот выбирает пидора дня, ежедневно им пользуются сотни чатов, и уже успел принести мне 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, который без костылей практически разруливает все приходящие сообщения, прям кайфую с него. Выдержка из документации:
Короче, на мой взгляд у меня получился идеальный баланс между ООП и здравым смыслом.
Планы на будущее 👨🎓
Во-первых, хочется расширять базу пользователей. Я все время откладываю это, так как считаю, что что-то недопилено.
Во-вторых, хочется наконец-то прикрутить настоящие нейросети и заставить Сучару говорить. В идеале обучить его на огромной базе сообщений, которые годами у меня собираются, чтобы хоть как-то без стыда оправдать то, как позорно я собираю все, что возможно.
Монетизации нет и не будет, только в рамках добровольных пожертвований.
Выводы ✨
Закончим все на красивом числе знако
Полнейший артхаус, люблю такое.
Описание заебательское, буду давать всем примером как надо писать в Клубе посты о проектах!
В одном офисе я видел такого бота живьём
Звали Валерой
Я пришёл подушнить в соотвествии с правилом 7. Не такого, кхм контента, ожидаю от клуба. И уж точно не от недельного дайджеста. Дело даже не юморе про пидора дня (предположим что ни один пользователь бота не использовал это в гомофобном контексте), или гражданина Украины, а в градусе ненависти. Автор, прекрасно это понимая, написал дисклеймер, тем не менее опубликовал и пост даже попал в топ недели.
Лучший бот что мне встречался, даже круче нашумевшего во всех кругах MSU Hub Bot
Как говорится:
Знаю большое комьюнити, которое целиком выстроились вокруг этого бота и он стал важнейшим звеном их взаимодействия, они даже перестали писать друг другу сообщения, всё теперь через бота.
прекрасный бот, а его исходники - произведение искусства. а dsl то, дсл достоин буквально статей в лучших изданиях планеты.
Великолепный бот!
Собственно что еще надо, собственно что бы варьировать скучноватые будни? Естественно замечательный собеседник!
И данный бот совладевает с задачей на 100%.
Великолепное хитросплетение юмора, здоровой самоиронии и нешуточного технологического расклада.
Всякий раз свежие и сочные комменты в тему, крутые выборочные опросы, мини игры и почти все другое. Все это, слилось под одним ёмким заглавием Сучара.
Отправной код бота - это элементарно произведение компьютерного искусства, симфония на Котлине(отличным прогрессивным языке программирования).
Вообщем, расклад к составным частям поражает воображение! В том числе и аватарка изготовлена на заявка проф художником!
Исследовать нюансы и аспекты сего бота возможно безгранично.
Всем советую применить данный бот в чатах с приятелями, своими людьми, близкими и родными, для трудящихся чатов он также отлично подходит, скрасит сероватые повседневности, добавит живости и яркости диалогами.
Возможно в том числе и, элементарно потрещать с ним в личке и заряд впечатлений и неплохого настроения снабжен на весь день!
Сам пользуюсь его всюду, данный бот 1 из почв моего возлюбленного комьюнити в ТГ, почти все приятели пользуют данный бот любой денек и не имеют все шансы предположить своё общение без него.
Замечательная штука!
😱 Комментарий удален его автором...
😱 Комментарий удален его автором...
@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
лично я бы сразу уволился из конторы где есть такое проявление, с позволения сказать корпоративной "культуры", но мне не довелось такое испытывать на себе.
😱 Комментарий удален его автором...
Это просто охуенно, такой угар в чате теперь <3
Эммм... чет толи я туплю, толи это пранк такой но...
А где сорцы то, где можно оценить гениальность ООП архитектуры, которую что в посте что в комментах так нахваливают?
как это ни при чем? Если это рабочий чат - значит это напрямую относится к компании. Компания в лице разного рода сотрудников уже может сама решать либо спобосбствовать этому "шутливому" общению, либо его присекать.
Если делать это в личной переписке вне корпорации - каждый волен делать что угодно.
Для меня категорически недопустимо называеть кого-либо "пидором" :-)
Еще раз уточню - я не имею ничего против наличия ботов и мне крайне интересно читать про разный опыт его развития, связанные с этим проблемы и способствующие особенности. Функциональность у роботов может быть разной и это один из примеров. Если заменить лейбл на "счастливчик" то меня все устроит) маленькие такие штучки и приколы внутри коллектива - это всегда прекрасно. Сам по себе юмор хорош когда никто не считает себя оскорбленным. Иначе - это не юмор а шейминг в разном виде.
😱 Комментарий удален его автором...
😱 Комментарий удален его автором...
Привет!
Тестим с пацанами Сучару последние три недели. Нравится, что можно писать вопросы в другие чаты. Но никогда не получаем ответы от них обратно :(
Сучара скатился. В мировых вопросах херь какая-то от буквально двух-трех чатов.
кстати, а что за перфоманс был на 3 дня с арестованными вместо пидоров недавно?
Все пашет)
Ура, пидор дня.
Касаемо DSL — я правильно понимаю, что это не совсем язык, на небольшой фреймворк на котлине? Оно компилируемое?
Не было мысли перевести это на .ink или какие-нибудь еще скрипты, чтобы можно было дать чатам возможность добавлять свои сценарии?
Привет, как рекламу давал? какой канал? как аудиторию подбирал?
Это
Просто
Охуенно
Звучит даже лучше чем пидорбор (@allForPidorsBot)
Но походу придётся самому собирать и деплоить( Потому как нужен только в чате с друзьями, я там логирование ни к чему.
А расскажи пожалуйста какой гейтвей для платежей ты выбрал и почему? Какие плюсы, минусы, подводные камни?
Поражают масштабы!
Хотел было затащить в чат с друзьями, но сохранение сообщений в базу смутило. Хотелось бы версию без шпионажа.
@Kirk а что используется для аналитики?
Полуденный пидор
12pm по разным часовым поясам - это как пидор дня, только в стилистике, гонконгский полуденный триадарас или "пидор с уолл стрит" для нью-йоркского полудня, пока непонятно как это привязывать к пидору дня, мб наоборот в полночь по разным часовым поясам, тип, пробили полуночные часы в казахстане и гений превратился в пидора
В рамках идей для крипто-инвесторов, как только биток пробивает еще -5% - выбирается крипто-пидор с волосатым блокчейном, 10 анальных аппрувов из 10
Статистика пидоров месяца также кстати может к крипте присосаться, тип, какой-то %пидорнейм% за каждый день пребывания в топе ЗАРАБОТАЛ очком N койнов
Переворачивай счетчик) +1.
Подняли у себя на серваке бота =) Работает прекрасно, теперь предстоит длительный путь обучения =)))
Но есть вопрос: как его правильно обновлять? Подставлять ему новый докер-образ с гита и compose up -d?
Привет. Подскажи, чем собираешь статистику, чтоб были такие дашборды? Сервис мб какой?
Ярослав привет!
Бот перестал определять пидора дня. Что то случилось? Мы с парнями очкуем.