Lib.utils.Actions
操作
1""" 2操作 3""" 4 5import traceback 6 7from Lib.common import save_exc_dump 8from Lib.core import OnebotAPI, ThreadPool, ConfigManager 9from Lib.utils import QQRichText, Logger, QQDataCacher 10 11logger = Logger.get_logger() 12 13from typing import Generic, TypeVar, Union, Callable 14 15api = OnebotAPI.OnebotAPI() 16 17T = TypeVar("T") # 成功类型 18E = TypeVar("E") # 错误类型 19 20 21class Result(Generic[T, E]): 22 """ 23 结果类 24 """ 25 26 def __init__(self, value: Union[T, E], is_ok: bool): 27 self._value = value 28 self._is_ok = is_ok 29 30 @property 31 def is_ok(self) -> bool: 32 """ 33 判断是否成功 34 Returns: 35 是否成功 36 """ 37 return self._is_ok 38 39 @property 40 def is_err(self) -> bool: 41 """ 42 判断是否失败 43 Returns: 44 是否失败 45 """ 46 return not self._is_ok 47 48 def unwrap(self) -> T: 49 """ 50 获取结果(如果成功,否则触发异常) 51 Returns: 52 结果 53 """ 54 if self.is_ok: 55 return self._value 56 raise Exception(f"Called unwrap on an Err value: {self._value}") 57 58 def unwrap_err(self) -> E: 59 """ 60 获取错误(如果失败,否则触发异常) 61 Returns: 62 错误 63 """ 64 if self.is_err: 65 return self._value 66 raise Exception(f"Called unwrap_err on an Ok value: {self._value}") 67 68 def expect(self, message: str) -> T: 69 """ 70 获取结果(如果失败,否则触发异常) 71 Args: 72 message: 错误信息 73 Returns: 74 结果 75 """ 76 if self.is_ok: 77 return self._value 78 raise Exception(message) 79 80 81UnCalled = type("UnCalled", (), {}) 82 83 84class Action: 85 """ 86 Action基类,无实际用途,勿调用 87 """ 88 call_func = None 89 90 def __init__(self, *args, callback: Callable[[Result], ...] = None, **kwargs): 91 self._result: UnCalled | Result = UnCalled 92 self._async = None 93 self.callback = callback 94 self.args = args 95 self.kwargs = kwargs 96 97 def set_callback(self, callback: Callable[[Result], ...]): 98 """ 99 设置回调函数,如果Action已被调用则立即执行回调函数 100 Returns: 101 Action 102 """ 103 self.callback = callback 104 if self._result is not UnCalled: 105 try: 106 self.callback(self._result) 107 except Exception as e: 108 if ConfigManager.GlobalConfig().debug.save_dump: 109 dump_path = save_exc_dump(f"执行回调函数异常") 110 else: 111 dump_path = None 112 logger.warning(f"执行回调函数异常: {repr(e)}\n" 113 f"{traceback.format_exc()}" 114 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 115 return self 116 117 def call(self): 118 """ 119 调用Action 120 Returns: 121 Action 122 """ 123 try: 124 result = Result(self.call_func(*self.args, **self.kwargs), True) 125 except Exception as e: 126 result = Result(e, False) 127 self._result = result 128 try: 129 if self._result.is_ok: 130 self.logger(result.unwrap(), *self.args, **self.kwargs) 131 except Exception as e: 132 if ConfigManager.GlobalConfig().debug.save_dump: 133 dump_path = save_exc_dump(f"调用日志记录函数异常") 134 else: 135 dump_path = None 136 logger.warning(f"调用日志记录函数异常: {repr(e)}\n" 137 f"{traceback.format_exc()}" 138 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 139 if self.callback is not None: 140 try: 141 self.callback(self._result) 142 except Exception as e: 143 if ConfigManager.GlobalConfig().debug.save_dump: 144 dump_path = save_exc_dump(f"执行回调函数异常") 145 else: 146 dump_path = None 147 logger.warning(f"回调函数异常: {repr(e)}\n" 148 f"{traceback.format_exc()}" 149 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 150 return self 151 152 def logger(self, *args, **kwargs): 153 """ 154 当Action调用成功时调用此方法记录log 155 Args: 156 result: self.call_func返回的结果 157 *args: 传给self.call_func的参数 158 **kwargs: 传给self.call_func的参数 159 """ 160 pass 161 162 def get_result(self) -> Result: 163 """ 164 获取结果 165 Returns: 166 结果 167 """ 168 if self._async is not None: 169 self._async.result() 170 self._async = None 171 if self._result is UnCalled: 172 raise Exception("Action not called") 173 return self._result 174 175 def call_get_result(self): 176 """ 177 同步调用Action并获取结果 178 Returns: 179 结果 180 """ 181 self.call() 182 return self.get_result() 183 184 def call_async(self): 185 """ 186 异步调用Action 187 Returns: 188 Action 189 """ 190 191 @ThreadPool.async_task 192 def _call_async(): 193 return self.call() 194 195 self._async = _call_async() 196 return self 197 198 def wait_async(self): 199 """ 200 等待异步调用 201 Returns: 202 Action 203 """ 204 if self._async is None: 205 raise Exception("Action not called") 206 self._async.result() 207 return self 208 209 210class SendPrivateMsg(Action): 211 """ 212 发送私聊消息 213 """ 214 215 call_func = api.send_private_msg 216 217 def __init__(self, user_id: int, message: str | list[dict] | QQRichText.QQRichText, 218 callback: Callable[[Result], ...] = None): 219 """ 220 Args: 221 user_id (int): 对方 QQ 号 222 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 223 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 224 """ 225 if isinstance(message, QQRichText.QQRichText): 226 message = message.get_array() 227 super().__init__(user_id=user_id, message=message, callback=callback) 228 229 def logger(self, result, user_id: int, message: str | list[dict] | QQRichText.QQRichText): 230 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 231 f"发送消息 {message}({result['message_id']})") 232 233 234class SendGroupMsg(Action): 235 """ 236 发送群聊消息 237 """ 238 239 call_func = api.send_group_msg 240 241 def __init__(self, group_id: int, message: str | list[dict] | QQRichText.QQRichText, 242 callback: Callable[[Result], ...] = None): 243 """ 244 Args: 245 group_id (int): 群号 246 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 247 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 248 """ 249 if isinstance(message, QQRichText.QQRichText): 250 message = message.get_array() 251 super().__init__(group_id=group_id, message=message, callback=callback) 252 253 def logger(self, result, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 254 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 255 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})") 256 257 258class SendMsg(Action): 259 """ 260 发送消息 261 """ 262 263 call_func = api.send_msg 264 265 def __init__(self, user_id: int = -1, group_id: int = -1, message: str | list[dict] | QQRichText.QQRichText = "", 266 callback: Callable[[Result], ...] = None): 267 """ 268 Args: 269 user_id (int, optional): 对方 QQ 号(消息类型为 `private` 时需要). Defaults to -1. 270 group_id (int, optional): 群号(消息类型为 `group` 时需要). Defaults to -1. 271 message (str | list[dict] | QQRichText.QQRichText, optional): 要发送的内容. Defaults to "". 272 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 273 """ 274 if isinstance(message, QQRichText.QQRichText): 275 message = message.get_array() 276 277 if user_id != -1 and group_id != -1: 278 raise ValueError('user_id and group_id cannot be both not -1.') 279 if user_id == -1 and group_id == -1: 280 raise ValueError('user_id and group_id cannot be both -1.') 281 282 super().__init__(user_id=user_id, group_id=group_id, message=message, callback=callback) 283 284 def logger(self, result, user_id: int, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 285 if user_id != -1: 286 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 287 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})") 288 else: 289 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 290 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})") 291 292 293class DeleteMsg(Action): 294 """ 295 撤回消息 296 """ 297 298 call_func = api.delete_msg 299 300 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 301 """ 302 Args: 303 message_id (int): 消息 ID 304 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 305 """ 306 super().__init__(message_id=message_id, callback=callback) 307 308 def logger(self, result, message_id: int): 309 logger.info(f"撤回消息 {message_id}") 310 311 312class GetMsg(Action): 313 """ 314 获取消息 315 """ 316 317 call_func = api.get_msg 318 319 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 320 """ 321 Args: 322 message_id (int): 消息 ID 323 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 324 """ 325 super().__init__(message_id=message_id, callback=callback) 326 327 def logger(self, result, message_id: int): 328 logger.debug(f"获取消息 {message_id}") 329 330 331class GetForwardMsg(Action): 332 """ 333 获取合并转发消息 334 """ 335 336 call_func = api.get_forward_msg 337 338 def __init__(self, id: int, callback: Callable[[Result], ...] = None): 339 """ 340 Args: 341 id (int): 合并转发 ID 342 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 343 """ 344 super().__init__(id=id, callback=callback) 345 346 def logger(self, result, id: int): 347 logger.debug(f"获取合并转发消息 {id}") 348 349 350class SendLike(Action): 351 """ 352 发送好友赞 353 """ 354 355 call_func = api.send_like 356 357 def __init__(self, user_id: int, times: int = 1, callback: Callable[[Result], ...] = None): 358 """ 359 Args: 360 user_id (int): 对方 QQ 号 361 times (int, optional): 赞的次数,每个好友每天最多 10 次. Defaults to 1. 362 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 363 """ 364 super().__init__(user_id=user_id, times=times, callback=callback) 365 366 def logger(self, result, user_id: int, times: int): 367 logger.info(f"发送好友赞 {user_id} {times} 次") 368 369 370class SetGroupKick(Action): 371 """ 372 群组踢人 373 """ 374 375 call_func = api.set_group_kick 376 377 def __init__(self, group_id: int, user_id: int, reject_add_request: bool = False, 378 callback: Callable[[Result], ...] = None): 379 """ 380 Args: 381 group_id (int): 群号 382 user_id (int): 要踢的 QQ 号 383 reject_add_request (bool, optional): 拒绝此人的加群请求. Defaults to False. 384 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 385 """ 386 super().__init__(group_id=group_id, user_id=user_id, reject_add_request=reject_add_request, callback=callback) 387 388 def logger(self, result, group_id: int, user_id: int, reject_add_request: bool): 389 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 390 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 踢出群聊" 391 f"{'并拒绝此人加群请求' if reject_add_request else ''}") 392 393 394class SetGroupBan(Action): 395 """ 396 群组单人禁言 397 """ 398 399 call_func = api.set_group_ban 400 401 def __init__(self, group_id: int, user_id: int, duration: int = 30 * 60, callback: Callable[[Result], ...] = None): 402 """ 403 Args: 404 group_id (int): 群号 405 user_id (int): 要禁言的 QQ 号 406 duration (int, optional): 禁言时长,单位秒,0 表示取消禁言. Defaults to 30 * 60. 407 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 408 """ 409 super().__init__(group_id=group_id, user_id=user_id, duration=duration, callback=callback) 410 411 def logger(self, result, group_id: int, user_id: int, duration: int): 412 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 413 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 禁言 {duration} 秒") 414 415 416class SetGroupAnonymousBan(Action): 417 """ 418 群组匿名用户禁言 419 """ 420 421 call_func = api.set_group_anonymous_ban 422 423 def __init__(self, group_id: int, anonymous: dict = None, anonymous_flag: str = None, duration: int = 30 * 60, 424 callback: Callable[[Result], ...] = None): 425 """ 426 Args: 427 group_id (int): 群号 428 anonymous (dict, optional): 要禁言的匿名用户对象(群消息上报的 `anonymous` 字段). Defaults to None. 429 anonymous_flag (str, optional): 要禁言的匿名用户的 flag(需从群消息上报的数据中获得). Defaults to None. 430 duration (int, optional): 禁言时长,单位秒,无法取消匿名用户禁言. Defaults to 30 * 60. 431 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 432 """ 433 super().__init__(group_id=group_id, anonymous=anonymous, anonymous_flag=anonymous_flag, duration=duration, 434 callback=callback, **{'flag': anonymous_flag} if anonymous_flag else {}) 435 436 def logger(self, result, group_id: int, anonymous: dict, anonymous_flag: str, duration: int): 437 anonymous_str = f"{QQDataCacher.get_user_info(anonymous['id']).nickname}" if anonymous else "匿名用户" 438 anonymous_detail = f"({anonymous['id']}; flag: {anonymous_flag})" if anonymous else "" 439 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 440 f"内成员 {anonymous_str} {anonymous_detail} 禁言 {duration} 秒") 441 442 443class SetGroupWholeBan(Action): 444 """ 445 群组全员禁言 446 """ 447 448 call_func = api.set_group_whole_ban 449 450 def __init__(self, group_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 451 """ 452 Args: 453 group_id (int): 群号 454 enable (bool, optional): 是否禁言. Defaults to True. 455 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 456 """ 457 super().__init__(group_id=group_id, enable=enable, callback=callback) 458 459 def logger(self, result, group_id: int, enable: bool): 460 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 461 f"{'开启' if enable else '关闭'}全员禁言") 462 463 464class SetGroupAdmin(Action): 465 """ 466 设置群管理员 467 """ 468 469 call_func = api.set_group_admin 470 471 def __init__(self, group_id: int, user_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 472 """ 473 Args: 474 group_id (int): 群号 475 user_id (int): 要设置管理员的 QQ 号 476 enable (bool, optional): true 为设置,false 为取消. Defaults to True. 477 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 478 """ 479 super().__init__(group_id=group_id, user_id=user_id, enable=enable, callback=callback) 480 481 def logger(self, result, group_id: int, user_id: int, enable: bool): 482 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 483 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 484 f"{'设为' if enable else '取消设为'}管理员") 485 486 487class SetGroupCard(Action): 488 """ 489 设置群名片(群备注) 490 """ 491 492 call_func = api.set_group_card 493 494 def __init__(self, group_id: int, user_id: int, card: str = "", callback: Callable[[Result], ...] = None): 495 """ 496 Args: 497 group_id (int): 群号 498 user_id (int): 要设置的 QQ 号 499 card (str, optional): 群名片内容,不填或空字符串表示删除群名片. Defaults to "". 500 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 501 """ 502 super().__init__(group_id=group_id, user_id=user_id, card=card, callback=callback) 503 504 def logger(self, result, group_id: int, user_id: int, card: str): 505 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 506 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 507 f"{'设置群名片为' if card else '删除群名片'} {card}") 508 509 510class SetGroupLeave(Action): 511 """ 512 退出群组 513 """ 514 515 call_func = api.set_group_leave 516 517 def __init__(self, group_id: int, is_dismiss: bool = False, callback: Callable[[Result], ...] = None): 518 """ 519 Args: 520 group_id (int): 群号 521 is_dismiss (bool, optional): 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散. Defaults to False. 522 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 523 """ 524 super().__init__(group_id=group_id, is_dismiss=is_dismiss, callback=callback) 525 526 def logger(self, result, group_id: int, is_dismiss: bool): 527 logger.info(f"退出群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 528 f"{'并解散' if is_dismiss else ''}") 529 530 531class SetGroupSpecialTitle(Action): 532 """ 533 设置群组专属头衔 534 """ 535 536 call_func = api.set_group_special_title 537 538 def __init__(self, group_id: int, user_id: int, special_title: str = "", duration: int = -1, 539 callback: Callable[[Result], ...] = None): 540 """ 541 Args: 542 group_id (int): 群号 543 user_id (int): 要设置的 QQ 号 544 special_title (str, optional): 专属头衔,不填或空字符串表示删除专属头衔. Defaults to "". 545 duration (int, optional): 专属头衔有效期,单位秒,-1 表示永久. Defaults to -1. 546 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 547 """ 548 super().__init__(group_id=group_id, user_id=user_id, special_title=special_title, duration=duration, 549 callback=callback) 550 551 def logger(self, result, group_id: int, user_id: int, special_title: str, duration: int): 552 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 553 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 554 f"{'设置专属头衔为' if special_title else '删除专属头衔'} {special_title} " 555 ) 556 557 558class SetFriendAddRequest(Action): 559 """ 560 处理加好友请求 561 """ 562 563 call_func = api.set_friend_add_request 564 565 def __init__(self, flag: str, approve: bool = True, remark: str = "", callback: Callable[[Result], ...] = None): 566 """ 567 Args: 568 flag (str): 加好友请求的 flag(需从上报的数据中获得) 569 approve (bool, optional): 是否同意请求. Defaults to True. 570 remark (str, optional): 添加后的好友备注(仅在同意时有效). Defaults to "". 571 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 572 """ 573 super().__init__(flag=flag, approve=approve, remark=remark, callback=callback) 574 575 def logger(self, result, flag: str, approve: bool, remark: str): 576 logger.info(f"处理加好友请求 {'同意' if approve else '拒绝'} " 577 f"{'并设置备注为' if remark else ''} {remark}") 578 579 580class SetGroupAddRequest(Action): 581 """ 582 处理加群请求/邀请 583 """ 584 585 call_func = api.set_group_add_request 586 587 def __init__(self, flag: str, sub_type: str = "add", approve: bool = True, reason: str = "", 588 callback: Callable[[Result], ...] = None): 589 """ 590 Args: 591 flag (str): 加群请求的 flag(需从上报的数据中获得) 592 sub_type (str, optional): `add` 或 `invite`,请求类型(需要和上报消息中的 `sub_type` 字段相符). Defaults to "add". 593 approve (bool, optional): 是否同意请求/邀请. Defaults to True. 594 reason (str, optional): 拒绝理由(仅在拒绝时有效). Defaults to "". 595 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 596 """ 597 super().__init__(flag=flag, sub_type=sub_type, approve=approve, reason=reason, callback=callback) 598 599 def logger(self, result, flag: str, sub_type: str, approve: bool, reason: str): 600 logger.info(f"处理加群请求/邀请 {'同意' if approve else '拒绝'} " 601 f"{'并设置理由为' if reason else ''} {reason}") 602 603 604class GetLoginInfo(Action): 605 """ 606 获取登录号信息 607 """ 608 609 call_func = api.get_login_info 610 611 def __init__(self, callback: Callable[[Result], ...] = None): 612 """ 613 Args: 614 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 615 """ 616 super().__init__(callback=callback) 617 618 def logger(self, result): 619 logger.debug(f"获取登录号信息") 620 621 622class GetStrangerInfo(Action): 623 """ 624 获取陌生人信息 625 """ 626 627 call_func = api.get_stranger_info 628 629 def __init__(self, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 630 """ 631 Args: 632 user_id (int): QQ 号 633 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 634 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 635 """ 636 super().__init__(user_id=user_id, no_cache=no_cache, callback=callback) 637 638 def logger(self, result, user_id: int, no_cache: bool): 639 logger.debug(f"获取陌生人 {user_id} 信息") 640 641 642class GetFriendList(Action): 643 """ 644 获取好友列表 645 """ 646 647 call_func = api.get_friend_list 648 649 def __init__(self, callback: Callable[[Result], ...] = None): 650 """ 651 Args: 652 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 653 """ 654 super().__init__(callback=callback) 655 656 def logger(self, result): 657 logger.debug(f"获取好友列表") 658 659 660class GetGroupInfo(Action): 661 """ 662 获取群信息 663 """ 664 665 call_func = api.get_group_info 666 667 def __init__(self, group_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 668 """ 669 Args: 670 group_id (int): 群号 671 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 672 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 673 """ 674 super().__init__(group_id=group_id, no_cache=no_cache, callback=callback) 675 676 def logger(self, result, group_id: int, no_cache: bool): 677 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 信息") 678 679 680class GetGroupList(Action): 681 """ 682 获取群列表 683 """ 684 685 call_func = api.get_group_list 686 687 def __init__(self, callback: Callable[[Result], ...] = None): 688 """ 689 Args: 690 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 691 """ 692 super().__init__(callback=callback) 693 694 def logger(self, result): 695 logger.debug(f"获取群列表") 696 697 698class GetGroupMemberInfo(Action): 699 """ 700 获取群成员信息 701 """ 702 703 call_func = api.get_group_member_info 704 705 def __init__(self, group_id: int, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 706 """ 707 Args: 708 group_id (int): 群号 709 user_id (int): QQ 号 710 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 711 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 712 """ 713 super().__init__(group_id=group_id, user_id=user_id, no_cache=no_cache, callback=callback) 714 715 def logger(self, result, group_id: int, user_id: int, no_cache: bool): 716 logger.debug( 717 f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员 " 718 f"{QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 信息") 719 720 721class GetGroupMemberList(Action): 722 """ 723 获取群成员列表 724 """ 725 726 call_func = api.get_group_member_list 727 728 def __init__(self, group_id: int, callback: Callable[[Result], ...] = None): 729 """ 730 Args: 731 group_id (int): 群号 732 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 733 """ 734 super().__init__(group_id=group_id, callback=callback) 735 736 def logger(self, result, group_id: int): 737 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员列表") 738 739 740class GetGroupHonorInfo(Action): 741 """ 742 获取群荣誉信息 743 """ 744 745 call_func = api.get_group_honor_info 746 747 def __init__(self, group_id: int, type_: str = "all", callback: Callable[[Result], ...] = None): 748 """ 749 Args: 750 group_id (int): 群号 751 type_ (str, optional): 要获取的群荣誉类型,可传入 `talkative` `performer` `legend` `strong_newbie` `emotion` 752 以分别获取单个类型的群荣誉数据,或传入 `all` 获取所有数据. Defaults to "all". 753 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 754 """ 755 super().__init__(group_id=group_id, type_=type_, callback=callback) 756 757 def logger(self, result, group_id: int, type_: str): 758 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 荣誉信息, 类型: {type_}") 759 760 761class GetCookies(Action): 762 """ 763 获取 Cookies 764 """ 765 766 call_func = api.get_cookies 767 768 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 769 """ 770 Args: 771 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 772 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 773 """ 774 super().__init__(domain=domain, callback=callback) 775 776 def logger(self, result, domain: str): 777 logger.debug(f"获取 Cookies, domain: {domain}") 778 779 780class GetCsrfToken(Action): 781 """ 782 获取 CSRF Token 783 """ 784 785 call_func = api.get_csrf_token 786 787 def __init__(self, callback: Callable[[Result], ...] = None): 788 """ 789 Args: 790 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 791 """ 792 super().__init__(callback=callback) 793 794 def logger(self, result): 795 logger.debug(f"获取 CSRF Token") 796 797 798class GetCredentials(Action): 799 """ 800 获取 QQ 相关接口凭证 801 """ 802 803 call_func = api.get_credentials 804 805 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 806 """ 807 Args: 808 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 809 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 810 """ 811 super().__init__(domain=domain, callback=callback) 812 813 def logger(self, result, domain: str): 814 logger.debug(f"获取 QQ 相关接口凭证, domain: {domain}") 815 816 817class GetRecord(Action): 818 """ 819 获取语音 820 """ 821 822 call_func = api.get_record 823 824 def __init__(self, file: str, out_format: str = "mp3", out_file: str = "", 825 callback: Callable[[Result], ...] = None): 826 """ 827 Args: 828 file (str): 收到的语音文件名(消息段的 `file` 参数),如 `0B38145AA44505000B38145AA4450500.silk` 829 out_format (str, optional): 要转换到的格式,目前支持 830 `mp3`、`amr`、`wma`、`m4a`、`spx`、`ogg`、`wav`、`flac`. Defaults to "mp3". 831 out_file (str, optional): unused parameter. Defaults to "". 832 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 833 """ 834 super().__init__(file=file, out_format=out_format, out_file=out_file, callback=callback) 835 836 def logger(self, result, file: str, out_format: str, out_file: str): 837 logger.debug(f"获取语音文件: {file}, 转换格式: {out_format}") 838 839 840class GetImage(Action): 841 """ 842 获取图片 843 """ 844 845 call_func = api.get_image 846 847 def __init__(self, file: str, callback: Callable[[Result], ...] = None): 848 """ 849 Args: 850 file (str): 收到的图片文件名(消息段的 `file` 参数),如 `6B4DE3DFD1BD271E3297859D41C530F5.jpg` 851 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 852 """ 853 super().__init__(file=file, callback=callback) 854 855 def logger(self, result, file: str): 856 logger.debug(f"获取图片文件: {file}") 857 858 859class CanSendImage(Action): 860 """ 861 检查是否可以发送图片 862 """ 863 864 call_func = api.can_send_image 865 866 def __init__(self, callback: Callable[[Result], ...] = None): 867 """ 868 Args: 869 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 870 """ 871 super().__init__(callback=callback) 872 873 def logger(self, result): 874 logger.debug(f"检查是否可以发送图片") 875 876 877class CanSendRecord(Action): 878 """ 879 检查是否可以发送语音 880 """ 881 882 call_func = api.can_send_record 883 884 def __init__(self, callback: Callable[[Result], ...] = None): 885 """ 886 Args: 887 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 888 """ 889 super().__init__(callback=callback) 890 891 def logger(self, result): 892 logger.debug(f"检查是否可以发送语音") 893 894 895class GetStatus(Action): 896 """ 897 获取运行状态 898 """ 899 900 call_func = api.get_status 901 902 def __init__(self, callback: Callable[[Result], ...] = None): 903 """ 904 Args: 905 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 906 """ 907 super().__init__(callback=callback) 908 909 def logger(self, result): 910 logger.debug(f"获取Onebot运行状态") 911 912 913class GetVersionInfo(Action): 914 """ 915 获取版本信息 916 """ 917 918 call_func = api.get_version_info 919 920 def __init__(self, callback: Callable[[Result], ...] = None): 921 """ 922 Args: 923 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 924 """ 925 super().__init__(callback=callback) 926 927 def logger(self, result): 928 logger.debug(f"获取Onebot版本信息") 929 930 931class SetRestart(Action): 932 """ 933 重启 934 """ 935 936 call_func = api.set_restart 937 938 def __init__(self, delay: int = 0, callback: Callable[[Result], ...] = None): 939 """ 940 Args: 941 delay (int, optional): 要延迟的毫秒数. Defaults to 0. 942 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 943 """ 944 super().__init__(delay=delay, callback=callback) 945 946 def logger(self, result, delay: int): 947 logger.info(f"重启Onebot实现端, 延迟: {delay}ms") 948 949 950class CleanCache(Action): 951 """ 952 清理缓存 953 """ 954 955 call_func = api.clean_cache 956 957 def __init__(self, callback: Callable[[Result], ...] = None): 958 """ 959 Args: 960 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 961 """ 962 super().__init__(callback=callback) 963 964 def logger(self, result): 965 logger.debug(f"清理Onebot实现端缓存") 966 967 968""" 969使用示例: 970 971if __name__ == "__main__": 972 ThreadPool.init() 973 974 action = SendPrivateMsg(user_id=123456789, message="Hello World").call() 975 res = action.get_result() 976 977 # 下面二者等价 978 res = SendPrivateMsg(user_id=123456789, message="Hello World").call().get_result() 979 res = SendPrivateMsg(user_id=123456789, message="Hello World").call_get_result() 980 981 action = SendPrivateMsg(user_id=123456789, message="Hello World").call_async() 982 res = action.get_result() 983 984 if res.is_ok: 985 print(res.unwrap()) 986 else: 987 print(res.unwrap_err()) 988"""
22class Result(Generic[T, E]): 23 """ 24 结果类 25 """ 26 27 def __init__(self, value: Union[T, E], is_ok: bool): 28 self._value = value 29 self._is_ok = is_ok 30 31 @property 32 def is_ok(self) -> bool: 33 """ 34 判断是否成功 35 Returns: 36 是否成功 37 """ 38 return self._is_ok 39 40 @property 41 def is_err(self) -> bool: 42 """ 43 判断是否失败 44 Returns: 45 是否失败 46 """ 47 return not self._is_ok 48 49 def unwrap(self) -> T: 50 """ 51 获取结果(如果成功,否则触发异常) 52 Returns: 53 结果 54 """ 55 if self.is_ok: 56 return self._value 57 raise Exception(f"Called unwrap on an Err value: {self._value}") 58 59 def unwrap_err(self) -> E: 60 """ 61 获取错误(如果失败,否则触发异常) 62 Returns: 63 错误 64 """ 65 if self.is_err: 66 return self._value 67 raise Exception(f"Called unwrap_err on an Ok value: {self._value}") 68 69 def expect(self, message: str) -> T: 70 """ 71 获取结果(如果失败,否则触发异常) 72 Args: 73 message: 错误信息 74 Returns: 75 结果 76 """ 77 if self.is_ok: 78 return self._value 79 raise Exception(message)
结果类
31 @property 32 def is_ok(self) -> bool: 33 """ 34 判断是否成功 35 Returns: 36 是否成功 37 """ 38 return self._is_ok
判断是否成功
Returns:
是否成功
40 @property 41 def is_err(self) -> bool: 42 """ 43 判断是否失败 44 Returns: 45 是否失败 46 """ 47 return not self._is_ok
判断是否失败
Returns:
是否失败
49 def unwrap(self) -> T: 50 """ 51 获取结果(如果成功,否则触发异常) 52 Returns: 53 结果 54 """ 55 if self.is_ok: 56 return self._value 57 raise Exception(f"Called unwrap on an Err value: {self._value}")
获取结果(如果成功,否则触发异常)
Returns:
结果
85class Action: 86 """ 87 Action基类,无实际用途,勿调用 88 """ 89 call_func = None 90 91 def __init__(self, *args, callback: Callable[[Result], ...] = None, **kwargs): 92 self._result: UnCalled | Result = UnCalled 93 self._async = None 94 self.callback = callback 95 self.args = args 96 self.kwargs = kwargs 97 98 def set_callback(self, callback: Callable[[Result], ...]): 99 """ 100 设置回调函数,如果Action已被调用则立即执行回调函数 101 Returns: 102 Action 103 """ 104 self.callback = callback 105 if self._result is not UnCalled: 106 try: 107 self.callback(self._result) 108 except Exception as e: 109 if ConfigManager.GlobalConfig().debug.save_dump: 110 dump_path = save_exc_dump(f"执行回调函数异常") 111 else: 112 dump_path = None 113 logger.warning(f"执行回调函数异常: {repr(e)}\n" 114 f"{traceback.format_exc()}" 115 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 116 return self 117 118 def call(self): 119 """ 120 调用Action 121 Returns: 122 Action 123 """ 124 try: 125 result = Result(self.call_func(*self.args, **self.kwargs), True) 126 except Exception as e: 127 result = Result(e, False) 128 self._result = result 129 try: 130 if self._result.is_ok: 131 self.logger(result.unwrap(), *self.args, **self.kwargs) 132 except Exception as e: 133 if ConfigManager.GlobalConfig().debug.save_dump: 134 dump_path = save_exc_dump(f"调用日志记录函数异常") 135 else: 136 dump_path = None 137 logger.warning(f"调用日志记录函数异常: {repr(e)}\n" 138 f"{traceback.format_exc()}" 139 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 140 if self.callback is not None: 141 try: 142 self.callback(self._result) 143 except Exception as e: 144 if ConfigManager.GlobalConfig().debug.save_dump: 145 dump_path = save_exc_dump(f"执行回调函数异常") 146 else: 147 dump_path = None 148 logger.warning(f"回调函数异常: {repr(e)}\n" 149 f"{traceback.format_exc()}" 150 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 151 return self 152 153 def logger(self, *args, **kwargs): 154 """ 155 当Action调用成功时调用此方法记录log 156 Args: 157 result: self.call_func返回的结果 158 *args: 传给self.call_func的参数 159 **kwargs: 传给self.call_func的参数 160 """ 161 pass 162 163 def get_result(self) -> Result: 164 """ 165 获取结果 166 Returns: 167 结果 168 """ 169 if self._async is not None: 170 self._async.result() 171 self._async = None 172 if self._result is UnCalled: 173 raise Exception("Action not called") 174 return self._result 175 176 def call_get_result(self): 177 """ 178 同步调用Action并获取结果 179 Returns: 180 结果 181 """ 182 self.call() 183 return self.get_result() 184 185 def call_async(self): 186 """ 187 异步调用Action 188 Returns: 189 Action 190 """ 191 192 @ThreadPool.async_task 193 def _call_async(): 194 return self.call() 195 196 self._async = _call_async() 197 return self 198 199 def wait_async(self): 200 """ 201 等待异步调用 202 Returns: 203 Action 204 """ 205 if self._async is None: 206 raise Exception("Action not called") 207 self._async.result() 208 return self
Action基类,无实际用途,勿调用
98 def set_callback(self, callback: Callable[[Result], ...]): 99 """ 100 设置回调函数,如果Action已被调用则立即执行回调函数 101 Returns: 102 Action 103 """ 104 self.callback = callback 105 if self._result is not UnCalled: 106 try: 107 self.callback(self._result) 108 except Exception as e: 109 if ConfigManager.GlobalConfig().debug.save_dump: 110 dump_path = save_exc_dump(f"执行回调函数异常") 111 else: 112 dump_path = None 113 logger.warning(f"执行回调函数异常: {repr(e)}\n" 114 f"{traceback.format_exc()}" 115 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 116 return self
设置回调函数,如果Action已被调用则立即执行回调函数
Returns:
Action
118 def call(self): 119 """ 120 调用Action 121 Returns: 122 Action 123 """ 124 try: 125 result = Result(self.call_func(*self.args, **self.kwargs), True) 126 except Exception as e: 127 result = Result(e, False) 128 self._result = result 129 try: 130 if self._result.is_ok: 131 self.logger(result.unwrap(), *self.args, **self.kwargs) 132 except Exception as e: 133 if ConfigManager.GlobalConfig().debug.save_dump: 134 dump_path = save_exc_dump(f"调用日志记录函数异常") 135 else: 136 dump_path = None 137 logger.warning(f"调用日志记录函数异常: {repr(e)}\n" 138 f"{traceback.format_exc()}" 139 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 140 if self.callback is not None: 141 try: 142 self.callback(self._result) 143 except Exception as e: 144 if ConfigManager.GlobalConfig().debug.save_dump: 145 dump_path = save_exc_dump(f"执行回调函数异常") 146 else: 147 dump_path = None 148 logger.warning(f"回调函数异常: {repr(e)}\n" 149 f"{traceback.format_exc()}" 150 f"{f"\n已保存异常到 {dump_path}" if dump_path else ""}") 151 return self
调用Action
Returns:
Action
153 def logger(self, *args, **kwargs): 154 """ 155 当Action调用成功时调用此方法记录log 156 Args: 157 result: self.call_func返回的结果 158 *args: 传给self.call_func的参数 159 **kwargs: 传给self.call_func的参数 160 """ 161 pass
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
163 def get_result(self) -> Result: 164 """ 165 获取结果 166 Returns: 167 结果 168 """ 169 if self._async is not None: 170 self._async.result() 171 self._async = None 172 if self._result is UnCalled: 173 raise Exception("Action not called") 174 return self._result
获取结果
Returns:
结果
176 def call_get_result(self): 177 """ 178 同步调用Action并获取结果 179 Returns: 180 结果 181 """ 182 self.call() 183 return self.get_result()
同步调用Action并获取结果
Returns:
结果
211class SendPrivateMsg(Action): 212 """ 213 发送私聊消息 214 """ 215 216 call_func = api.send_private_msg 217 218 def __init__(self, user_id: int, message: str | list[dict] | QQRichText.QQRichText, 219 callback: Callable[[Result], ...] = None): 220 """ 221 Args: 222 user_id (int): 对方 QQ 号 223 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 224 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 225 """ 226 if isinstance(message, QQRichText.QQRichText): 227 message = message.get_array() 228 super().__init__(user_id=user_id, message=message, callback=callback) 229 230 def logger(self, result, user_id: int, message: str | list[dict] | QQRichText.QQRichText): 231 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 232 f"发送消息 {message}({result['message_id']})")
发送私聊消息
218 def __init__(self, user_id: int, message: str | list[dict] | QQRichText.QQRichText, 219 callback: Callable[[Result], ...] = None): 220 """ 221 Args: 222 user_id (int): 对方 QQ 号 223 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 224 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 225 """ 226 if isinstance(message, QQRichText.QQRichText): 227 message = message.get_array() 228 super().__init__(user_id=user_id, message=message, callback=callback)
Arguments:
- user_id (int): 对方 QQ 号
- message (str | list[dict] | QQRichText.QQRichText): 要发送的内容
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
138 def send_private_msg(self, user_id: int, message: str | list[dict]): 139 """ 140 发送私聊消息 141 Args: 142 user_id: 用户id 143 message: 消息内容 144 """ 145 data = { 146 "user_id": user_id, 147 "message": message 148 } 149 return self.get("/send_private_msg", data)
发送私聊消息
Arguments:
- user_id: 用户id
- message: 消息内容
230 def logger(self, result, user_id: int, message: str | list[dict] | QQRichText.QQRichText): 231 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 232 f"发送消息 {message}({result['message_id']})")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
235class SendGroupMsg(Action): 236 """ 237 发送群聊消息 238 """ 239 240 call_func = api.send_group_msg 241 242 def __init__(self, group_id: int, message: str | list[dict] | QQRichText.QQRichText, 243 callback: Callable[[Result], ...] = None): 244 """ 245 Args: 246 group_id (int): 群号 247 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 248 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 249 """ 250 if isinstance(message, QQRichText.QQRichText): 251 message = message.get_array() 252 super().__init__(group_id=group_id, message=message, callback=callback) 253 254 def logger(self, result, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 255 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 256 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})")
发送群聊消息
242 def __init__(self, group_id: int, message: str | list[dict] | QQRichText.QQRichText, 243 callback: Callable[[Result], ...] = None): 244 """ 245 Args: 246 group_id (int): 群号 247 message (str | list[dict] | QQRichText.QQRichText): 要发送的内容 248 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 249 """ 250 if isinstance(message, QQRichText.QQRichText): 251 message = message.get_array() 252 super().__init__(group_id=group_id, message=message, callback=callback)
Arguments:
- group_id (int): 群号
- message (str | list[dict] | QQRichText.QQRichText): 要发送的内容
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
151 def send_group_msg(self, group_id: int, message: str | list[dict]): 152 """ 153 发送群消息 154 Args: 155 group_id: 群号 156 message: 消息内容 157 """ 158 data = { 159 "group_id": group_id, 160 "message": message 161 } 162 return self.get("/send_group_msg", data)
发送群消息
Arguments:
- group_id: 群号
- message: 消息内容
254 def logger(self, result, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 255 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 256 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
259class SendMsg(Action): 260 """ 261 发送消息 262 """ 263 264 call_func = api.send_msg 265 266 def __init__(self, user_id: int = -1, group_id: int = -1, message: str | list[dict] | QQRichText.QQRichText = "", 267 callback: Callable[[Result], ...] = None): 268 """ 269 Args: 270 user_id (int, optional): 对方 QQ 号(消息类型为 `private` 时需要). Defaults to -1. 271 group_id (int, optional): 群号(消息类型为 `group` 时需要). Defaults to -1. 272 message (str | list[dict] | QQRichText.QQRichText, optional): 要发送的内容. Defaults to "". 273 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 274 """ 275 if isinstance(message, QQRichText.QQRichText): 276 message = message.get_array() 277 278 if user_id != -1 and group_id != -1: 279 raise ValueError('user_id and group_id cannot be both not -1.') 280 if user_id == -1 and group_id == -1: 281 raise ValueError('user_id and group_id cannot be both -1.') 282 283 super().__init__(user_id=user_id, group_id=group_id, message=message, callback=callback) 284 285 def logger(self, result, user_id: int, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 286 if user_id != -1: 287 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 288 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})") 289 else: 290 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 291 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})")
发送消息
266 def __init__(self, user_id: int = -1, group_id: int = -1, message: str | list[dict] | QQRichText.QQRichText = "", 267 callback: Callable[[Result], ...] = None): 268 """ 269 Args: 270 user_id (int, optional): 对方 QQ 号(消息类型为 `private` 时需要). Defaults to -1. 271 group_id (int, optional): 群号(消息类型为 `group` 时需要). Defaults to -1. 272 message (str | list[dict] | QQRichText.QQRichText, optional): 要发送的内容. Defaults to "". 273 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 274 """ 275 if isinstance(message, QQRichText.QQRichText): 276 message = message.get_array() 277 278 if user_id != -1 and group_id != -1: 279 raise ValueError('user_id and group_id cannot be both not -1.') 280 if user_id == -1 and group_id == -1: 281 raise ValueError('user_id and group_id cannot be both -1.') 282 283 super().__init__(user_id=user_id, group_id=group_id, message=message, callback=callback)
Arguments:
- user_id (int, optional): 对方 QQ 号(消息类型为
private
时需要). Defaults to -1. - group_id (int, optional): 群号(消息类型为
group
时需要). Defaults to -1. - message (str | list[dict] | QQRichText.QQRichText, optional): 要发送的内容. Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
164 def send_msg(self, user_id: int = -1, group_id: int = -1, message: str | list[dict] = ""): 165 """ 166 发送消息 167 Args: 168 user_id: 用户id 169 group_id: 群号 170 message: 消息内容 171 """ 172 if user_id != -1 and group_id != -1: 173 raise ValueError('user_id and group_id cannot be both not -1.') 174 if user_id == -1 and group_id == -1: 175 raise ValueError('user_id and group_id cannot be both -1.') 176 if user_id != -1: 177 return self.send_private_msg(user_id, message) 178 elif group_id != -1: 179 return self.send_group_msg(group_id, message) 180 else: 181 raise ValueError('user_id and group_id cannot be both -1.')
发送消息
Arguments:
- user_id: 用户id
- group_id: 群号
- message: 消息内容
285 def logger(self, result, user_id: int, group_id: int, message: str | list[dict] | QQRichText.QQRichText): 286 if user_id != -1: 287 logger.info(f"向 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 288 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})") 289 else: 290 logger.info(f"向群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 291 f"发送消息 {QQRichText.QQRichText(message)}({result['message_id']})")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
294class DeleteMsg(Action): 295 """ 296 撤回消息 297 """ 298 299 call_func = api.delete_msg 300 301 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 302 """ 303 Args: 304 message_id (int): 消息 ID 305 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 306 """ 307 super().__init__(message_id=message_id, callback=callback) 308 309 def logger(self, result, message_id: int): 310 logger.info(f"撤回消息 {message_id}")
撤回消息
301 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 302 """ 303 Args: 304 message_id (int): 消息 ID 305 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 306 """ 307 super().__init__(message_id=message_id, callback=callback)
Arguments:
- message_id (int): 消息 ID
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
183 def delete_msg(self, message_id: int): 184 """ 185 删除消息 186 Args: 187 message_id: 消息id 188 """ 189 data = { 190 "message_id": message_id 191 } 192 return self.get("/delete_msg", data)
删除消息
Arguments:
- message_id: 消息id
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
313class GetMsg(Action): 314 """ 315 获取消息 316 """ 317 318 call_func = api.get_msg 319 320 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 321 """ 322 Args: 323 message_id (int): 消息 ID 324 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 325 """ 326 super().__init__(message_id=message_id, callback=callback) 327 328 def logger(self, result, message_id: int): 329 logger.debug(f"获取消息 {message_id}")
获取消息
320 def __init__(self, message_id: int, callback: Callable[[Result], ...] = None): 321 """ 322 Args: 323 message_id (int): 消息 ID 324 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 325 """ 326 super().__init__(message_id=message_id, callback=callback)
Arguments:
- message_id (int): 消息 ID
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
194 def get_msg(self, message_id: int): 195 """ 196 获取消息 197 Args: 198 message_id: 消息id 199 """ 200 data = { 201 "message_id": message_id 202 } 203 return self.get("/get_msg", data)
获取消息
Arguments:
- message_id: 消息id
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
332class GetForwardMsg(Action): 333 """ 334 获取合并转发消息 335 """ 336 337 call_func = api.get_forward_msg 338 339 def __init__(self, id: int, callback: Callable[[Result], ...] = None): 340 """ 341 Args: 342 id (int): 合并转发 ID 343 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 344 """ 345 super().__init__(id=id, callback=callback) 346 347 def logger(self, result, id: int): 348 logger.debug(f"获取合并转发消息 {id}")
获取合并转发消息
339 def __init__(self, id: int, callback: Callable[[Result], ...] = None): 340 """ 341 Args: 342 id (int): 合并转发 ID 343 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 344 """ 345 super().__init__(id=id, callback=callback)
Arguments:
- id (int): 合并转发 ID
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
205 def get_forward_msg(self, id: int): 206 """ 207 获取合并转发消息 208 Args: 209 id: 合并转发id 210 """ 211 data = { 212 "id": id 213 } 214 return self.get("/get_forward_msg", data)
获取合并转发消息
Arguments:
- id: 合并转发id
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
351class SendLike(Action): 352 """ 353 发送好友赞 354 """ 355 356 call_func = api.send_like 357 358 def __init__(self, user_id: int, times: int = 1, callback: Callable[[Result], ...] = None): 359 """ 360 Args: 361 user_id (int): 对方 QQ 号 362 times (int, optional): 赞的次数,每个好友每天最多 10 次. Defaults to 1. 363 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 364 """ 365 super().__init__(user_id=user_id, times=times, callback=callback) 366 367 def logger(self, result, user_id: int, times: int): 368 logger.info(f"发送好友赞 {user_id} {times} 次")
发送好友赞
358 def __init__(self, user_id: int, times: int = 1, callback: Callable[[Result], ...] = None): 359 """ 360 Args: 361 user_id (int): 对方 QQ 号 362 times (int, optional): 赞的次数,每个好友每天最多 10 次. Defaults to 1. 363 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 364 """ 365 super().__init__(user_id=user_id, times=times, callback=callback)
Arguments:
- user_id (int): 对方 QQ 号
- times (int, optional): 赞的次数,每个好友每天最多 10 次. Defaults to 1.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
216 def send_like(self, user_id: int, times: int = 1): 217 """ 218 发送点赞 219 Args: 220 user_id: 用户id 221 times: 点赞次数 222 """ 223 data = { 224 "user_id": user_id, 225 "times": times 226 } 227 return self.get("/send_like", data)
发送点赞
Arguments:
- user_id: 用户id
- times: 点赞次数
367 def logger(self, result, user_id: int, times: int): 368 logger.info(f"发送好友赞 {user_id} {times} 次")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
371class SetGroupKick(Action): 372 """ 373 群组踢人 374 """ 375 376 call_func = api.set_group_kick 377 378 def __init__(self, group_id: int, user_id: int, reject_add_request: bool = False, 379 callback: Callable[[Result], ...] = None): 380 """ 381 Args: 382 group_id (int): 群号 383 user_id (int): 要踢的 QQ 号 384 reject_add_request (bool, optional): 拒绝此人的加群请求. Defaults to False. 385 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 386 """ 387 super().__init__(group_id=group_id, user_id=user_id, reject_add_request=reject_add_request, callback=callback) 388 389 def logger(self, result, group_id: int, user_id: int, reject_add_request: bool): 390 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 391 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 踢出群聊" 392 f"{'并拒绝此人加群请求' if reject_add_request else ''}")
群组踢人
378 def __init__(self, group_id: int, user_id: int, reject_add_request: bool = False, 379 callback: Callable[[Result], ...] = None): 380 """ 381 Args: 382 group_id (int): 群号 383 user_id (int): 要踢的 QQ 号 384 reject_add_request (bool, optional): 拒绝此人的加群请求. Defaults to False. 385 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 386 """ 387 super().__init__(group_id=group_id, user_id=user_id, reject_add_request=reject_add_request, callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): 要踢的 QQ 号
- reject_add_request (bool, optional): 拒绝此人的加群请求. Defaults to False.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
229 def set_group_kick(self, group_id: int, user_id: int, reject_add_request: bool = False): 230 """ 231 群组踢人 232 Args: 233 group_id: 群号 234 user_id: 用户id 235 reject_add_request: 拒绝加群请求 236 """ 237 data = { 238 "group_id": group_id, 239 "user_id": user_id, 240 "reject_add_request": reject_add_request 241 } 242 return self.get("/set_group_kick", data)
群组踢人
Arguments:
- group_id: 群号
- user_id: 用户id
- reject_add_request: 拒绝加群请求
389 def logger(self, result, group_id: int, user_id: int, reject_add_request: bool): 390 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 391 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 踢出群聊" 392 f"{'并拒绝此人加群请求' if reject_add_request else ''}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
395class SetGroupBan(Action): 396 """ 397 群组单人禁言 398 """ 399 400 call_func = api.set_group_ban 401 402 def __init__(self, group_id: int, user_id: int, duration: int = 30 * 60, callback: Callable[[Result], ...] = None): 403 """ 404 Args: 405 group_id (int): 群号 406 user_id (int): 要禁言的 QQ 号 407 duration (int, optional): 禁言时长,单位秒,0 表示取消禁言. Defaults to 30 * 60. 408 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 409 """ 410 super().__init__(group_id=group_id, user_id=user_id, duration=duration, callback=callback) 411 412 def logger(self, result, group_id: int, user_id: int, duration: int): 413 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 414 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 禁言 {duration} 秒")
群组单人禁言
402 def __init__(self, group_id: int, user_id: int, duration: int = 30 * 60, callback: Callable[[Result], ...] = None): 403 """ 404 Args: 405 group_id (int): 群号 406 user_id (int): 要禁言的 QQ 号 407 duration (int, optional): 禁言时长,单位秒,0 表示取消禁言. Defaults to 30 * 60. 408 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 409 """ 410 super().__init__(group_id=group_id, user_id=user_id, duration=duration, callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): 要禁言的 QQ 号
- duration (int, optional): 禁言时长,单位秒,0 表示取消禁言. Defaults to 30 * 60.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
244 def set_group_ban(self, group_id: int, user_id: int, duration: int = 30 * 60): 245 """ 246 群组单人禁言 247 Args: 248 group_id: 群号 249 user_id: 用户id 250 duration: 禁言时长,单位秒,0 表示取消禁言 251 """ 252 data = { 253 "group_id": group_id, 254 "user_id": user_id, 255 "duration": duration 256 } 257 return self.get("/set_group_ban", data)
群组单人禁言
Arguments:
- group_id: 群号
- user_id: 用户id
- duration: 禁言时长,单位秒,0 表示取消禁言
412 def logger(self, result, group_id: int, user_id: int, duration: int): 413 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 414 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 禁言 {duration} 秒")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
417class SetGroupAnonymousBan(Action): 418 """ 419 群组匿名用户禁言 420 """ 421 422 call_func = api.set_group_anonymous_ban 423 424 def __init__(self, group_id: int, anonymous: dict = None, anonymous_flag: str = None, duration: int = 30 * 60, 425 callback: Callable[[Result], ...] = None): 426 """ 427 Args: 428 group_id (int): 群号 429 anonymous (dict, optional): 要禁言的匿名用户对象(群消息上报的 `anonymous` 字段). Defaults to None. 430 anonymous_flag (str, optional): 要禁言的匿名用户的 flag(需从群消息上报的数据中获得). Defaults to None. 431 duration (int, optional): 禁言时长,单位秒,无法取消匿名用户禁言. Defaults to 30 * 60. 432 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 433 """ 434 super().__init__(group_id=group_id, anonymous=anonymous, anonymous_flag=anonymous_flag, duration=duration, 435 callback=callback, **{'flag': anonymous_flag} if anonymous_flag else {}) 436 437 def logger(self, result, group_id: int, anonymous: dict, anonymous_flag: str, duration: int): 438 anonymous_str = f"{QQDataCacher.get_user_info(anonymous['id']).nickname}" if anonymous else "匿名用户" 439 anonymous_detail = f"({anonymous['id']}; flag: {anonymous_flag})" if anonymous else "" 440 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 441 f"内成员 {anonymous_str} {anonymous_detail} 禁言 {duration} 秒")
群组匿名用户禁言
424 def __init__(self, group_id: int, anonymous: dict = None, anonymous_flag: str = None, duration: int = 30 * 60, 425 callback: Callable[[Result], ...] = None): 426 """ 427 Args: 428 group_id (int): 群号 429 anonymous (dict, optional): 要禁言的匿名用户对象(群消息上报的 `anonymous` 字段). Defaults to None. 430 anonymous_flag (str, optional): 要禁言的匿名用户的 flag(需从群消息上报的数据中获得). Defaults to None. 431 duration (int, optional): 禁言时长,单位秒,无法取消匿名用户禁言. Defaults to 30 * 60. 432 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 433 """ 434 super().__init__(group_id=group_id, anonymous=anonymous, anonymous_flag=anonymous_flag, duration=duration, 435 callback=callback, **{'flag': anonymous_flag} if anonymous_flag else {})
Arguments:
- group_id (int): 群号
- anonymous (dict, optional): 要禁言的匿名用户对象(群消息上报的
anonymous
字段). Defaults to None. - anonymous_flag (str, optional): 要禁言的匿名用户的 flag(需从群消息上报的数据中获得). Defaults to None.
- duration (int, optional): 禁言时长,单位秒,无法取消匿名用户禁言. Defaults to 30 * 60.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
259 def set_group_anonymous_ban(self, group_id: int, anonymous: dict, duration: int = 30 * 60): 260 """ 261 群组匿名用户禁言 262 Args: 263 group_id: 群号 264 anonymous: 匿名用户对象 265 duration: 禁言时长,单位秒,无法取消禁言 266 """ 267 data = { 268 "group_id": group_id, 269 "anonymous": anonymous, 270 "duration": duration 271 } 272 return self.get("/set_group_anonymous_ban", data)
群组匿名用户禁言
Arguments:
- group_id: 群号
- anonymous: 匿名用户对象
- duration: 禁言时长,单位秒,无法取消禁言
437 def logger(self, result, group_id: int, anonymous: dict, anonymous_flag: str, duration: int): 438 anonymous_str = f"{QQDataCacher.get_user_info(anonymous['id']).nickname}" if anonymous else "匿名用户" 439 anonymous_detail = f"({anonymous['id']}; flag: {anonymous_flag})" if anonymous else "" 440 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 441 f"内成员 {anonymous_str} {anonymous_detail} 禁言 {duration} 秒")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
444class SetGroupWholeBan(Action): 445 """ 446 群组全员禁言 447 """ 448 449 call_func = api.set_group_whole_ban 450 451 def __init__(self, group_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 452 """ 453 Args: 454 group_id (int): 群号 455 enable (bool, optional): 是否禁言. Defaults to True. 456 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 457 """ 458 super().__init__(group_id=group_id, enable=enable, callback=callback) 459 460 def logger(self, result, group_id: int, enable: bool): 461 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 462 f"{'开启' if enable else '关闭'}全员禁言")
群组全员禁言
451 def __init__(self, group_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 452 """ 453 Args: 454 group_id (int): 群号 455 enable (bool, optional): 是否禁言. Defaults to True. 456 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 457 """ 458 super().__init__(group_id=group_id, enable=enable, callback=callback)
Arguments:
- group_id (int): 群号
- enable (bool, optional): 是否禁言. Defaults to True.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
274 def set_group_whole_ban(self, group_id: int, enable: bool = True): 275 """ 276 群组全员禁言 277 Args: 278 group_id: 群号 279 enable: 是否禁言 280 """ 281 data = { 282 "group_id": group_id, 283 "enable": enable 284 } 285 return self.get("/set_group_whole_ban", data)
群组全员禁言
Arguments:
- group_id: 群号
- enable: 是否禁言
460 def logger(self, result, group_id: int, enable: bool): 461 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 462 f"{'开启' if enable else '关闭'}全员禁言")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
465class SetGroupAdmin(Action): 466 """ 467 设置群管理员 468 """ 469 470 call_func = api.set_group_admin 471 472 def __init__(self, group_id: int, user_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 473 """ 474 Args: 475 group_id (int): 群号 476 user_id (int): 要设置管理员的 QQ 号 477 enable (bool, optional): true 为设置,false 为取消. Defaults to True. 478 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 479 """ 480 super().__init__(group_id=group_id, user_id=user_id, enable=enable, callback=callback) 481 482 def logger(self, result, group_id: int, user_id: int, enable: bool): 483 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 484 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 485 f"{'设为' if enable else '取消设为'}管理员")
设置群管理员
472 def __init__(self, group_id: int, user_id: int, enable: bool = True, callback: Callable[[Result], ...] = None): 473 """ 474 Args: 475 group_id (int): 群号 476 user_id (int): 要设置管理员的 QQ 号 477 enable (bool, optional): true 为设置,false 为取消. Defaults to True. 478 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 479 """ 480 super().__init__(group_id=group_id, user_id=user_id, enable=enable, callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): 要设置管理员的 QQ 号
- enable (bool, optional): true 为设置,false 为取消. Defaults to True.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
287 def set_group_admin(self, group_id: int, user_id: int, enable: bool = True): 288 """ 289 群组设置管理员 290 Args: 291 group_id: 群号 292 user_id: 用户id 293 enable: 是否设置管理员 294 """ 295 data = { 296 "group_id": group_id, 297 "user_id": user_id, 298 "enable": enable 299 } 300 return self.get("/set_group_admin", data)
群组设置管理员
Arguments:
- group_id: 群号
- user_id: 用户id
- enable: 是否设置管理员
482 def logger(self, result, group_id: int, user_id: int, enable: bool): 483 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 484 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 485 f"{'设为' if enable else '取消设为'}管理员")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
488class SetGroupCard(Action): 489 """ 490 设置群名片(群备注) 491 """ 492 493 call_func = api.set_group_card 494 495 def __init__(self, group_id: int, user_id: int, card: str = "", callback: Callable[[Result], ...] = None): 496 """ 497 Args: 498 group_id (int): 群号 499 user_id (int): 要设置的 QQ 号 500 card (str, optional): 群名片内容,不填或空字符串表示删除群名片. Defaults to "". 501 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 502 """ 503 super().__init__(group_id=group_id, user_id=user_id, card=card, callback=callback) 504 505 def logger(self, result, group_id: int, user_id: int, card: str): 506 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 507 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 508 f"{'设置群名片为' if card else '删除群名片'} {card}")
设置群名片(群备注)
495 def __init__(self, group_id: int, user_id: int, card: str = "", callback: Callable[[Result], ...] = None): 496 """ 497 Args: 498 group_id (int): 群号 499 user_id (int): 要设置的 QQ 号 500 card (str, optional): 群名片内容,不填或空字符串表示删除群名片. Defaults to "". 501 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 502 """ 503 super().__init__(group_id=group_id, user_id=user_id, card=card, callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): 要设置的 QQ 号
- card (str, optional): 群名片内容,不填或空字符串表示删除群名片. Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
302 def set_group_card(self, group_id: int, user_id: int, card: str = ""): 303 """ 304 设置群名片(群备注) 305 Args: 306 group_id: 群号 307 user_id: 用户id 308 card: 群名片内容 309 """ 310 data = { 311 "group_id": group_id, 312 "user_id": user_id, 313 "card": card 314 } 315 return self.get("/set_group_card", data)
设置群名片(群备注)
Arguments:
- group_id: 群号
- user_id: 用户id
- card: 群名片内容
505 def logger(self, result, group_id: int, user_id: int, card: str): 506 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 507 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 508 f"{'设置群名片为' if card else '删除群名片'} {card}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
511class SetGroupLeave(Action): 512 """ 513 退出群组 514 """ 515 516 call_func = api.set_group_leave 517 518 def __init__(self, group_id: int, is_dismiss: bool = False, callback: Callable[[Result], ...] = None): 519 """ 520 Args: 521 group_id (int): 群号 522 is_dismiss (bool, optional): 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散. Defaults to False. 523 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 524 """ 525 super().__init__(group_id=group_id, is_dismiss=is_dismiss, callback=callback) 526 527 def logger(self, result, group_id: int, is_dismiss: bool): 528 logger.info(f"退出群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 529 f"{'并解散' if is_dismiss else ''}")
退出群组
518 def __init__(self, group_id: int, is_dismiss: bool = False, callback: Callable[[Result], ...] = None): 519 """ 520 Args: 521 group_id (int): 群号 522 is_dismiss (bool, optional): 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散. Defaults to False. 523 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 524 """ 525 super().__init__(group_id=group_id, is_dismiss=is_dismiss, callback=callback)
Arguments:
- group_id (int): 群号
- is_dismiss (bool, optional): 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散. Defaults to False.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
330 def set_group_leave(self, group_id: int, is_dismiss: bool = False): 331 """ 332 Args: 333 group_id: 群号 334 is_dismiss: 是否解散,如果登录号是群主,则仅在此项为True时能够解散 335 """ 336 data = { 337 "group_id": group_id, 338 "is_dismiss": is_dismiss 339 } 340 return self.get("/set_group_leave", data)
Arguments:
- group_id: 群号
- is_dismiss: 是否解散,如果登录号是群主,则仅在此项为True时能够解散
527 def logger(self, result, group_id: int, is_dismiss: bool): 528 logger.info(f"退出群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 529 f"{'并解散' if is_dismiss else ''}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
532class SetGroupSpecialTitle(Action): 533 """ 534 设置群组专属头衔 535 """ 536 537 call_func = api.set_group_special_title 538 539 def __init__(self, group_id: int, user_id: int, special_title: str = "", duration: int = -1, 540 callback: Callable[[Result], ...] = None): 541 """ 542 Args: 543 group_id (int): 群号 544 user_id (int): 要设置的 QQ 号 545 special_title (str, optional): 专属头衔,不填或空字符串表示删除专属头衔. Defaults to "". 546 duration (int, optional): 专属头衔有效期,单位秒,-1 表示永久. Defaults to -1. 547 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 548 """ 549 super().__init__(group_id=group_id, user_id=user_id, special_title=special_title, duration=duration, 550 callback=callback) 551 552 def logger(self, result, group_id: int, user_id: int, special_title: str, duration: int): 553 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 554 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 555 f"{'设置专属头衔为' if special_title else '删除专属头衔'} {special_title} " 556 )
设置群组专属头衔
539 def __init__(self, group_id: int, user_id: int, special_title: str = "", duration: int = -1, 540 callback: Callable[[Result], ...] = None): 541 """ 542 Args: 543 group_id (int): 群号 544 user_id (int): 要设置的 QQ 号 545 special_title (str, optional): 专属头衔,不填或空字符串表示删除专属头衔. Defaults to "". 546 duration (int, optional): 专属头衔有效期,单位秒,-1 表示永久. Defaults to -1. 547 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 548 """ 549 super().__init__(group_id=group_id, user_id=user_id, special_title=special_title, duration=duration, 550 callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): 要设置的 QQ 号
- special_title (str, optional): 专属头衔,不填或空字符串表示删除专属头衔. Defaults to "".
- duration (int, optional): 专属头衔有效期,单位秒,-1 表示永久. Defaults to -1.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
342 def set_group_special_title(self, group_id: int, user_id: int, special_title: str = "", duration: int = -1): 343 """ 344 设置群组专属头衔 345 Args: 346 group_id: 群号 347 user_id: 要设置的QQ号 348 special_title: 专属头衔,不填或空字符串表示删除专属头衔 349 duration: 专属头衔有效期,-1表示永久,其他值表示在此时间之前专属头衔会消失 350 """ 351 data = { 352 "group_id": group_id, 353 "user_id": user_id, 354 "special_title": special_title, 355 } 356 if duration != -1: 357 data["duration"] = duration 358 359 return self.get("/set_group_special_title", data)
设置群组专属头衔
Arguments:
- group_id: 群号
- user_id: 要设置的QQ号
- special_title: 专属头衔,不填或空字符串表示删除专属头衔
- duration: 专属头衔有效期,-1表示永久,其他值表示在此时间之前专属头衔会消失
552 def logger(self, result, group_id: int, user_id: int, special_title: str, duration: int): 553 logger.info(f"将群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) " 554 f"内成员 {QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) " 555 f"{'设置专属头衔为' if special_title else '删除专属头衔'} {special_title} " 556 )
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
559class SetFriendAddRequest(Action): 560 """ 561 处理加好友请求 562 """ 563 564 call_func = api.set_friend_add_request 565 566 def __init__(self, flag: str, approve: bool = True, remark: str = "", callback: Callable[[Result], ...] = None): 567 """ 568 Args: 569 flag (str): 加好友请求的 flag(需从上报的数据中获得) 570 approve (bool, optional): 是否同意请求. Defaults to True. 571 remark (str, optional): 添加后的好友备注(仅在同意时有效). Defaults to "". 572 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 573 """ 574 super().__init__(flag=flag, approve=approve, remark=remark, callback=callback) 575 576 def logger(self, result, flag: str, approve: bool, remark: str): 577 logger.info(f"处理加好友请求 {'同意' if approve else '拒绝'} " 578 f"{'并设置备注为' if remark else ''} {remark}")
处理加好友请求
566 def __init__(self, flag: str, approve: bool = True, remark: str = "", callback: Callable[[Result], ...] = None): 567 """ 568 Args: 569 flag (str): 加好友请求的 flag(需从上报的数据中获得) 570 approve (bool, optional): 是否同意请求. Defaults to True. 571 remark (str, optional): 添加后的好友备注(仅在同意时有效). Defaults to "". 572 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 573 """ 574 super().__init__(flag=flag, approve=approve, remark=remark, callback=callback)
Arguments:
- flag (str): 加好友请求的 flag(需从上报的数据中获得)
- approve (bool, optional): 是否同意请求. Defaults to True.
- remark (str, optional): 添加后的好友备注(仅在同意时有效). Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
361 def set_friend_add_request(self, flag: str, approve: bool = True, remark: str = ""): 362 """ 363 设置好友添加请求 364 Args: 365 flag: 请求flag 366 approve: 是否同意请求 367 remark: 添加后的好友备注 368 """ 369 data = { 370 "flag": flag, 371 "approve": approve, 372 "remark": remark 373 } 374 return self.get("/set_friend_add_request", data)
设置好友添加请求
Arguments:
- flag: 请求flag
- approve: 是否同意请求
- remark: 添加后的好友备注
576 def logger(self, result, flag: str, approve: bool, remark: str): 577 logger.info(f"处理加好友请求 {'同意' if approve else '拒绝'} " 578 f"{'并设置备注为' if remark else ''} {remark}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
581class SetGroupAddRequest(Action): 582 """ 583 处理加群请求/邀请 584 """ 585 586 call_func = api.set_group_add_request 587 588 def __init__(self, flag: str, sub_type: str = "add", approve: bool = True, reason: str = "", 589 callback: Callable[[Result], ...] = None): 590 """ 591 Args: 592 flag (str): 加群请求的 flag(需从上报的数据中获得) 593 sub_type (str, optional): `add` 或 `invite`,请求类型(需要和上报消息中的 `sub_type` 字段相符). Defaults to "add". 594 approve (bool, optional): 是否同意请求/邀请. Defaults to True. 595 reason (str, optional): 拒绝理由(仅在拒绝时有效). Defaults to "". 596 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 597 """ 598 super().__init__(flag=flag, sub_type=sub_type, approve=approve, reason=reason, callback=callback) 599 600 def logger(self, result, flag: str, sub_type: str, approve: bool, reason: str): 601 logger.info(f"处理加群请求/邀请 {'同意' if approve else '拒绝'} " 602 f"{'并设置理由为' if reason else ''} {reason}")
处理加群请求/邀请
588 def __init__(self, flag: str, sub_type: str = "add", approve: bool = True, reason: str = "", 589 callback: Callable[[Result], ...] = None): 590 """ 591 Args: 592 flag (str): 加群请求的 flag(需从上报的数据中获得) 593 sub_type (str, optional): `add` 或 `invite`,请求类型(需要和上报消息中的 `sub_type` 字段相符). Defaults to "add". 594 approve (bool, optional): 是否同意请求/邀请. Defaults to True. 595 reason (str, optional): 拒绝理由(仅在拒绝时有效). Defaults to "". 596 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 597 """ 598 super().__init__(flag=flag, sub_type=sub_type, approve=approve, reason=reason, callback=callback)
Arguments:
- flag (str): 加群请求的 flag(需从上报的数据中获得)
- sub_type (str, optional):
add
或invite
,请求类型(需要和上报消息中的sub_type
字段相符). Defaults to "add". - approve (bool, optional): 是否同意请求/邀请. Defaults to True.
- reason (str, optional): 拒绝理由(仅在拒绝时有效). Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
376 def set_group_add_request(self, flag: str, sub_type: str = "add", approve: bool = True, reason: str = ""): 377 """ 378 设置群添加请求 379 Args: 380 flag: 请求flag 381 sub_type: 添加请求类型,请参考api文档 382 approve: 是否同意请求 383 reason: 拒绝理由 384 """ 385 data = { 386 "flag": flag, 387 "sub_type": sub_type, 388 "approve": approve, 389 "reason": reason 390 } 391 return self.get("/set_group_add_request", data)
设置群添加请求
Arguments:
- flag: 请求flag
- sub_type: 添加请求类型,请参考api文档
- approve: 是否同意请求
- reason: 拒绝理由
600 def logger(self, result, flag: str, sub_type: str, approve: bool, reason: str): 601 logger.info(f"处理加群请求/邀请 {'同意' if approve else '拒绝'} " 602 f"{'并设置理由为' if reason else ''} {reason}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
605class GetLoginInfo(Action): 606 """ 607 获取登录号信息 608 """ 609 610 call_func = api.get_login_info 611 612 def __init__(self, callback: Callable[[Result], ...] = None): 613 """ 614 Args: 615 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 616 """ 617 super().__init__(callback=callback) 618 619 def logger(self, result): 620 logger.debug(f"获取登录号信息")
获取登录号信息
612 def __init__(self, callback: Callable[[Result], ...] = None): 613 """ 614 Args: 615 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 616 """ 617 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
623class GetStrangerInfo(Action): 624 """ 625 获取陌生人信息 626 """ 627 628 call_func = api.get_stranger_info 629 630 def __init__(self, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 631 """ 632 Args: 633 user_id (int): QQ 号 634 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 635 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 636 """ 637 super().__init__(user_id=user_id, no_cache=no_cache, callback=callback) 638 639 def logger(self, result, user_id: int, no_cache: bool): 640 logger.debug(f"获取陌生人 {user_id} 信息")
获取陌生人信息
630 def __init__(self, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 631 """ 632 Args: 633 user_id (int): QQ 号 634 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 635 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 636 """ 637 super().__init__(user_id=user_id, no_cache=no_cache, callback=callback)
Arguments:
- user_id (int): QQ 号
- no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
399 def get_stranger_info(self, user_id: int, no_cache: bool = False): 400 """ 401 获取陌生人信息 402 Args: 403 user_id: 对方QQ号 404 no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快) 405 """ 406 data = { 407 "user_id": user_id, 408 "no_cache": no_cache 409 } 410 return self.get("/get_stranger_info", data)
获取陌生人信息
Arguments:
- user_id: 对方QQ号
- no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
643class GetFriendList(Action): 644 """ 645 获取好友列表 646 """ 647 648 call_func = api.get_friend_list 649 650 def __init__(self, callback: Callable[[Result], ...] = None): 651 """ 652 Args: 653 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 654 """ 655 super().__init__(callback=callback) 656 657 def logger(self, result): 658 logger.debug(f"获取好友列表")
获取好友列表
650 def __init__(self, callback: Callable[[Result], ...] = None): 651 """ 652 Args: 653 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 654 """ 655 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
661class GetGroupInfo(Action): 662 """ 663 获取群信息 664 """ 665 666 call_func = api.get_group_info 667 668 def __init__(self, group_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 669 """ 670 Args: 671 group_id (int): 群号 672 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 673 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 674 """ 675 super().__init__(group_id=group_id, no_cache=no_cache, callback=callback) 676 677 def logger(self, result, group_id: int, no_cache: bool): 678 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 信息")
获取群信息
668 def __init__(self, group_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 669 """ 670 Args: 671 group_id (int): 群号 672 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 673 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 674 """ 675 super().__init__(group_id=group_id, no_cache=no_cache, callback=callback)
Arguments:
- group_id (int): 群号
- no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
418 def get_group_info(self, group_id: int, no_cache: bool = False): 419 """ 420 获取群信息 421 Args: 422 group_id: 群号 423 no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快) 424 """ 425 data = { 426 "group_id": group_id, 427 "no_cache": no_cache 428 } 429 return self.get("/get_group_info", data)
获取群信息
Arguments:
- group_id: 群号
- no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
677 def logger(self, result, group_id: int, no_cache: bool): 678 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 信息")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
681class GetGroupList(Action): 682 """ 683 获取群列表 684 """ 685 686 call_func = api.get_group_list 687 688 def __init__(self, callback: Callable[[Result], ...] = None): 689 """ 690 Args: 691 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 692 """ 693 super().__init__(callback=callback) 694 695 def logger(self, result): 696 logger.debug(f"获取群列表")
获取群列表
688 def __init__(self, callback: Callable[[Result], ...] = None): 689 """ 690 Args: 691 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 692 """ 693 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
699class GetGroupMemberInfo(Action): 700 """ 701 获取群成员信息 702 """ 703 704 call_func = api.get_group_member_info 705 706 def __init__(self, group_id: int, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 707 """ 708 Args: 709 group_id (int): 群号 710 user_id (int): QQ 号 711 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 712 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 713 """ 714 super().__init__(group_id=group_id, user_id=user_id, no_cache=no_cache, callback=callback) 715 716 def logger(self, result, group_id: int, user_id: int, no_cache: bool): 717 logger.debug( 718 f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员 " 719 f"{QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 信息")
获取群成员信息
706 def __init__(self, group_id: int, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None): 707 """ 708 Args: 709 group_id (int): 群号 710 user_id (int): QQ 号 711 no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False. 712 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 713 """ 714 super().__init__(group_id=group_id, user_id=user_id, no_cache=no_cache, callback=callback)
Arguments:
- group_id (int): 群号
- user_id (int): QQ 号
- no_cache (bool, optional): 是否不使用缓存(使用缓存可能更新不及时,但响应更快). Defaults to False.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
437 def get_group_member_info(self, group_id: int, user_id: int, no_cache: bool = False): 438 """ 439 获取群成员信息 440 Args: 441 group_id: 群号 442 user_id: QQ号 443 no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快) 444 """ 445 data = { 446 "group_id": group_id, 447 "user_id": user_id, 448 "no_cache": no_cache 449 } 450 return self.get("/get_group_member_info", data)
获取群成员信息
Arguments:
- group_id: 群号
- user_id: QQ号
- no_cache: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
716 def logger(self, result, group_id: int, user_id: int, no_cache: bool): 717 logger.debug( 718 f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员 " 719 f"{QQDataCacher.get_user_info(user_id).get_nickname()}({user_id}) 信息")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
722class GetGroupMemberList(Action): 723 """ 724 获取群成员列表 725 """ 726 727 call_func = api.get_group_member_list 728 729 def __init__(self, group_id: int, callback: Callable[[Result], ...] = None): 730 """ 731 Args: 732 group_id (int): 群号 733 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 734 """ 735 super().__init__(group_id=group_id, callback=callback) 736 737 def logger(self, result, group_id: int): 738 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员列表")
获取群成员列表
729 def __init__(self, group_id: int, callback: Callable[[Result], ...] = None): 730 """ 731 Args: 732 group_id (int): 群号 733 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 734 """ 735 super().__init__(group_id=group_id, callback=callback)
Arguments:
- group_id (int): 群号
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
452 def get_group_member_list(self, group_id: int): 453 """ 454 获取群成员列表 455 Args: 456 group_id: 群号 457 """ 458 data = { 459 "group_id": group_id 460 } 461 return self.get("/get_group_member_list", data)
获取群成员列表
Arguments:
- group_id: 群号
737 def logger(self, result, group_id: int): 738 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 成员列表")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
741class GetGroupHonorInfo(Action): 742 """ 743 获取群荣誉信息 744 """ 745 746 call_func = api.get_group_honor_info 747 748 def __init__(self, group_id: int, type_: str = "all", callback: Callable[[Result], ...] = None): 749 """ 750 Args: 751 group_id (int): 群号 752 type_ (str, optional): 要获取的群荣誉类型,可传入 `talkative` `performer` `legend` `strong_newbie` `emotion` 753 以分别获取单个类型的群荣誉数据,或传入 `all` 获取所有数据. Defaults to "all". 754 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 755 """ 756 super().__init__(group_id=group_id, type_=type_, callback=callback) 757 758 def logger(self, result, group_id: int, type_: str): 759 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 荣誉信息, 类型: {type_}")
获取群荣誉信息
748 def __init__(self, group_id: int, type_: str = "all", callback: Callable[[Result], ...] = None): 749 """ 750 Args: 751 group_id (int): 群号 752 type_ (str, optional): 要获取的群荣誉类型,可传入 `talkative` `performer` `legend` `strong_newbie` `emotion` 753 以分别获取单个类型的群荣誉数据,或传入 `all` 获取所有数据. Defaults to "all". 754 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 755 """ 756 super().__init__(group_id=group_id, type_=type_, callback=callback)
Arguments:
- group_id (int): 群号
- type_ (str, optional): 要获取的群荣誉类型,可传入
talkative
performer
legend
strong_newbie
emotion
- 以分别获取单个类型的群荣誉数据,或传入
all
获取所有数据. Defaults to "all". - callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
463 def get_group_honor_info(self, group_id: int, type_: str = "all"): 464 """ 465 获取群荣誉信息 466 Args: 467 group_id: 群号 468 type_: 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据 469 """ 470 data = { 471 "group_id": group_id, 472 "type": type_ 473 } 474 return self.get("/get_group_honor_info", data)
获取群荣誉信息
Arguments:
- group_id: 群号
- type_: 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据
758 def logger(self, result, group_id: int, type_: str): 759 logger.debug(f"获取群 {QQDataCacher.get_group_info(group_id).group_name}({group_id}) 荣誉信息, 类型: {type_}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
762class GetCookies(Action): 763 """ 764 获取 Cookies 765 """ 766 767 call_func = api.get_cookies 768 769 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 770 """ 771 Args: 772 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 773 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 774 """ 775 super().__init__(domain=domain, callback=callback) 776 777 def logger(self, result, domain: str): 778 logger.debug(f"获取 Cookies, domain: {domain}")
获取 Cookies
769 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 770 """ 771 Args: 772 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 773 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 774 """ 775 super().__init__(domain=domain, callback=callback)
Arguments:
- domain (str, optional): 需要获取 cookies 的域名. Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
781class GetCsrfToken(Action): 782 """ 783 获取 CSRF Token 784 """ 785 786 call_func = api.get_csrf_token 787 788 def __init__(self, callback: Callable[[Result], ...] = None): 789 """ 790 Args: 791 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 792 """ 793 super().__init__(callback=callback) 794 795 def logger(self, result): 796 logger.debug(f"获取 CSRF Token")
获取 CSRF Token
788 def __init__(self, callback: Callable[[Result], ...] = None): 789 """ 790 Args: 791 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 792 """ 793 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
482 def get_csrf_token(self): 483 """ 484 获取CSRF Token 485 """ 486 return self.get("/get_csrf_token")
获取CSRF Token
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
799class GetCredentials(Action): 800 """ 801 获取 QQ 相关接口凭证 802 """ 803 804 call_func = api.get_credentials 805 806 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 807 """ 808 Args: 809 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 810 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 811 """ 812 super().__init__(domain=domain, callback=callback) 813 814 def logger(self, result, domain: str): 815 logger.debug(f"获取 QQ 相关接口凭证, domain: {domain}")
获取 QQ 相关接口凭证
806 def __init__(self, domain: str = "", callback: Callable[[Result], ...] = None): 807 """ 808 Args: 809 domain (str, optional): 需要获取 cookies 的域名. Defaults to "". 810 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 811 """ 812 super().__init__(domain=domain, callback=callback)
Arguments:
- domain (str, optional): 需要获取 cookies 的域名. Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
488 def get_credentials(self): 489 """ 490 获取Credentials 491 """ 492 return self.get("/get_credentials")
获取Credentials
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
818class GetRecord(Action): 819 """ 820 获取语音 821 """ 822 823 call_func = api.get_record 824 825 def __init__(self, file: str, out_format: str = "mp3", out_file: str = "", 826 callback: Callable[[Result], ...] = None): 827 """ 828 Args: 829 file (str): 收到的语音文件名(消息段的 `file` 参数),如 `0B38145AA44505000B38145AA4450500.silk` 830 out_format (str, optional): 要转换到的格式,目前支持 831 `mp3`、`amr`、`wma`、`m4a`、`spx`、`ogg`、`wav`、`flac`. Defaults to "mp3". 832 out_file (str, optional): unused parameter. Defaults to "". 833 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 834 """ 835 super().__init__(file=file, out_format=out_format, out_file=out_file, callback=callback) 836 837 def logger(self, result, file: str, out_format: str, out_file: str): 838 logger.debug(f"获取语音文件: {file}, 转换格式: {out_format}")
获取语音
825 def __init__(self, file: str, out_format: str = "mp3", out_file: str = "", 826 callback: Callable[[Result], ...] = None): 827 """ 828 Args: 829 file (str): 收到的语音文件名(消息段的 `file` 参数),如 `0B38145AA44505000B38145AA4450500.silk` 830 out_format (str, optional): 要转换到的格式,目前支持 831 `mp3`、`amr`、`wma`、`m4a`、`spx`、`ogg`、`wav`、`flac`. Defaults to "mp3". 832 out_file (str, optional): unused parameter. Defaults to "". 833 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 834 """ 835 super().__init__(file=file, out_format=out_format, out_file=out_file, callback=callback)
Arguments:
- file (str): 收到的语音文件名(消息段的
file
参数),如0B38145AA44505000B38145AA4450500.silk
- out_format (str, optional): 要转换到的格式,目前支持
mp3
、amr
、wma
、m4a
、spx
、ogg
、wav
、flac
. Defaults to "mp3".- out_file (str, optional): unused parameter. Defaults to "".
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
494 def get_record(self, file: str, out_format: str = "mp3", out_file: str = ""): 495 """ 496 获取语音 497 Args: 498 file: 文件ID 499 out_format: 输出格式,mp3或amr,默认mp3 500 out_file: 输出文件名,默认使用文件ID 501 """ 502 data = { 503 "file": file, 504 "out_format": out_format, 505 "out_file": out_file 506 } 507 return self.get("/get_record", data)
获取语音
Arguments:
- file: 文件ID
- out_format: 输出格式,mp3或amr,默认mp3
- out_file: 输出文件名,默认使用文件ID
837 def logger(self, result, file: str, out_format: str, out_file: str): 838 logger.debug(f"获取语音文件: {file}, 转换格式: {out_format}")
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
841class GetImage(Action): 842 """ 843 获取图片 844 """ 845 846 call_func = api.get_image 847 848 def __init__(self, file: str, callback: Callable[[Result], ...] = None): 849 """ 850 Args: 851 file (str): 收到的图片文件名(消息段的 `file` 参数),如 `6B4DE3DFD1BD271E3297859D41C530F5.jpg` 852 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 853 """ 854 super().__init__(file=file, callback=callback) 855 856 def logger(self, result, file: str): 857 logger.debug(f"获取图片文件: {file}")
获取图片
848 def __init__(self, file: str, callback: Callable[[Result], ...] = None): 849 """ 850 Args: 851 file (str): 收到的图片文件名(消息段的 `file` 参数),如 `6B4DE3DFD1BD271E3297859D41C530F5.jpg` 852 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 853 """ 854 super().__init__(file=file, callback=callback)
Arguments:
- file (str): 收到的图片文件名(消息段的
file
参数),如6B4DE3DFD1BD271E3297859D41C530F5.jpg
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
509 def get_image(self, file: str): 510 """ 511 获取图片 512 Args: 513 file: 文件ID 514 """ 515 data = { 516 "file": file 517 } 518 return self.get("/get_image", data)
获取图片
Arguments:
- file: 文件ID
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
860class CanSendImage(Action): 861 """ 862 检查是否可以发送图片 863 """ 864 865 call_func = api.can_send_image 866 867 def __init__(self, callback: Callable[[Result], ...] = None): 868 """ 869 Args: 870 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 871 """ 872 super().__init__(callback=callback) 873 874 def logger(self, result): 875 logger.debug(f"检查是否可以发送图片")
检查是否可以发送图片
867 def __init__(self, callback: Callable[[Result], ...] = None): 868 """ 869 Args: 870 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 871 """ 872 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
878class CanSendRecord(Action): 879 """ 880 检查是否可以发送语音 881 """ 882 883 call_func = api.can_send_record 884 885 def __init__(self, callback: Callable[[Result], ...] = None): 886 """ 887 Args: 888 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 889 """ 890 super().__init__(callback=callback) 891 892 def logger(self, result): 893 logger.debug(f"检查是否可以发送语音")
检查是否可以发送语音
885 def __init__(self, callback: Callable[[Result], ...] = None): 886 """ 887 Args: 888 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 889 """ 890 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
526 def can_send_record(self): 527 """ 528 检查是否可以发送语音 529 """ 530 return self.get("/can_send_record")
检查是否可以发送语音
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
896class GetStatus(Action): 897 """ 898 获取运行状态 899 """ 900 901 call_func = api.get_status 902 903 def __init__(self, callback: Callable[[Result], ...] = None): 904 """ 905 Args: 906 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 907 """ 908 super().__init__(callback=callback) 909 910 def logger(self, result): 911 logger.debug(f"获取Onebot运行状态")
获取运行状态
903 def __init__(self, callback: Callable[[Result], ...] = None): 904 """ 905 Args: 906 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 907 """ 908 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
914class GetVersionInfo(Action): 915 """ 916 获取版本信息 917 """ 918 919 call_func = api.get_version_info 920 921 def __init__(self, callback: Callable[[Result], ...] = None): 922 """ 923 Args: 924 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 925 """ 926 super().__init__(callback=callback) 927 928 def logger(self, result): 929 logger.debug(f"获取Onebot版本信息")
获取版本信息
921 def __init__(self, callback: Callable[[Result], ...] = None): 922 """ 923 Args: 924 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 925 """ 926 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
932class SetRestart(Action): 933 """ 934 重启 935 """ 936 937 call_func = api.set_restart 938 939 def __init__(self, delay: int = 0, callback: Callable[[Result], ...] = None): 940 """ 941 Args: 942 delay (int, optional): 要延迟的毫秒数. Defaults to 0. 943 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 944 """ 945 super().__init__(delay=delay, callback=callback) 946 947 def logger(self, result, delay: int): 948 logger.info(f"重启Onebot实现端, 延迟: {delay}ms")
重启
939 def __init__(self, delay: int = 0, callback: Callable[[Result], ...] = None): 940 """ 941 Args: 942 delay (int, optional): 要延迟的毫秒数. Defaults to 0. 943 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 944 """ 945 super().__init__(delay=delay, callback=callback)
Arguments:
- delay (int, optional): 要延迟的毫秒数. Defaults to 0.
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
544 def set_restart(self, delay: int = 0): 545 """ 546 重启OneBot 547 Args: 548 delay: 延迟时间,单位秒,默认0 549 """ 550 data = { 551 "delay": delay 552 } 553 return self.get("/set_restart", data)
重启OneBot
Arguments:
- delay: 延迟时间,单位秒,默认0
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数
Inherited Members
951class CleanCache(Action): 952 """ 953 清理缓存 954 """ 955 956 call_func = api.clean_cache 957 958 def __init__(self, callback: Callable[[Result], ...] = None): 959 """ 960 Args: 961 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 962 """ 963 super().__init__(callback=callback) 964 965 def logger(self, result): 966 logger.debug(f"清理Onebot实现端缓存")
清理缓存
958 def __init__(self, callback: Callable[[Result], ...] = None): 959 """ 960 Args: 961 callback (Callable[[Result], ...], optional): 回调函数. Defaults to None. 962 """ 963 super().__init__(callback=callback)
Arguments:
- callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
当Action调用成功时调用此方法记录log
Arguments:
- result: self.call_func返回的结果
- *args: 传给self.call_func的参数
- **kwargs: 传给self.call_func的参数