import telebot
from telebot import types
import sqlite3
bot = telebot.TeleBot(TOKEN)
link = 'https://t.me/(name_bot)'
@bot.message_handler(commands=['start'])
def start(message):
msg = str(message.text).rsplit(' ', 1)
ref = types.ReplyKeyboardMarkup(resize_keyboard=True)
ref_btn = types.KeyboardButton('Ваша реф ссылка')
ref_btn2 = types.KeyboardButton('Мои рефералы')
ref.add(ref_btn, ref_btn2)
conn = sqlite3.connect('db.db')
cur = conn.cursor()
user = cur.execute("SELECT id FROM users WHERE chat_id == ?", (message.chat.id,)).fetchone()
if user:
#Юзер уже сть в базе
bot.send_message(message.chat.id, 'Доброго времени суток', reply_markup=ref)
else: # Юзера пришел в первые
if len(msg) == 2: #Проверяем есть ли реф сылка
id_referer = msg[1]
bot.send_message(message.chat.id, f'Вас пригласили в чат.\nID реферера: {msg[1]}', reply_markup=ref)
cur.execute("INSERT INTO users(f_name, l_name, chat_id, referer) VALUES (?, ?, ?, ?)", (message.from_user.first_name, message.from_user.last_name, message.chat.id, id_referer))
conn.commit()
conn.close()
else: # Сюда попадаем если реф ссылки нет
cur.execute("INSERT INTO users(f_name, l_name, chat_id) VALUES (?, ?, ?)",
(message.from_user.first_name, message.from_user.last_name, message.chat.id))
conn.commit()
conn.close()
bot.send_message(message.chat.id, 'Вы сами нашли наш чат', reply_markup=ref)
@bot.message_handler(content_types=['text'])
def ref(message):
if message.text == 'Ваша реф ссылка':
bot.send_message(message.chat.id, 'Ваша реф ссылка:')
bot.send_message(message.chat.id, f'{link}?start={message.chat.id}')
elif message.text == 'Мои рефералы':
conn = sqlite3.connect('db.db')
cur = conn.cursor()
referal = cur.execute("SELECT * FROM users WHERE referer = ?", (message.chat.id,)).fetchall()
bot.send_message(message.chat.id, f'Количество рефералов:\n {len(referal)}')
bot.infinity_polling()
Структура БД:
1. ID - int
2. f_name - Имя, text
3. l_name - Фамилия, text
4. chat_id - telegram id юзера, int, уникальное значение в бд
5. referer - telegram id реферера, int