Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vk_api
- from vk_api.longpoll import VkLongPoll, VkEventType
- from vk_api.keyboard import VkKeyboard, VkKeyboardColor
- from pymongo import MongoClient
- from random import randint, choice
- session = vk_api.VkApi(token="token")
- cluster = MongoClient("link on connect")
- collection = cluster.testdb.testcoll
- def send_message(user_id, message, keyboard=None):
- post = {
- "user_id": user_id,
- "message": message,
- "random_id": 0
- }
- if keyboard != None:
- post["keyboard"] = keyboard.get_keyboard()
- else:
- post = post
- session.method("messages.send", post)
- def menu(user_id):
- keyboard = VkKeyboard(one_time=True)
- buttons = ["๐ฅ account", "๐ช shop", "๐ฉ work"]
- buttons_color = [VkKeyboardColor.POSITIVE, VkKeyboardColor.DEFAULT, VkKeyboardColor.PRIMARY]
- if collection.count_documents({"_id": user_id}) != 0:
- buttons = buttons
- buttons_color = buttons_color
- for button, button_color in zip(buttons, buttons_color):
- keyboard.add_button(button.title(), color=button_color)
- if collection.count_documents({"_id": user_id}) == 0:
- keyboard.add_line()
- keyboard.add_button("Registration", color=VkKeyboardColor.NEGATIVE)
- return keyboard
- for event in VkLongPoll(session).listen():
- if event.type == VkEventType.MESSAGE_NEW and event.to_me:
- user_id = event.user_id
- text = event.text.lower()
- if text == "menu":
- send_message(user_id, "Hello, unknown user, choice an action", menu(user_id))
- elif text == "๐ฅ account":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- keyboard = VkKeyboard()
- keyboard.add_button("Back", color=VkKeyboardColor.NEGATIVE)
- account = collection.find_one({"_id": user_id})
- hearts = "โค๏ธ ๐งก ๐ ๐ ๐ ๐ ๐ค ๐ค".split(" ")
- conclusion = f"""
- {choice(hearts)} ID: {account["_id"]}
- ๐ฐ Balance: {account["balance"]}
- โฐ๏ธ Wood: {account["items"]["wood"]}
- ๐งฑ Stone: {account["items"]["stone"]}
- """
- send_message(user_id, conclusion, menu(user_id)) # Here the problems...
- elif text == "registration":
- if collection.count_documents({"_id": user_id}) == 0:
- post = {
- "_id": user_id,
- "balance": 1000,
- "xp": 0,
- "items": {
- "wood": 0,
- "stone": 0
- }
- }
- collection.insert_one(post)
- send_message(user_id, "You were successfully added to the system", menu(user_id))
- else:
- send_message(user_id, "You already registered in the system!", menu(user_id))
- elif text == "๐ฉ work":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- keyboard = VkKeyboard()
- buttons = ["earn", "back"]
- buttons_color = [VkKeyboardColor.PRIMARY, VkKeyboardColor.NEGATIVE]
- for button, button_color in zip(buttons, buttons_color):
- keyboard.add_button(button.title(), color=button_color)
- send_message(user_id, "Choice an action", keyboard)
- elif text == "earn":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- income = randint(100, 1000)
- collection.update_one({"_id": user_id}, {"$inc": {"balance": income}})
- send_message(user_id, f"You are successfully earned {income}")
- elif text == "back":
- send_message(user_id, "Choice an action", menu(user_id))
- elif text == "๐ช shop":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- keyboard = VkKeyboard()
- buttons = ["wood", "stone"]
- for button in buttons:
- keyboard.add_button(button.title())
- keyboard.add_line()
- keyboard.add_button("Back", color=VkKeyboardColor.NEGATIVE)
- send_message(user_id, "Wood - 100 ๐ต\nStone - 100 ๐ต", keyboard)
- elif text == "wood":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- balance = collection.find_one({"_id": user_id})["balance"]
- if balance <= 0:
- send_message(user_id, "Insufficient funds", menu(user_id))
- elif balance < 100:
- send_message(user_id, "Insufficient funds", menu(user_id))
- else:
- collection.update_one({"_id": user_id}, {"$inc": {"items.wood": 1, "balance": -100}})
- send_message(user_id, "You are successfully bought product")
- elif text == "stone":
- if collection.count_documents({"_id": user_id}) == 0:
- send_message(user_id, "You are not registered in the system...", menu(user_id))
- else:
- balance = collection.find_one({"_id": user_id})["balance"]
- if balance <= 0:
- send_message(user_id, "Insufficient funds", menu(user_id))
- elif balance < 100:
- send_message(user_id, "Insufficient funds", menu(user_id))
- else:
- collection.update_one({"_id": user_id}, {"$inc": {"items.stone": 1, "balance": -100}})
- send_message(user_id, "You are successfully bought product")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement