async def call_on_init_handlers(self): for x in self.on_init_handlers: await self.call_async_safed(x, self) Logger.Nlog(f"Было загружено {len(self.plugins)} плагинов") return True
async def on_init(store): group_id = store.config.group_id Logger.Nlog( f"Плагин был загружен с group_id = {group_id} и названием {plugin.name}.\n" f"Хранилище плагина {plugin.ystore}\n" f"Системное хранилище {store}" ) # Мы заметили очень много весёлого да? Согласен, забавно
async def before_command(update, store): Logger.Nlog(f"Вау, пришло сообщение {update.text} от {update.from_id}") #Здесь хранилище будет уже сообщения. command = store.command if store.get("command", False) else None # Замечу почему так, бот регистрирует команды в определённую ячейку, этот же метод будет вызываться КАЖДОЕ сообщение # даже без команды, так что не стоит отсюда что-либо вызывать связанное с этим, также у store есть ещё args (аргументы) args = store.args if store.get("args", False) else None # Например в течении этого цикла пагинов, мы хотим чтобы перед каждым сообщением бот оставлял что-нибудь. store[ 'custom_message'] = "Пользователь, " # Теперь бот будет писать (Пользователь, <msg>) # Думаю здесь всё ясно, идём дальше return False # False - говорит о том, что надо продолжать исполнение, True - остановит же процесс.
async def call(): load_config() await db.Loader.load() global bot bot = Yui() bot_longpoll = VKLongPoll(bot) current_group_id = await bot_longpoll.request("groups.getById") bot_longpoll.group_id = current_group_id.response[0]['id'] store.config.group_id = current_group_id.response[0]['id'] await store.call_on_init_handlers() logger.Nlog("Приступаю к приёму сообщений!") await bot_longpoll.start()
def load_config(): config = None try: file = io.open('config.json', 'r', encoding="utf-8") config = json.loads(file.read()) file.close() except: traceback.print_exc() Logger.Elog("Произошла ошибка при открытии файла конфига!") exit() for var in need_values: vr = config.get(var, None) if vr == None: Logger.Elog(f"В конфиге не хватает значения {var} для работы бота") exit() store.config[var] = vr Logger.Nlog("Конфиг был загружен в хранилиище")