async def lp_startup(): api = UserApi.get_current() text = f'IDM multi LP запущен\n' \ f'Текущая версия: v{const.__version__}' version_rest = requests.get(const.VERSION_REST).json() if version_rest['version'] != const.__version__: text += f"\n\n Доступно обновление {version_rest['version']}\n" \ f"{version_rest['description']}\n" \ f"{const.GITHUB_LINK}" await api.messages.send(peer_id=await api.user_id, random_id=0, message=text)
async def _lp_startup(): api = UserApi.get_current() text = f'LP Started!\n' \ f'Loading' version_rest = requests.get(const.VERSION_REST).json() if version_rest['version'] != const.__version__: text += f"\n\n Доступно обновление {version_rest['version']}\n" \ f"{version_rest['description']}\n" \ f"{const.GITHUB_LINK}" await api.messages.send(peer_id=await api.user_id, random_id=0, message=text) await check_ping(database.secret_code)
async def send_request(request_data: dict): logger.logger.debug(f"Send request to server with data: {request_data}") api = UserApi.get_current() message = "" async with aiohttp.ClientSession(headers={"User-Agent": const.APP_USER_AGENT}) as session: async with session.post(const.CALLBACK_LINK, json=request_data) as resp: if resp.status != 200: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил кодом {resp.status}." else: data_json = await resp.json() if data_json['response'] == 'ok': return elif data_json['response'] == "error": if data_json.get('error_code') == 1: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Пустой запрос>>" elif data_json.get('error_code') == 2: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Неизвестный тип сигнала>>" elif data_json.get('error_code') == 3: message = ( f"⚠ Ошибка сервера IDM Multi. " f"Сервер, ответил: <<Пара пользователь/секрет не найдены>>" ) elif data_json.get('error_code') == 4: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Беседа не привязана>>" elif data_json.get('error_code') == 10: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Не удалось связать беседу>>" else: message = ( f"⚠ Ошибка сервера IDM Multi. " f"Сервер, ответил: <<Ошибка #{data_json.get('error_code')}>>" ) elif data_json['response'] == "vk_error": message = ( f"⚠ Ошибка сервера IDM Multi. " f"Сервер, ответил: " f"<<Ошибка VK #{data_json.get('error_code')} {data_json.get('error_message', '')}>>" ) if message: await api.messages.send( random_id=0, peer_id=await api.user_id, message=message )
async def _lp_startup(): api = UserApi.get_current() text = f'IDM multi LP запущен\n' \ f'Текущая версия: v{const.__version__}' version_rest = requests.get(const.VERSION_REST).json() if version_rest['version'] != const.__version__: text += f"\n\n Доступно обновление {version_rest['version']}\n" \ f"{version_rest['description']}\n" \ f"{const.GITHUB_LINK}" await api.messages.send( peer_id=await api.user_id, random_id=0, message=text ) async with aiohttp.ClientSession(headers={"User-Agent": const.APP_USER_AGENT}) as session: async with session.post("https://irisduty.ru/api/dutys/get_lp_info/", json={'access_token': database.tokens[0]}) as resp: response = await resp.json() if 'error' in response: await api.messages.send( peer_id=await api.user_id, random_id=0, message=f"⚠ Ошибка: {response['error']['detail']}" ) raise KeyboardInterrupt() else: if not response['response']['is_active']: await api.messages.send( peer_id=await api.user_id, random_id=0, message=f"⚠ Ошибка: дежурный не активен" ) raise KeyboardInterrupt() database.secret_code = response['response']['secret_code'] database.save() await check_ping(database.secret_code)
async def send_request(request_data: dict): global session api = UserApi.get_current() if session.closed: session = aiohttp.ClientSession() message = "" async with session.post(const.CALLBACK_LINK, json=request_data) as resp: if resp.status != 200: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил кодом {resp.status}." else: data_json = await resp.json() if data_json['response'] == 'ok': return elif data_json['response'] == "error": if data_json.get('error_code') == 1: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Пустой запрос>>" elif data_json.get('error_code') == 2: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Неизвестный тип сигнала>>" elif data_json.get('error_code') == 3: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Пара пользователь/секрет не найдены>>" elif data_json.get('error_code') == 4: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Беседа не привязана>>" elif data_json.get('error_code') == 10: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Не удалось связать беседу>>" else: message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Ошибка #{data_json.get('error_code')}>>" elif data_json['response'] == "vk_error": message = f"⚠ Ошибка сервера IDM Multi. Сервер, ответил: <<Ошибка VK #{data_json.get('error_code')} " \ f"{data_json.get('error_message', '')}>>" if message: await api.messages.send( random_id=0, peer_id=await api.user_id, message=message )
def __init__( self, tokens: Token = None, *, login: str = None, password: str = None, user_id: int = None, debug: typing.Union[str, bool] = True, loop: asyncio.AbstractEventLoop = None, expand_models: bool = True, mobile: bool = False, log_to_path: typing.Union[str, bool] = None, vbml_patcher: vbml.Patcher = None, mode: int = 234, only_asyncio_loop: bool = False, **context, ): self.__tokens = [tokens] if isinstance(tokens, str) else tokens self.context: dict = context if uvloop is not None: if not only_asyncio_loop: asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) if login and password: self.__tokens = self.get_tokens(login, password) self.loop = loop or asyncio.get_event_loop() self.__debug: bool = debug self._api: UserApi = UserApi(self.__tokens) self.mode = mode self._expand_models: bool = expand_models self._patcher: vbml.Patcher = vbml_patcher or vbml.Patcher( pattern="^{}$") self.user_id: typing.Optional[int] = user_id or self.get_id_by_token( self.__tokens[0]) self._api.user_id = user_id self.error_handler: VKErrorHandler = DefaultErrorHandler() UserApi.set_current(self._api) VKErrorHandler.set_current(self.error_handler) self.on: UserHandler = UserHandler() self.branch: ABCBranchGenerator = DictBranch() self.middleware: MiddlewareExecutor = MiddlewareExecutor() self.error_handler: VKErrorHandler = DefaultErrorHandler() self.deconstructed_handle: UserProcessor = UserProcessor( self.user_id, expand_models=expand_models) self._stop: bool = False self.status = UserStatus() if isinstance(debug, bool): debug = "INFO" if debug else "ERROR" self.logger = LoggerLevel(debug) logger.remove() logger.add( sys.stderr, colorize=True, format="<level>[<blue>VKBottle</blue>] {message}</level>", filter=self.logger, level=0, enqueue=mobile is False, ) if log_to_path: logger.add( "log_user_{time}.log" if log_to_path is True else log_to_path, rotation="20 MB", ) logger.info("Using JSON_MODULE - {}".format(USAGE)) logger.info("Using asyncio loop - {}".format( asyncio.get_event_loop_policy().__class__.__module__))
from vkbottle.api import UserApi api = UserApi.get_current() def get_params(obj: dict) -> dict: return {k: v for k, v in obj.items() if v is not None and k != "params"} async def edit(peer_id: int, msg_id: int, text: str, **params): locals().update(params) return await api.messages.edit(**get_params(locals()))
def api(self) -> UserApi: return UserApi.get_current()