From 7f14a3cb9e6d39a04267aa39e9ac1756453450bf Mon Sep 17 00:00:00 2001 From: xtaodada Date: Thu, 18 Aug 2022 17:04:28 +0800 Subject: [PATCH] fix: join request --- efb_qq_plugin_go_cqhttp/GoCQHttp.py | 37 +++++++++++++++-------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/efb_qq_plugin_go_cqhttp/GoCQHttp.py b/efb_qq_plugin_go_cqhttp/GoCQHttp.py index 30eef47..b682c40 100644 --- a/efb_qq_plugin_go_cqhttp/GoCQHttp.py +++ b/efb_qq_plugin_go_cqhttp/GoCQHttp.py @@ -473,13 +473,13 @@ class GoCQHttp(BaseClient): @self.coolq_bot.on_request("group") async def handle_group_request(context: Event): self.logger.debug(repr(context)) + group_info = await self.get_group_info(context["group_id"]) context["uid_prefix"] = "group_request" - context["group_name"] = ("[Request]") + (await self.get_group_info(context["group_id"]))["group_name"] - context["group_id_orig"] = context["group_id"] + context["group_name"] = "[Request]" + group_info["group_name"] context["group_id"] = str(context["group_id"]) + "_notification" context["message_type"] = "group" context["event_description"] = "\u2139 New Group Join Request" - original_group = await self.get_group_info(context["group_id_orig"], False) + original_group = await self.get_group_info(context["group_id"], False) group_name = context["group_id"] if original_group is not None and "group_name" in original_group: group_name = original_group["group_name"] @@ -502,12 +502,12 @@ class GoCQHttp(BaseClient): context["user_id"], ) msg.text = "{} wants to join the group {}({}). \nHere is the comment: {}".format( - name, group_name, context["group_id_orig"], context["comment"] + name, group_name, context["group_id"], context["comment"] ) msg.commands = MessageCommands( [ MessageCommand( - name=("Accept"), + name="Accept", callable_name="process_group_request", kwargs={ "result": "accept", @@ -516,7 +516,7 @@ class GoCQHttp(BaseClient): }, ), MessageCommand( - name=("Decline"), + name="Decline", callable_name="process_group_request", kwargs={ "result": "decline", @@ -811,12 +811,13 @@ class GoCQHttp(BaseClient): raise CoolQDisconnectedException(("Unable to connect to CoolQ Client!" "Error Message:\n{}").format(str(e))) except aiocqhttp.Error as ex: api_ex = CoolQAPIFailureException( - ("CoolQ HTTP API encountered an error!\n" "Status Code:{} " "Return Code:{}").format( - ex.status_code, ex.retcode + "CoolQ HTTP API encountered an error!\nStatus Code:{} Return Code:{}".format( + ex.status_code if hasattr(ex, 'status_code') else "Unknown", + ex.retcode if hasattr(ex, 'retcode') else "Unknown" ) ) - api_ex.status_code = ex.status_code - api_ex.retcode = ex.retcode + api_ex.status_code = ex.status_code if hasattr(ex, 'status_code') else None + api_ex.retcode = ex.retcode if hasattr(ex, 'retcode') else None raise api_ex else: return res @@ -1028,20 +1029,20 @@ class GoCQHttp(BaseClient): ) ) - async def process_friend_request(self, result, flag): - res = "true" if result == "accept" else "false" + def process_friend_request(self, result, flag): + res = result == "accept" try: - await self.coolq_api_query("set_friend_add_request", approve=res, flag=flag) + self.coolq_bot.sync.set_friend_add_request(flag=flag, approve=res) except CoolQAPIFailureException as e: - return ("Failed to process request! Error Message:\n") + getattr(e, "message", repr(e)) + return "Failed to process request! Error Message:\n" + getattr(e, "message", repr(e)) return "Done" - async def process_group_request(self, result, flag, sub_type): - res = "true" if result == "accept" else "false" + def process_group_request(self, result, flag, sub_type): + res = result == "accept" try: - await self.coolq_api_query("set_group_add_request", approve=res, flag=flag, sub_type=sub_type) + self.coolq_bot.sync.set_group_add_request(flag=flag, approve=res, sub_type=sub_type) except CoolQAPIFailureException as e: - return ("Failed to process request! Error Message:\n") + getattr(e, "message", repr(e)) + return "Failed to process request! Error Message:\n" + getattr(e, "message", repr(e)) return "Done" async def async_download_file(self, context, download_url):