This commit is contained in:
2025-06-08 20:55:08 +09:00
parent f7e0d17829
commit 7a75f79413
139 changed files with 10619 additions and 2340 deletions

215
doners/shopbot/README.md Normal file
View File

@@ -0,0 +1,215 @@
# Сообщение от разработчика (31.01.2023)
Всем привет, код писался мною когда я только учился пайтону, просьба не используйте данный код в коммерческих целях.
Скажу откровенно, код очень не граммотный и требует полного рефакторинга
Почему? Потому что данный код написан в одном файле что является очень плохим способом.
Кому не лень - перепишите, я посмотрю и закомичу Ваш апдейт :D
Возможно я ещё возьмусь за данного бота и переработаю его чтобы Вы могли использовать в коммерческих целях и в личных :D
Спасибо!
Так-же хочу выразить глубокую благодарность за ваши звёзды и форки, приятно это видеть, даже если код откровенно ужасен.
Хочу посоветовать Вам, братья учите пайтон, не пожалеете. Данный код пока что используйте только в ознакомительных целях, не думайте что он хороший и его нужно использовать.
# Обновление 4.0 (18.10.2021)
✅ Обновления:
1. Был полностью оптимизирован код, теперь если пользователь введёт что-то не так, бот не будет крашиться, а напишет
![image](https://user-images.githubusercontent.com/94528892/142433868-40037a8b-5315-430e-b0ef-6409b71933aa.png)
2. Инлайновые кнопки были полностью изменены, вместо текста, эмодзи.
![image](https://user-images.githubusercontent.com/94528892/142434248-5501e81b-8bdb-488d-8b80-ae9e67bdc82d.png)
3. Обновлён профиль пользователя
![image](https://user-images.githubusercontent.com/94528892/142441734-2ae0cd85-8e00-45cd-915f-8b4c4bc07524.png)
4. Добавлена команда для просмотра всех пользователей `/users` (Синяя ссылка это кликабельно)
![image](https://user-images.githubusercontent.com/94528892/142456863-6b5f112a-c3f6-4e7b-9a02-c650ebb04faa.png)
# Обновление 3.0 (17.10.2021)
✅ Обновления:
1. Добавлена команда для просмотра купленных товаров `/mybuy`
2. При покупке товара, если у пользователя уже куплен товар пишет
![image](https://user-images.githubusercontent.com/94528892/142281705-32ca0121-258c-471e-8f93-d2b94d97de10.png)
3. Добавлена команда для связи с тех.поддержкой `/teh`
4. Для администратора добавлена команда `/ot` для ответа пользователю (отправки сообщения пользователю)
# Обновление 2.0 (17.10.2021)
✅ Обновления:
1. Добавлена команда для удаления товаров `/rembuy`
2. Добавлена команда для изменения данных о товаре (Название, Цена, Ссылка) `/editbuy`
3. Код стал более оптимизированым
# ShopBot Telegram
🤖 Бот Магазин для Телеграмма на Python 🤖
✅ Функционал бота:
1. Уровни доступа (Пользователь, Администратор, Разработчик)
2. База данных SQLite3
3. Добавление товаров
4. Продажа товаров
5. Пополнение счёта при помощи QIWI (Библиотека SimpleQIWI)
6. Просмотр профилей других пользователей
7. Выдача средств, выдача уровней доступа.
8. Изменение данных о товаре
9. Удаление товаров
10. Список купленных товаров
11. Система тех.поддержки
🎄 В будущем:
1. Ссылка для оплаты при попоплнении счёта
Список будет дополняться и изменятся.
📄 Список библиотек которые нужно установить:
`pip install pyTelegramBotAPI`
`pip install SimpleQIWI`
`pip install requests`
👾 Список команд:
`/start` - Зарегистрироваться в боте
`/profile` - Профиль
`/donate` - Пополнить счёт
`/buy` - Купить товар
`/help` - Помощь по командам
`/mybuy` - Список купленных товаров
`/teh` - Связаться с тех.поддержкой
🚨 Админские команды:
`/getprofile` - Посмотреть чужой профиль
`/getid` - Узнать ID пользователя
`/getcid` - Узнать Conference ID
`/access` - Выдать уровень доступа
`/giverub` - Выдать средства пользователю
`/addbuy` - Добавить товар
`/getrazrab` - Выдать себе разработчика (читать установку)
`/editbuy` - Изменить данные о товаре
`/rembuy` - Удалить товар
`/ot` - Ответить пользователю (отправить сообщение)
# 🛠 Установка бота:
1. Скачать файлы, затем распоковать папку в любое удобное место.
2. Открыть папку затем открыть файл `configure.py`
3. Найти бота `@BotFather` в телеграмм затем написать `/newbot`
4. Ввести имя бота, ник бота затем вылезет токен
![image](https://user-images.githubusercontent.com/94528892/142181389-673cf369-2fe2-4c73-ae62-6e10ea822d38.png)
5. Копируем токен, затем открываем файл `configure.py`
![image](https://user-images.githubusercontent.com/94528892/142181704-064533e2-7af9-421e-b08e-82be42200835.png)
У вас будет пустой файл в строку `'name'` нужно вписать имя бота пример:
![image](https://user-images.githubusercontent.com/94528892/142181871-63a7cd9c-7428-44d3-b2d8-63b7952a10b2.png)
В строку `'token'` нужно вписать токен который мы получили ранее:
![image](https://user-images.githubusercontent.com/94528892/142182021-cd38d9e2-97ab-4eb6-a61e-41df4975f5a2.png)
Далее переходим на сайт `qiwi.com/api`
Затем нажимаем на кнопку Выпустить новый токен
![image](https://user-images.githubusercontent.com/94528892/142182251-166e666b-55c8-419c-b6ac-8b66d014f7c4.png)
Выбираем все галочки, нажимаем на кнопку выбрать всё, затем нажимаем продолжить
![image](https://user-images.githubusercontent.com/94528892/142182421-919cf712-94f9-4a31-8c86-e4b22465799d.png)
Далее копируем токен и вставляем его в строку `'tokenqiwi'`
![image](https://user-images.githubusercontent.com/94528892/142182632-4aba3460-54d9-45c0-a904-38ea00978d90.png)
Далее в строку `'phoneqiwi'` вставляем свой номер телефона от QIWI кошелька
![image](https://user-images.githubusercontent.com/94528892/142182904-01d53418-6e1a-4252-b288-f75dd17b5e55.png)
Обязательно с + и кодом страны
Отлично! Всё почти готово.
Переходим по ссылке которая в сообщении с токеном бота
![image](https://user-images.githubusercontent.com/94528892/142183064-5031e215-cc3d-4d41-8685-e92f4d3c87f2.png)
Запускаем бота открывая файл `start.bat`
Далее нажимаем кнопку `Начать` либо `/start`
![image](https://user-images.githubusercontent.com/94528892/142184773-1c887e02-b542-40e1-ac62-fbcf3d567ea9.png)
Изменить этот текст Вы сможете тут
![image](https://user-images.githubusercontent.com/94528892/142184832-fd03b4b4-84f6-497c-99bb-2eafcc0bdf42.png)
Весь исходный код находиться в файле `bot.py`
Открываем файл `bot.py` затем ищем строку
![image](https://user-images.githubusercontent.com/94528892/142184961-c7d2d0be-7815-4d35-bda2-351032b32e77.png)
В чате с ботом пишем `/profile`
![image](https://user-images.githubusercontent.com/94528892/142185194-f71a4acd-f48d-470f-aaaa-66c666a755b1.png)
Копируем ваш ID затем вставялем в строку `WHERE id = 596060542` и `if message.from_user.id == 596060542:` ваш ID
![image](https://user-images.githubusercontent.com/94528892/142185458-d0a034b3-0302-45d4-ba7d-11fe138025be.png)
Затем сохраняем и перезапускаем бота.
В чат с ботом пишем `/getrazrab` и всё! Вы получили админку разработчика
![image](https://user-images.githubusercontent.com/94528892/142185660-f9b67c5b-d8c7-4a21-97d9-ff4a95471398.png)
![image](https://user-images.githubusercontent.com/94528892/142185690-eff4296c-ede4-4322-837d-7d9827655d68.png)
Далее находим строку 223 'def donateyesoplacheno'
![image](https://user-images.githubusercontent.com/94528892/142187463-7a46f327-857c-42a5-abf3-8017f774af5d.png)
И вместо `596060542` вписываем свой ID
Всё, бот полностью настроен!
Советую поставить бота на хостинг по типу:
`eu.pythonanywhere.com`
Либо на ВДС или на Выделенный сервер
Бот делал лично Я с нуля, один. Просьба если будете его пересливать, дорабатывать и сливать то указывайте автора исходного кода. ❤
# 📞 Связь со мной:
1. ВК: https://vk.com/nosemka
2. Дискорд: semmy#0068

883
doners/shopbot/bot.py Normal file
View File

@@ -0,0 +1,883 @@
import telebot
import configure
import sqlite3
from telebot import types
import threading
from requests import get
from time import sleep
from SimpleQIWI import *
client = telebot.TeleBot(configure.config['token'])
db = sqlite3.connect('baza.db', check_same_thread=False)
sql = db.cursor()
lock = threading.Lock()
api = QApi(token=configure.config['tokenqiwi'], phone=configure.config['phoneqiwi'])
markdown = """
*bold text*
_italic text_
[text](URL)
"""
#database
sql.execute("""CREATE TABLE IF NOT EXISTS users (id BIGINT, nick TEXT, cash INT, access INT, bought INT)""")
sql.execute("""CREATE TABLE IF NOT EXISTS shop (id INT, name TEXT, price INT, tovar TEXT, whobuy TEXT)""")
db.commit()
@client.message_handler(commands=['start'])
def start(message):
try:
getname = message.from_user.first_name
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT id FROM users WHERE id = {uid}")
if sql.fetchone() is None:
sql.execute(f"INSERT INTO users VALUES ({uid}, '{getname}', 0, 0, 0)")
client.send_message(cid, f"🛒 | Добро пожаловать, {getname}!\nТы попал в бота магазин\nИзмените этот текст!")
db.commit()
else:
client.send_message(cid, f"⛔️ | Ты уже зарегистрирован! Пропиши /help чтобы узнать команды.")
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['profile', 'myinfo', 'myprofile'])
def myprofile(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
if getaccess == 0:
accessname = 'Пользователь'
elif getaccess == 1:
accessname = 'Администратор'
elif getaccess == 777:
accessname = 'Разработчик'
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
client.send_message(cid, f"*📇 | Твой профиль:*\n\n*👤 | Ваш ID:* {info[0]}\n*💸 | Баланс:* {info[2]}\n*👑 | Уровень доступа:* {accessname}\n*🛒 | Куплено товаров:* {info[4]}\n\n*🗂 Чтобы посмотреть список купленных товаров напишите /mybuy*", parse_mode='Markdown')
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['users'])
def allusers(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
accessquery = 1
if getaccess < accessquery:
client.send_message(cid, '⚠️ | У вас нет доступа!')
else:
text = '*🗃 | Список всех пользователей:*\n\n'
idusernumber = 0
for info in sql.execute(f"SELECT * FROM users"):
if info[3] == 0:
accessname = 'Пользователь'
elif info[3] == 1:
accessname = 'Администратор'
elif info[3] == 777:
accessname = 'Разработчик'
idusernumber += 1
text += f"*{idusernumber}. {info[0]} ({info[1]})*\n*💸 | Баланс:* {info[2]}\n*👑 | Уровень доступа:* {accessname}\n*✉️ | Профиль:*" + f" [{info[1]}](tg://user?id="+str(info[0])+")\n\n"
client.send_message(cid, f"{text}",parse_mode='Markdown')
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['mybuy'])
def mybuy(message):
try:
cid = message.chat.id
uid = message.from_user.id
text = '*🗂 | Список купленных товаров:*\n\n'
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
for infoshop in sql.execute(f"SELECT * FROM shop"):
if str(info[0]) in infoshop[4]:
text += f"*{infoshop[0]}. {infoshop[1]}*\nТовар: {infoshop[3]}\n\n"
client.send_message(cid,f"{text}",parse_mode='Markdown',disable_web_page_preview=True)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['getprofile', 'info'])
def getprofile(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
accessquery = 1
if getaccess < accessquery:
client.send_message(cid, '⚠️ | У вас нет доступа!')
else:
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
msg = client.send_message(cid, f'Введите ID пользователя:\nПример: {info[0]}')
client.register_next_step_handler(msg, getprofile_next)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def getprofile_next(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
getprofileid = message.text
for info in sql.execute(f"SELECT * FROM users WHERE id = {getprofileid}"):
if info[3] == 0:
accessname = 'Пользователь'
elif info[3] == 1:
accessname = 'Администратор'
elif info[3] == 777:
accessname = 'Разработчик'
client.send_message(cid, f"*📇 | Профиль {info[1]}:*\n\n*ID пользователя:* {info[0]}\n*Баланс:* {info[2]}\n*Уровень доступа:* {accessname}\n*Куплено товаров:* {info[4]}",parse_mode='Markdown')
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['editbuy'])
def editbuy(message):
try:
cid = message.chat.id
uid = message.from_user.id
accessquery = 1
with lock:
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
if getaccess < 1:
client.send_message(cid, '⚠️ | У вас нет доступа!')
else:
rmk = types.InlineKeyboardMarkup()
item_name = types.InlineKeyboardButton(text='Название',callback_data='editbuyname')
item_price = types.InlineKeyboardButton(text='Цена',callback_data='editbuyprice')
item_tovar = types.InlineKeyboardButton(text='Товар',callback_data='editbuytovar')
rmk.add(item_name, item_price, item_tovar)
msg = client.send_message(cid, f"🔰 | Выберите что Вы хотите изменить:",reply_markup=rmk,parse_mode='Markdown')
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_name(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuynameidtovar
editbuynameidtovar = int(message.text)
msg = client.send_message(cid, f"*Введите новое название товара:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_name_new_name)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_name_new_name(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuynametovar
editbuynametovar = message.text
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {editbuynameidtovar}"):
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='', callback_data='editbuynewnametovaryes')
item_no = types.InlineKeyboardButton(text='', callback_data='editbuynewnametovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"*🔰 | Данные об изменении названия товара:*\n\nID товара: {editbuynameidtovar}\nСтарое имя товара: {infoshop[1]}\nНовое имя товара: {editbuynametovar}\n\nВы подверждаете изменения?",parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_price(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuypriceidtovar
editbuypriceidtovar = int(message.text)
msg = client.send_message(cid, f"*Введите новую цену товара:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_price_new_price)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_price_new_price(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuypricetovar
editbuypricetovar = int(message.text)
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {editbuypriceidtovar}"):
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='', callback_data='editbuynewpricetovaryes')
item_no = types.InlineKeyboardButton(text='', callback_data='editbuynewpricetovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"*🔰 | Данные об изменении цены товара:*\n\nID товара: {editbuypriceidtovar}\nСтарая цена: {infoshop[2]}\nНовая цена: {editbuypricetovar}\n\nВы подверждаете изменения?",parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_tovar(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuytovaridtovar
editbuytovaridtovar = int(message.text)
msg = client.send_message(cid, f"*Введите новую ссылку на товар:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_tovar_new_tovar)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def editbuy_tovar_new_tovar(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global editbuytovartovar
editbuytovartovar = message.text
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {editbuytovaridtovar}"):
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='', callback_data='editbuynewtovartovaryes')
item_no = types.InlineKeyboardButton(text='', callback_data='editbuynewtovartovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"*🔰 | Данные об изменении сcылки товара:*\n\nID товара: {editbuytovaridtovar}\nСтарая ссылка: {infoshop[3]}\nНовая ссылка: {editbuytovartovar}\n\nВы подверждаете изменения?",parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'editbuynewtovartovaryes' or call.data == 'editbuynewtovartovarno')
def editbuy_tovar_new_callback(call):
try:
if call.data == 'editbuynewtovartovaryes':
sql.execute(f"SELECT * FROM shop WHERE id = {editbuytovaridtovar}")
sql.execute(f"UPDATE shop SET tovar = '{editbuytovartovar}' WHERE id = {editbuytovaridtovar}")
db.commit()
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✅ | Вы успешно изменили ссылку на товар на {editbuytovartovar}")
elif call.data == 'editbuynewtovartovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили изменение сcылки товара")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'editbuynewpricetovaryes' or call.data == 'editbuynewpricetovarno')
def editbuy_price_new_callback(call):
try:
if call.data == 'editbuynewpricetovaryes':
sql.execute(f"SELECT * FROM shop WHERE id = {editbuypriceidtovar}")
sql.execute(f"UPDATE shop SET price = {editbuypricetovar} WHERE id = {editbuypriceidtovar}")
db.commit()
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✅ | Вы успешно изменили цену товара на {editbuypricetovar}")
elif call.data == 'editbuynewpricetovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили изменение цены товара")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'editbuynewnametovaryes' or call.data == 'editbuynewnametovarno')
def editbuy_name_new_callback(call):
try:
if call.data == 'editbuynewnametovaryes':
sql.execute(f"SELECT * FROM shop WHERE id = {editbuynameidtovar}")
sql.execute(f"UPDATE shop SET name = '{editbuynametovar}' WHERE id = {editbuynameidtovar}")
db.commit()
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✅ | Вы успешно изменили название товара на {editbuynametovar}")
elif call.data == 'editbuynewnametovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили изменение названия товара")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'editbuyname' or call.data == 'editbuyprice' or call.data == 'editbuytovar')
def editbuy_first_callback(call):
try:
if call.data == 'editbuyname':
msg = client.send_message(call.message.chat.id, f"*Введите ID товара которому хотите изменить название:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_name)
elif call.data == 'editbuyprice':
msg = client.send_message(call.message.chat.id, f"*Введите ID товара которому хотите изменить цену:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_price)
elif call.data == 'editbuytovar':
msg = client.send_message(call.message.chat.id, f"*Введите ID товара которому хотите изменить ссылку:*",parse_mode='Markdown')
client.register_next_step_handler(msg, editbuy_tovar)
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['rembuy'])
def removebuy(message):
try:
cid = message.chat.id
uid = message.from_user.id
accessquery = 1
with lock:
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
if getaccess < 1:
client.send_message(cid, '⚠️ | У вас нет доступа!')
else:
msg = client.send_message(cid, f"*Введите ID товара который хотите удалить:*",parse_mode='Markdown')
client.register_next_step_handler(msg, removebuy_next)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def removebuy_next(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global removeidtovar
removeidtovar = int(message.text)
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {removeidtovar}"):
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='',callback_data='removebuytovaryes')
item_no = types.InlineKeyboardButton(text='',callback_data='removebuytovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"🔰 | Данные об удалении:\n\nID товара: {infoshop[0]}\nИмя товара: {infoshop[1]}\nЦена товара: {infoshop[2]}\nТовар: {infoshop[3]}\n\nВы действительно хотите удалить товар? Отменить действие будет НЕВОЗМОЖНО.",reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'removebuytovaryes' or call.data == 'removebuytovarno')
def removebuy_callback(call):
try:
if call.data == 'removebuytovaryes':
sql.execute(f"SELECT * FROM shop")
sql.execute(f"DELETE FROM shop WHERE id = {removeidtovar}")
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✅ | Вы успешно удалили товар")
db.commit()
elif call.data == 'removebuytovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили удаление товара")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['addbuy'])
def addbuy(message):
try:
cid = message.chat.id
uid = message.from_user.id
with lock:
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
if getaccess < 1:
client.send_message(cid, '⚠️ | У вас нет доступа!')
else:
msg = client.send_message(cid, '*Введите ID товара:*',parse_mode='Markdown')
client.register_next_step_handler(msg, addbuy_id)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def addbuy_id(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global addbuyid
addbuyid = message.text
msg = client.send_message(cid, '*Введите цену товара:*',parse_mode='Markdown')
client.register_next_step_handler(msg, addbuy_price)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def addbuy_price(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global addbuyprice
addbuyprice = message.text
msg = client.send_message(cid, '*Введите название товара:*',parse_mode='Markdown')
client.register_next_step_handler(msg, addbuy_name)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def addbuy_name(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global addbuyname
addbuyname = message.text
msg = client.send_message(cid, '*Введите ссылку на товар:*',parse_mode='Markdown')
client.register_next_step_handler(msg, addbuy_result)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def addbuy_result(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global addbuytovar
addbuytovar = message.text
sql.execute(f"SELECT name FROM shop WHERE name = '{addbuyname}'")
if sql.fetchone() is None:
sql.execute(f"INSERT INTO shop VALUES ({addbuyid}, '{addbuyname}', {addbuyprice}, '{addbuytovar}', '')")
db.commit()
sql.execute(f"SELECT * FROM shop WHERE name = '{addbuyname}'")
client.send_message(cid, f'✅ | Вы успешно добавили товар\nID товара: {sql.fetchone()[0]}\nИмя: {addbuyname}\nЦена: {addbuyprice}\nСсылка на товар: {addbuytovar}')
else:
client.send_message(cid, f"⛔️ | Данный товар уже добавлен!")
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['buy'])
def buy(message):
try:
cid = message.chat.id
uid = message.from_user.id
text = '🛒 | *Список товаров*\n\n'
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
for infoshop in sql.execute(f"SELECT * FROM shop"):
text += f"{infoshop[0]}. {infoshop[1]}\nЦена: {infoshop[2]}\n\n"
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='', callback_data='firstbuytovaryes')
item_no = types.InlineKeyboardButton(text='', callback_data='firstbuytovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f'{text}*Вы хотите перейти к покупке товара?*',parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def buy_next(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global tovarid
tovarid = int(message.text)
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {tovarid}"):
if info[2] < infoshop[2]:
client.send_message(cid, '⚠️ | У вас недостаточно средств для приобретения товара!\n\nЧтобы пополнить счёт напишите /donate')
else:
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='',callback_data='buytovaryes')
item_no = types.InlineKeyboardButton(text='',callback_data='buytovarno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"💸 | Вы подверждаете покупку товара?\n\nВернуть средства за данный товар НЕВОЗМОЖНО.",reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'firstbuytovaryes' or call.data == 'firstbuytovarno')
def firstbuy_callback(call):
try:
if call.data == 'firstbuytovaryes':
msg = client.send_message(call.message.chat.id, f"*Введите ID товара который хотите купить:*",parse_mode='Markdown')
client.register_next_step_handler(msg, buy_next)
elif call.data == 'firstbuytovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили покупку товара")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'buytovaryes' or call.data == 'buytovarno')
def buy_callback(call):
try:
if call.data == 'buytovaryes':
for info in sql.execute(f"SELECT * FROM users WHERE id = {call.from_user.id}"):
for infoshop in sql.execute(f"SELECT * FROM shop WHERE id = {tovarid}"):
if str(info[0]) not in infoshop[4]:
cashtovar = int(info[2] - infoshop[2])
boughttovar = int(info[4] + 1)
whobuytovarinttostr = str(info[0])
whobuytovar = str(infoshop[4] + whobuytovarinttostr + ',')
sql.execute(f"SELECT * FROM users WHERE id = {call.from_user.id}")
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✅ | Вы успешно купили товар\n\nНазвание товара: {infoshop[1]}\nЦена: {infoshop[2]}\n\nТовар: {infoshop[3]}\n\nСпасибо за покупку!")
sql.execute(f"UPDATE users SET cash = {cashtovar} WHERE id = {call.from_user.id}")
sql.execute(f"UPDATE users SET bought = {boughttovar} WHERE id = {call.from_user.id}")
sql.execute(f"SELECT * FROM shop WHERE id = {tovarid}")
sql.execute(f"UPDATE shop SET whobuy = '{whobuytovar}' WHERE id = {tovarid}")
db.commit()
else:
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"*⛔️ | Данный товар уже куплен!*\n\nЧтобы посмотреть список купленных товаров напишите /mybuy",parse_mode='Markdown')
elif call.data == 'buytovarno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"❌ | Вы отменили покупку товара!")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['donate'])
def donate(message):
try:
cid = message.chat.id
global uid
uid = message.from_user.id
msg = client.send_message(cid, f"*💰 | Введите сумму для пополнения:*",parse_mode='Markdown')
client.register_next_step_handler(msg, donate_value)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def donate_value(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global donatevalue
global commentdonate
global getusername
global getuserdonateid
getusername = message.from_user.first_name
getuserdonateid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
commentdonate = sql.fetchone()[0]
donatevalue = int(message.text)
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='',callback_data='donateyes')
item_no = types.InlineKeyboardButton(text='',callback_data='donateno')
rmk.add(item_yes, item_no)
global qiwibalancebe
qiwibalancebe = api.balance
msg = client.send_message(cid, f"🔰 | Заявка на пополнение средств успешно создана\n\nВы действительно хотите пополнить средства?",parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def donateyesoplacheno(message):
try:
cid = message.chat.id
uid = message.from_user.id
removekeyboard = types.ReplyKeyboardRemove()
if message.text == '✅ Оплачено':
client.send_message(cid, f"✉️ | Ваш запрос отправлен администраторам, ожидайте одобрения и выдачи средств.",reply_markup=removekeyboard)
client.send_message(596060542, f"✉️ | Пользователь {getusername} оплатил заявку на пополнение средств\n\nID пользователя: {getuserdonateid}\nСумма: {donatevalue}\nКомментарий: {commentdonate}\n\nБаланс вашего QIWI раньше: {qiwibalancebe}\nБаланс вашего QIWI сейчас: {api.balance}\n\nПерепроверьте верность оплаты затем подтвердите выдачу средств.\nДля выдачи средств напишите: /giverub")
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'donateyes' or call.data == 'donateno')
def donate_result(call):
try:
removekeyboard = types.ReplyKeyboardRemove()
rmk = types.ReplyKeyboardMarkup(resize_keyboard=True)
rmk.add(types.KeyboardButton('✅ Оплачено'))
if call.data == 'donateyes':
client.delete_message(call.message.chat.id, call.message.message_id-0)
msg = client.send_message(call.message.chat.id, f"\n☎️ Кошелек для оплаты: +380661696196\n💰 Сумма: {donatevalue}\n💭 Комментарий: {commentdonate}\n*⚠️ВАЖНО⚠️* Комментарий и сумма должны быть *1в1*\n",parse_mode='Markdown',reply_markup=rmk)
client.register_next_step_handler(msg, donateyesoplacheno)
elif call.data == 'donateno':
client.send_message(call.message.chat.id, f"❌ | Вы отменили заявку на пополнение средств",reply_markup=removekeyboard)
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['getcid'])
def getcid(message):
client.send_message(message.chat.id, f"ID чата | {message.chat.id}\nТвой ID | {message.from_user.id}")
@client.message_handler(commands=['help'])
def helpcmd(message):
cid = message.chat.id
uid = message.from_user.id
with lock:
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
if getaccess >= 1:
client.send_message(cid, '*Помощь по командам:*\n\n/profile - Посмотреть свой профиль\n/help - Посмотреть список команд\n/buy - Купить товар\n/donate - Пополнить счёт\n/mybuy - Посмотреть список купленных товаров\n/teh - Связаться с тех.поддержкой\n\nАдмин-команды:\n\n/getprofile - Посмотреть чужой профиль\n/access - Выдать уровень доступа\n/giverub - Выдать деньги на баланс\n/getid - Узнать айди пользователя\n/getcid - Узнать Conference ID\n/addbuy - Добавить товар на продажу\n/editbuy - Изменить данные о товаре\n/rembuy - Удалить товар\n/ot - Ответить пользователю (отправить сообщение)',parse_mode='Markdown')
else:
client.send_message(cid, '*Помощь по командам:*\n\n/profile - Посмотреть свой профиль\n/help - Посмотреть список команд\n/buy - Купить товар\n/donate - Пополнить счёт\n/mybuy - Посмотреть список купленных товаров\n/teh - Связаться с тех.поддержкой',parse_mode='Markdown')
@client.message_handler(commands=['access', 'setaccess', 'dostup'])
def setaccess(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
accessquery = 777
if getaccess < accessquery:
client.send_message(cid, f"⚠️ | У вас нет доступа!")
else:
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
msg = client.send_message(cid, 'Введите ID пользователя:\nПример: 596060542', parse_mode="Markdown")
client.register_next_step_handler(msg, access_user_id_answer)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def access_user_id_answer(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global usridaccess
usridaccess = message.text
rmk = types.ReplyKeyboardMarkup(resize_keyboard=True)
rmk.add(types.KeyboardButton('Пользователь'), types.KeyboardButton('Администратор'), types.KeyboardButton('Разработчик'))
msg = client.send_message(cid, 'Какой уровень доступа Вы хотите выдать?:', reply_markup=rmk, parse_mode="Markdown")
client.register_next_step_handler(msg, access_user_access_answer)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def access_user_access_answer(message):
try:
global accessgaved
global accessgavedname
cid = message.chat.id
uid = message.from_user.id
rmk = types.InlineKeyboardMarkup()
access_yes = types.InlineKeyboardButton(text='',callback_data='setaccessyes')
access_no = types.InlineKeyboardButton(text='',callback_data='setaccessno')
rmk.add(access_yes, access_no)
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridaccess}"):
if message.text == "Пользователь":
accessgavedname = "Пользователь"
accessgaved = 0
elif message.text == "Администратор":
accessgavedname = "Администратор"
accessgaved = 1
elif message.text == "Разработчик":
accessgavedname = "Разработчик"
accessgaved = 777
client.send_message(cid, f'Данные для выдачи:\nID пользователя: {usridaccess} ({info[1]})\nУровень доступа: {message.text}\n\nВерно?', reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(lambda call: call.data == 'setaccessyes' or call.data == 'setaccessno')
def access_user_gave_access(call):
try:
removekeyboard = types.ReplyKeyboardRemove()
if call.data == 'setaccessyes':
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridaccess}"):
sql.execute(f"UPDATE users SET access = {accessgaved} WHERE id = {usridaccess}")
db.commit()
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f'✅ | Пользователю {info[1]} выдан уровень доступа {accessgavedname}', reply_markup=removekeyboard)
elif call.data == 'setaccessno':
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridaccess}"):
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f'🚫 | Вы отменили выдачу уровня доступа {accessgavedname} пользователю {info[1]}', reply_markup=removekeyboard)
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['getrazrab'])
def getrazrabotchik(message):
if message.from_user.id == 596060542:
sql.execute(f"UPDATE users SET access = 777 WHERE id = 596060542")
client.send_message(message.chat.id, f"✅ | Вы выдали себе Разработчика")
db.commit()
else:
client.send_message(message.chat.id, f"⛔️ | Отказано в доступе!")
@client.message_handler(commands=['giverub', 'givedonate', 'givebal'])
def giverubles(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
accessquery = 777
if getaccess < accessquery:
client.send_message(cid, f"⚠️ | У вас нет доступа!")
else:
for info in sql.execute(f"SELECT * FROM users WHERE id = {uid}"):
msg = client.send_message(cid, 'Введите ID пользователя:\nПример: 596060542', parse_mode="Markdown")
client.register_next_step_handler(msg, rubles_user_id_answer)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def rubles_user_id_answer(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global usridrubles
usridrubles = message.text
rmk = types.ReplyKeyboardMarkup(resize_keyboard=True)
rmk.add(types.KeyboardButton('10'), types.KeyboardButton('100'), types.KeyboardButton('1000'), types.KeyboardButton('Другая сумма'))
msg = client.send_message(cid, 'Выберите сумму для выдачи:', reply_markup=rmk, parse_mode="Markdown")
client.register_next_step_handler(msg, rubles_user_rubles_answer)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def rubles_user_rubles_answer(message):
try:
cid = message.chat.id
uid = message.from_user.id
global rublesgavedvalue
removekeyboard = types.ReplyKeyboardRemove()
rmk = types.InlineKeyboardMarkup()
access_yes = types.InlineKeyboardButton(text='',callback_data='giverublesyes')
access_no = types.InlineKeyboardButton(text='',callback_data='giverublesno')
rmk.add(access_yes, access_no)
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridrubles}"):
if message.text == '10':
rublesgavedvalue = 10
client.send_message(cid, f'Данные для выдачи:\nID пользователя: {usridrubles} ({info[1]})\nСумма: {rublesgavedvalue}\n\nВерно?',reply_markup=rmk)
elif message.text == '100':
rublesgavedvalue = 100
client.send_message(cid, f'Данные для выдачи:\nID пользователя: {usridrubles} ({info[1]})\nСумма: {rublesgavedvalue}\n\nВерно?',reply_markup=rmk)
elif message.text == '1000':
rublesgavedvalue = 1000
client.send_message(cid, f'Данные для выдачи:\nID пользователя: {usridrubles} ({info[1]})\nСумма: {rublesgavedvalue}\n\nВерно?',reply_markup=rmk)
elif message.text == 'Другая сумма':
msg = client.send_message(cid, f"*Введите сумму для выдачи:*",parse_mode='Markdown',reply_markup=removekeyboard)
client.register_next_step_handler(msg, rubles_user_rubles_answer_other)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def rubles_user_rubles_answer_other(message):
try:
cid = message.chat.id
uid = message.from_user.id
global rublesgavedvalue
rmk = types.InlineKeyboardMarkup()
access_yes = types.InlineKeyboardButton(text='',callback_data='giverublesyes')
access_no = types.InlineKeyboardButton(text='',callback_data='giverublesno')
rmk.add(access_yes, access_no)
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridrubles}"):
if message.text == message.text:
rublesgavedvalue = int(message.text)
client.send_message(cid, f'Данные для выдачи:\nID пользователя: {usridrubles} ({info[1]})\nСумма: {rublesgavedvalue}\n\nВерно?',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(func=lambda call: call.data == 'giverublesyes' or call.data == 'giverublesno')
def rubles_gave_rubles_user(call):
try:
removekeyboard = types.ReplyKeyboardRemove()
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridrubles}"):
rubless = int(info[2] + rublesgavedvalue)
if call.data == 'giverublesyes':
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridrubles}"):
sql.execute(f"UPDATE users SET cash = {rubless} WHERE id = {usridrubles}")
db.commit()
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f'✅ | Пользователю {info[1]} выдано {rublesgavedvalue} рублей', reply_markup=removekeyboard)
elif call.data == 'giverublesno':
for info in sql.execute(f"SELECT * FROM users WHERE id = {usridrubles}"):
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f'🚫 | Вы отменили выдачу рублей пользователю {info[1]}', reply_markup=removekeyboard)
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['teh'])
def teh(message):
try:
cid = message.chat.id
uid = message.from_user.id
msg = client.send_message(cid, f"*📨 | Введите текст который хотите отправить тех.поддержке*",parse_mode='Markdown')
client.register_next_step_handler(msg, teh_next)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def teh_next(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
global tehtextbyuser
global tehnamebyuser
global tehidbyuser
tehidbyuser = int(message.from_user.id)
tehnamebyuser = str(message.from_user.first_name)
tehtextbyuser = str(message.text)
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='✉️',callback_data='tehsend')
item_no = types.InlineKeyboardButton(text='',callback_data='tehno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"✉️ | Данные об отправке:\n\nТекст для отправки: {tehtextbyuser}\n\nВы действительно хотите отправить это тех.поддержке?",parse_mode='Markdown',reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(func=lambda call: call.data == 'tehsend' or call.data == 'tehno')
def teh_callback(call):
try:
if call.data == 'tehsend':
for info in sql.execute(f"SELECT * FROM users WHERE id = {call.from_user.id}"):
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✉️ | Ваше сообщение отправлено тех.поддержке, ожидайте ответа.")
client.send_message(596060542, f"✉️ | Пользователь {tehnamebyuser} отправил сообщение в тех.поддержку\n\nID пользователя: {tehidbyuser}\nТекст: {tehtextbyuser}\n\nЧтобы ответить пользователю напишите /ot")
elif call.data == 'tehno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили отправку сообщения тех.поддержке")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['ot'])
def sendmsgtouser(message):
try:
cid = message.chat.id
msg = client.send_message(cid, f"👤 | Введите ID пользователя которому хотите отправить сообщение:")
client.register_next_step_handler(msg, sendmsgtouser_next)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def sendmsgtouser_next(message):
try:
cid = message.chat.id
if message.text == message.text:
global getsendmsgtouserid
getsendmsgtouserid = int(message.text)
msg = client.send_message(cid, f"📨 | Введите текст который хотите отправить пользователю:")
client.register_next_step_handler(msg, sendmsgtouser_next_text)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def sendmsgtouser_next_text(message):
try:
cid = message.chat.id
if message.text == message.text:
global getsendmsgtousertext
getsendmsgtousertext = str(message.text)
rmk = types.InlineKeyboardMarkup()
item_yes = types.InlineKeyboardButton(text='',callback_data='sendmsgtouseryes')
item_no = types.InlineKeyboardButton(text='',callback_data='sendmsgtouserno')
rmk.add(item_yes, item_no)
msg = client.send_message(cid, f"🔰 | Данные об отправке сообщения:\n\nID пользователя: {getsendmsgtouserid}\nТекст для отправки: {getsendmsgtousertext}\n\nОтправить сообщение?",reply_markup=rmk)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
@client.callback_query_handler(func=lambda call: call.data == 'sendmsgtouseryes' or call.data == 'sendmsgtouserno')
def sendmsgtouser_callback(call):
try:
if call.data == 'sendmsgtouseryes':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"✉️ | Сообщение отправлено!")
client.send_message(getsendmsgtouserid, f"✉️ | Администратор прислал вам сообщение:\n\n{getsendmsgtousertext}")
elif call.data == 'sendmsgtouserno':
client.delete_message(call.message.chat.id, call.message.message_id-0)
client.send_message(call.message.chat.id, f"🚫 | Вы отменили отправку сообщения пользователю")
client.answer_callback_query(callback_query_id=call.id)
except:
client.send_message(call.message.chat.id, f'🚫 | Ошибка при выполнении команды')
@client.message_handler(commands=['getid'])
def getiduser(message):
try:
cid = message.chat.id
uid = message.from_user.id
sql.execute(f"SELECT * FROM users WHERE id = {uid}")
getaccess = sql.fetchone()[3]
accessquery = 1
if getaccess < accessquery:
client.send_message(cid, f"⚠️ | У вас нет доступа!")
else:
msg = client.send_message(cid, 'Введите никнейм пользователя:')
client.register_next_step_handler(msg, next_getiduser_name)
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
def next_getiduser_name(message):
try:
cid = message.chat.id
uid = message.from_user.id
if message.text == message.text:
getusername = message.text
sql.execute(f"SELECT * FROM users WHERE nick = '{getusername}'")
result = sql.fetchone()[0]
client.send_message(cid, f'👤 | ID пользователя: {result}')
except:
client.send_message(cid, f'🚫 | Ошибка при выполнении команды')
client.polling(none_stop=True,interval=0)

View File

@@ -0,0 +1,6 @@
config = {
'name': '',
'token': '',
'tokenqiwi': '',
'phoneqiwi': ''
}