# # Copyright (C) 2021-2022 by TeamYukki@Github, < https://github.com/TeamYukki >. # # This file is part of < https://github.com/TeamYukki/YukkiMusicBot > project, # and is released under the "GNU v3.0 License Agreement". # Please see < https://github.com/TeamYukki/YukkiMusicBot/blob/master/LICENSE > # # All rights reserved. import random from YukkiMusic import userbot from YukkiMusic.core.mongo import mongodb db = mongodb.assistants assistantdict = {} async def get_client(assistant: int): if int(assistant) == 1: return userbot.one elif int(assistant) == 2: return userbot.two elif int(assistant) == 3: return userbot.three elif int(assistant) == 4: return userbot.four elif int(assistant) == 5: return userbot.five async def set_assistant(chat_id): from YukkiMusic.core.userbot import assistants ran_assistant = random.choice(assistants) assistantdict[chat_id] = ran_assistant await db.update_one( {"chat_id": chat_id}, {"$set": {"assistant": ran_assistant}}, upsert=True, ) userbot = await get_client(ran_assistant) return userbot async def get_assistant(chat_id: int) -> str: from YukkiMusic.core.userbot import assistants assistant = assistantdict.get(chat_id) if not assistant: dbassistant = await db.find_one({"chat_id": chat_id}) if not dbassistant: userbot = await set_assistant(chat_id) return userbot else: got_assis = dbassistant["assistant"] if got_assis in assistants: assistantdict[chat_id] = got_assis userbot = await get_client(got_assis) return userbot else: userbot = await set_assistant(chat_id) return userbot else: if assistant in assistants: userbot = await get_client(assistant) return userbot else: userbot = await set_assistant(chat_id) return userbot async def set_calls_assistant(chat_id): from YukkiMusic.core.userbot import assistants ran_assistant = random.choice(assistants) assistantdict[chat_id] = ran_assistant await db.update_one( {"chat_id": chat_id}, {"$set": {"assistant": ran_assistant}}, upsert=True, ) return ran_assistant async def group_assistant(self, chat_id: int) -> int: from YukkiMusic.core.userbot import assistants assistant = assistantdict.get(chat_id) if not assistant: dbassistant = await db.find_one({"chat_id": chat_id}) if not dbassistant: assis = await set_calls_assistant(chat_id) else: assis = dbassistant["assistant"] if assis in assistants: assistantdict[chat_id] = assis assis = assis else: assis = await set_calls_assistant(chat_id) else: if assistant in assistants: assis = assistant else: assis = await set_calls_assistant(chat_id) if int(assis) == 1: return self.one elif int(assis) == 2: return self.two elif int(assis) == 3: return self.three elif int(assis) == 4: return self.four elif int(assis) == 5: return self.five