Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vk_requests
- import MySQLdb
- import os
- os.environ["NLS_LANG"] = "AMERICAN.AL32UTF8"
- import vkcoin
- import random
- from vbio import VkBot, LongPollClient
- from vbio.types import VkKeyboardMarkup, VkKeyboardButton, VkColor
- import configparser
- config = configparser.ConfigParser()
- config.read('config.ini')
- moneyid = config.get('connect', 'userid')
- vkcoin_token = config.get('connect', 'vk_coin')
- vk_session_token = config.get('connect', 'vk_group')
- vk_token = config.get('connect', 'vk_token')
- dbip = config.get('db', 'ip')
- dbuser = config.get('db', 'dbuser')
- dbpass = config.get('db', 'dbpass')
- dbtable = config.get('db', 'dbtable')
- conn = MySQLdb.connect(dbip, dbuser, dbpass, dbtable, charset='utf8', use_unicode=True)
- cursor = conn.cursor()
- api = vk_requests.create_api(
- service_token=vk_session_token)
- callback = vkcoin.VKCoin(user_id=543869137,key=vkcoin_token, token=vk_token)
- bot = VkBot(api=api)
- handler = LongPollClient(bot)
- merchant = vkcoin.VKCoin(user_id=int(moneyid),
- key=vkcoin_token)
- @merchant.payment_handler(handler_type='callback')
- def payment_received(data):
- user_id = int(data['user_from'])
- amount = float(data['amount']) / 1000
- usercheck = checkuser(user_id)
- if usercheck != None:
- api.messages.send(
- user_id=user_id,
- random_id=random.randint(-2147483648, 2147483647),
- message=f'{usercheck[4]}, ваш баланс пополнен на сумму: {int(amount)} coins🤑'
- )
- api.messages.send(
- user_id=user_id,
- random_id=random.randint(-2147483648, 2147483647),
- sticker_id=96
- )
- cursor.execute("""UPDATE users SET balance=%s WHERE id=%s""", (usercheck[1] + amount, user_id))
- conn.commit()
- callback.run_websocket()
- def keyboardout():
- keyboard = VkKeyboardMarkup(stack_size=2)
- keyboard.row(
- VkKeyboardButton('Кейсы',
- color='primary', # Можно использовать как VkColor так и текст
- payload={'command': 'cases'}),
- VkKeyboardButton('Баланс',
- color='primary',
- payload={'command': 'balance'})
- )
- keyboard.row(
- VkKeyboardButton('Пополнить',
- color='positive', # Можно использовать как VkColor так и текст
- payload={'command': 'upbal'}),
- VkKeyboardButton('Вывести VKC',
- color='negative',
- payload={'command': 'downbal'})
- )
- return keyboard()
- def caseskeyboard():
- keyboard = VkKeyboardMarkup(stack_size=3)
- keyboard.row(
- VkKeyboardButton('Кейс Маленький',
- color='primary', # Можно использовать как VkColor так и текст
- payload={'command': 'bomjcase'}),
- VkKeyboardButton('Кейс Средний',
- color='primary',
- payload={'command': 'noobcase'}),
- VkKeyboardButton('Кейс Большой',
- color='primary',
- payload={'command': 'majorcase'})
- )
- keyboard.row(
- VkKeyboardButton('Кейс Удача',
- color='primary', # Можно использовать как VkColor так и текст
- payload={'command': 'luckycase'}),
- )
- keyboard.add(VkKeyboardButton(
- label='Назад',
- color=VkColor.NEGATIVE,
- payload={'command': 'back'}
- ))
- return keyboard()
- def opencase():
- keyboard = VkKeyboardMarkup(stack_size=3)
- keyboard.add(VkKeyboardButton(
- label='Открыть',
- color=VkColor.POSITIVE,
- payload={'command': 'open'}
- ))
- keyboard.add(VkKeyboardButton(
- label='Назад',
- color=VkColor.NEGATIVE,
- payload={'command': 'back'}
- ))
- return keyboard()
- def checkuser(userid):
- cursor.execute(f"""SELECT * FROM users WHERE id={userid}""")
- temp = cursor.fetchone()
- return temp
- @bot.message_handler(command='bomjcase')
- def infocase(m):
- cursor.execute("""UPDATE users SET casenumber='%s' WHERE id='%s'""",(1,m.from_id))
- conn.commit()
- cursor.execute("""SELECT * FROM cases WHERE id=1""")
- fetch = cursor.fetchone()
- m.answer(
- message=f'Вы выбрали кейс "Маленький":\n\nСтоимость открытия кейса: {fetch[2]}\n\nВы можете выиграть: {fetch[3]}',
- keyboard=opencase()
- )
- return
- @bot.message_handler(command='noobcase')
- def checkcase(m):
- cursor.execute("""UPDATE users SET casenumber='%s' WHERE id='%s'""", (2, m.from_id))
- conn.commit()
- cursor.execute("""SELECT * FROM cases WHERE id=2""")
- fetch = cursor.fetchone()
- m.answer(
- message=f'Вы выбрали кейс "Средний":\n\nСтоимость открытия кейса: {fetch[2]}\n\nВы можете выиграть: {fetch[3]}',
- keyboard=opencase()
- )
- return
- @bot.message_handler(command='majorcase')
- def checkcase(m):
- cursor.execute("""UPDATE users SET casenumber='%s' WHERE id='%s'""", (3, m.from_id))
- conn.commit()
- cursor.execute("""SELECT * FROM cases WHERE id=3""")
- fetch = cursor.fetchone()
- m.answer(
- message=f'Вы выбрали кейс "Большой":\n\nСтоимость открытия кейса: {fetch[2]}\n\nВы можете выиграть: {fetch[3]}',
- keyboard=opencase()
- )
- return
- @bot.message_handler(command='luckycase')
- def checkcase(m):
- cursor.execute("""UPDATE users SET casenumber='%s' WHERE id='%s'""", (4, m.from_id))
- conn.commit()
- cursor.execute("""SELECT * FROM cases WHERE id=4""")
- fetch = cursor.fetchone()
- m.answer(
- message=f'Вы выбрали кейс "Удача":\n\nСтоимость открытия кейса: {fetch[2]}\n\nВы можете выиграть: {fetch[3]}',
- keyboard=opencase()
- )
- return
- @bot.message_handler(command='cases')
- def checkcase(m):
- name = checkuser(m.from_id)[4]
- m.answer(
- message=f'Кейсы, здесь информация о них: \n~~~~~~~~~~~~~~~~~~~~~~\n🗃 Кейс "Маленький"\n 💰 Стоимость - 1000\n🤑 Возможно выиграть: 100,500,750, 1000, 2000, 3500, 5000\n~~~~~~~~~~~~~~~~~~~~~~\n🗃 Кейс "Средний" \n💰 Стоимость - 5000\n🤑 Возможно выиграть: 2000,3500,4000, 5000, 6500, 7500, 10000\n~~~~~~~~~~~~~~~~~~~~~~\n🗃 Кейс "Большой"\n 💰 Стоимость - 10000\n🤑 Возможно выиграть: 5000,7500,9000, 11500, 12500, 14500, 15000\n~~~~~~~~~~~~~~~~~~~~~~\n🗃 Кейс "Удача" \n💰 Стоимость - 100000\n🤑 Возможно выиграть: 65000,75000,90000, 115000, 125000, 145000, 150000 \n~~~~~~~~~~~~~~~~~~~~~~',
- keyboard=caseskeyboard()
- )
- return
- @bot.message_handler(command='open')
- def oppencase(m):
- userchecker = checkuser(m.from_id)
- name = userchecker[4]
- case = userchecker[5]
- cursor.execute("""SELECT * FROM cases WHERE id=%s""",(str(case)))
- fetch = cursor.fetchone()
- if userchecker[1] >= fetch[2]:
- posswin = str(fetch[3]).split(',')
- print(posswin)
- randomchoice = random.choice(posswin)
- cursor.execute("""UPDATE users SET balance='%s' WHERE id='%s'""", ((int(userchecker[1])-int(fetch[2]))+int(randomchoice), m.from_id))
- useless = checkuser(m.from_id)
- m.answer(
- message=f'{name}, поздравляю вы выиграли: {randomchoice},ваш баланс равен: {int(useless[1])}'
- )
- conn.commit()
- else:
- m.answer(
- message=f'{name}, у вас недостаточно средств для покупки этого кейса!',
- keyboard = keyboardout()
- )
- @bot.message_handler(command='back')
- def back(m):
- name = checkuser(m.from_id)[4]
- cursor.execute("""UPDATE users SET casenumber='%s' WHERE id='%s'""", (0, m.from_id))
- conn.commit()
- m.answer(
- message=f'{name}, вы уверены что хотели назад?',
- keyboard=keyboardout()
- )
- return
- @bot.message_handler(command='balance')
- def givebalance(m):
- useless = checkuser(m.from_id)
- name = useless[4]
- m.answer(
- message=f'{name}, вот ваш баланс: {int(useless[1])} Coins',
- keyboard=keyboardout()
- )
- return
- @bot.message_handler(command='upbal')
- def upbalance(m):
- name = checkuser(m.from_id)[4]
- m.answer(
- message=f'Ссылка для пополнения баланса: {merchant.get_payment_url(amount=1000, free_amount=True)}',
- keyboard=keyboardout()
- )
- return
- @bot.message_handler(command='downbal')
- def downbalace(m):
- useless = checkuser(m.from_id)
- name = checkuser(m.from_id)[4]
- if int(useless[1]) <= 0:
- m.answer(
- message='Ваш баланс равен 0 по этому вы не можете вывести.',
- keyboard=keyboardout()
- )
- else:
- merchant.send_coins(m.from_id, int(checkuser(m.from_id)[1])*1000)
- cursor.execute(f"""UPDATE users SET balance=0 WHERE id='%s'""", (m.from_id,))
- conn.commit()
- m.answer(
- message='Баланс был успешно выведен!',
- keyboard=keyboardout()
- )
- @bot.message_handler()
- def checksfirstuser(m):
- temp = checkuser(m.from_id)
- res = api.users.get(user_ids=m.from_id)[0]
- name = res['first_name']
- inbase = name
- if temp != None:
- m.answer(
- message=f'{inbase}, бот не понял вашей команды',
- keyboard=keyboardout()
- )
- return
- if temp == None:
- m.answer(
- message=f'Добро пожаловать в нашего бота, {inbase}!',
- keyboard=keyboardout()
- )
- cursor.execute(f"""INSERT INTO users(id,name) VALUES ('{m.from_id}','{name}')""")
- conn.commit()
- return
- handler.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement