Как и для чего я сделал своего бота в Телеграмм с анонимным чатом

Этот бот — как комната, где можно встретить случайного человека и поболтать с ним один на один, не называя своего имени и не показывая номера телефона. Никто не узнает, кто ты, если сам не захочешь рассказать. Ты просто нажимаешь «Поиск собеседника» — и бот ищет тебе того, с кем интересно.
@botfolderast_bot
Я придумал его, чтобы попрактиковаться в программировании на Python, но ещё потому, что иногда хочется поговорить с кем-то новым, но без обязательств и без риска. В обычных соцсетях все смотрят на фотки и страницы, а тут всё по-честному анонимно.
Как это работает внутри.
У бота есть память — маленькая база данных, где он хранит анкеты пользователей. Когда ты заходишь, он запоминает твой пол, возраст, город и интересы (например, «музыка», «спорт», «кино»). Всё это ты сам заполняешь через кнопки. Потом ты говоришь «искать», и бот ставит тебя в очередь.
Очередь похожа на живую: кто раньше встал, того первого и обслуживают. Бот пробегает по очереди и ищет того, кто тебе подходит: совпадает пол (кого ты ищешь), совпадает хотя бы один интерес. Если нашёлся такой — он мгновенно соединяет вас в чат.
Дальше вы просто переписываетесь. Твои сообщения пересылаются собеседнику, его — тебе. Бот не влезает в переписку, только пересылает. Можно отправлять не только текст, но и фотки, стикеры, видосики. Если надоело, жмёшь «Новый собеседник» — старый чат заканчивается, и начинается новый поиск.
Почему это безопасно.
Твой настоящий ID никуда не светится. Даже администратор бота (я) видит только, что два каких-то номера общаются, но не знает, кто за ними стоит по именам. Единственное, что хранится в логах — это сами сообщения, чтобы, если кто-то пожалуется на оскорбления, можно было разобраться. Но это только для экстренных случаев.
Как я сделал, чтобы ничего не сломалось.
Я включил защиту базы данных: каждые пять минут делается её копия, как резервная. Если бот неожиданно выключится или сервер перезагрузят, данные не пропадут. Все действия с базой я обернул в «замок», чтобы двое одновременно не могли сломать что-то, меняя одну и ту же запись.
Управлять ботом можно через обычные команды. Для всех: /start — начало, /search — искать собеседника, /stop — остановить поиск, /stop_chat — выйти из чата, /settings — открыть настройки.
В итоге получился простой и удобный анонимный чат. Я старался, чтобы им было приятно пользоваться, и чтобы всё работало стабильно. Если захотите — можете запустить такого же у себя, код ведь открытый.

Начать дискуссию