Перейти до змісту

Рекомендовані відповіді

Опубліковано
  • Адміністратор

Телеграм бот клікер монет на 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

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Важлива інформація

By using this site, you agree to our Умови використання.