- 19
- 6
Телеграм бот кликер монет на Python
Приветствую вас дорогие пользователи форума BlastHack. Недавно я сделал телеграм бота для генерации номеров и меня захейтили, но теперь я сделал бота намного лучше а именно кликер монет. Что-же не буду томить ожидание, представляю вам бота кликера монет!Функции:
• Возможность кликать монеты
• Проверять свой баланс
• Смотреть топ 10 пользователей по балансу
• Записывание всех балансов пользователей в файл "users.json"
Скриншот самого бота:
А вот и сам код:
Телеграм бот кликер монет на Python:
import telebot
from telebot import types
import json
import os
bot = telebot.TeleBot('Ваш токен')
def load_users():
if os.path.exists('users.json'):
with open('users.json', 'r') as file:
return json.load(file)
return {}
def save_users(users):
with open('users.json', 'w') as file:
json.dump(users, file)
@bot.message_handler(commands=['start'])
def start(message):
user_id = str(message.from_user.id)
users = load_users()
if user_id not in users:
users[user_id] = {'coins': 0}
save_users(users)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_click = types.KeyboardButton('🪙 Кликнуть')
btn_balance = types.KeyboardButton('💰 Баланс')
btn_top = types.KeyboardButton('🏆 Топ игроков')
markup.add(btn_click, btn_balance, btn_top)
bot.send_message(message.chat.id,
'Приветствую вас в боте для заработка монет! Кликайте монету, чтобы заработать.',
reply_markup=markup)
@bot.message_handler(content_types=['text'])
def handle_text(message):
user_id = str(message.from_user.id)
users = load_users()
if message.text == '🪙 Кликнуть':
users[user_id]['coins'] += 1
save_users(users)
bot.reply_to(message, f'Вы заработали монету! Всего монет: {users[user_id]["coins"]}')
elif message.text == '💰 Баланс':
bot.reply_to(message, f'Ваш баланс: {users[user_id]["coins"]} монет')
elif message.text == '🏆 Топ игроков':
players = []
for uid, data in users.items():
try:
user = bot.get_chat(uid)
name = user.first_name
except:
name = "Без имени"
players.append((name, data['coins']))
players.sort(key=lambda x: x[1], reverse=True)
top_message = "🏆 Топ-10 игроков:\n\n"
for i, (name, coins) in enumerate(players[:10], 1):
top_message += f"{i}. {name} {coins} монет\n"
bot.reply_to(message, top_message)
bot.polling(none_stop=True)
Библиотека:
pip install pyTelegramBotAPI