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"""
logger = <RootLogger root (INFO)>
class Result(typing.Generic[~T, ~E]):
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)

结果类

Result(value: Union[~T, ~E], is_ok: bool)
27    def __init__(self, value: Union[T, E], is_ok: bool):
28        self._value = value
29        self._is_ok = is_ok
is_ok: bool
31    @property
32    def is_ok(self) -> bool:
33        """
34        判断是否成功
35        Returns:
36            是否成功
37        """
38        return self._is_ok

判断是否成功

Returns:

是否成功

is_err: bool
40    @property
41    def is_err(self) -> bool:
42        """
43        判断是否失败
44        Returns:
45            是否失败
46        """
47        return not self._is_ok

判断是否失败

Returns:

是否失败

def unwrap(self) -> ~T:
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:

结果

def unwrap_err(self) -> ~E:
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}")

获取错误(如果失败,否则触发异常)

Returns:

错误

def expect(self, message: str) -> ~T:
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)

获取结果(如果失败,否则触发异常)

Arguments:
  • message: 错误信息
Returns:

结果

class UnCalled:
class Action:
 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基类,无实际用途,勿调用

Action( *args, callback: Callable[[Result], ...] = None, **kwargs)
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
call_func = None
callback
args
kwargs
def set_callback(self, callback: Callable[[Result], ...]):
 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

def call(self):
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

def logger(self, *args, **kwargs):
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的参数
def get_result(self) -> Result:
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:

结果

def call_get_result(self):
176    def call_get_result(self):
177        """
178        同步调用Action并获取结果
179        Returns:
180            结果
181        """
182        self.call()
183        return self.get_result()

同步调用Action并获取结果

Returns:

结果

def call_async(self):
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

异步调用Action

Returns:

Action

def wait_async(self):
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

等待异步调用

Returns:

Action

class SendPrivateMsg(Action):
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']})")

发送私聊消息

SendPrivateMsg( user_id: int, message: str | list[dict] | Lib.utils.QQRichText.QQRichText, callback: Callable[[Result], ...] = None)
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.
def call_func(user_id: int, message: str | list[dict]):
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: 消息内容
def logger( self, result, user_id: int, message: str | list[dict] | Lib.utils.QQRichText.QQRichText):
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的参数
class SendGroupMsg(Action):
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']})")

发送群聊消息

SendGroupMsg( group_id: int, message: str | list[dict] | Lib.utils.QQRichText.QQRichText, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, message: str | list[dict]):
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: 消息内容
def logger( self, result, group_id: int, message: str | list[dict] | Lib.utils.QQRichText.QQRichText):
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的参数
class SendMsg(Action):
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']})")

发送消息

SendMsg( user_id: int = -1, group_id: int = -1, message: str | list[dict] | Lib.utils.QQRichText.QQRichText = '', callback: Callable[[Result], ...] = None)
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.
def call_func( user_id: int = -1, group_id: int = -1, message: str | list[dict] = ''):
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: 消息内容
def logger( self, result, user_id: int, group_id: int, message: str | list[dict] | Lib.utils.QQRichText.QQRichText):
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的参数
class DeleteMsg(Action):
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}")

撤回消息

DeleteMsg( message_id: int, callback: Callable[[Result], ...] = None)
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.
def call_func(message_id: int):
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
def logger(self, result, message_id: int):
309    def logger(self, result, message_id: int):
310        logger.info(f"撤回消息 {message_id}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetMsg(Action):
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}")

获取消息

GetMsg( message_id: int, callback: Callable[[Result], ...] = None)
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.
def call_func(message_id: int):
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
def logger(self, result, message_id: int):
328    def logger(self, result, message_id: int):
329        logger.debug(f"获取消息 {message_id}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetForwardMsg(Action):
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}")

获取合并转发消息

GetForwardMsg(id: int, callback: Callable[[Result], ...] = None)
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.
def call_func(id: int):
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
def logger(self, result, id: int):
347    def logger(self, result, id: int):
348        logger.debug(f"获取合并转发消息 {id}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class SendLike(Action):
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} 次")

发送好友赞

SendLike( user_id: int, times: int = 1, callback: Callable[[Result], ...] = None)
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.
def call_func(user_id: int, times: int = 1):
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: 点赞次数
def logger(self, result, user_id: int, times: int):
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的参数
class SetGroupKick(Action):
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 ''}")

群组踢人

SetGroupKick( group_id: int, user_id: int, reject_add_request: bool = False, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, user_id: int, reject_add_request: bool = False):
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: 拒绝加群请求
def logger(self, result, group_id: int, user_id: int, reject_add_request: bool):
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的参数
class SetGroupBan(Action):
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} 秒")

群组单人禁言

SetGroupBan( group_id: int, user_id: int, duration: int = 1800, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, user_id: int, duration: int = 1800):
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 表示取消禁言
def logger(self, result, group_id: int, user_id: int, duration: int):
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的参数
class SetGroupAnonymousBan(Action):
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} 秒")

群组匿名用户禁言

SetGroupAnonymousBan( group_id: int, anonymous: dict = None, anonymous_flag: str = None, duration: int = 1800, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, anonymous: dict, duration: int = 1800):
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: 禁言时长,单位秒,无法取消禁言
def logger( self, result, group_id: int, anonymous: dict, anonymous_flag: str, duration: int):
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的参数
class SetGroupWholeBan(Action):
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 '关闭'}全员禁言")

群组全员禁言

SetGroupWholeBan( group_id: int, enable: bool = True, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, enable: bool = True):
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: 是否禁言
def logger(self, result, group_id: int, enable: bool):
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的参数
class SetGroupAdmin(Action):
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 '取消设为'}管理员")

设置群管理员

SetGroupAdmin( group_id: int, user_id: int, enable: bool = True, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, user_id: int, enable: bool = True):
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: 是否设置管理员
def logger(self, result, group_id: int, user_id: int, enable: bool):
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的参数
class SetGroupCard(Action):
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}")

设置群名片(群备注)

SetGroupCard( group_id: int, user_id: int, card: str = '', callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, user_id: int, card: str = ''):
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: 群名片内容
def logger(self, result, group_id: int, user_id: int, card: str):
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的参数
class SetGroupLeave(Action):
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 ''}")

退出群组

SetGroupLeave( group_id: int, is_dismiss: bool = False, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, is_dismiss: bool = False):
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时能够解散
def logger(self, result, group_id: int, is_dismiss: bool):
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的参数
class SetGroupSpecialTitle(Action):
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                    )

设置群组专属头衔

SetGroupSpecialTitle( group_id: int, user_id: int, special_title: str = '', duration: int = -1, callback: Callable[[Result], ...] = None)
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.
def call_func( group_id: int, user_id: int, special_title: str = '', duration: int = -1):
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表示永久,其他值表示在此时间之前专属头衔会消失
def logger( self, result, group_id: int, user_id: int, special_title: str, duration: int):
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的参数
class SetFriendAddRequest(Action):
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}")

处理加好友请求

SetFriendAddRequest( flag: str, approve: bool = True, remark: str = '', callback: Callable[[Result], ...] = None)
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.
def call_func(flag: str, approve: bool = True, remark: str = ''):
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: 添加后的好友备注
def logger(self, result, flag: str, approve: bool, remark: str):
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的参数
class SetGroupAddRequest(Action):
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}")

处理加群请求/邀请

SetGroupAddRequest( flag: str, sub_type: str = 'add', approve: bool = True, reason: str = '', callback: Callable[[Result], ...] = None)
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): addinvite,请求类型(需要和上报消息中的 sub_type 字段相符). Defaults to "add".
  • approve (bool, optional): 是否同意请求/邀请. Defaults to True.
  • reason (str, optional): 拒绝理由(仅在拒绝时有效). Defaults to "".
  • callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
def call_func( flag: str, sub_type: str = 'add', approve: bool = True, reason: str = ''):
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: 拒绝理由
def logger(self, result, flag: str, sub_type: str, approve: bool, reason: str):
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的参数
class GetLoginInfo(Action):
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"获取登录号信息")

获取登录号信息

GetLoginInfo(callback: Callable[[Result], ...] = None)
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.
def call_func():
393    def get_login_info(self):
394        """
395        获取登录号信息
396        """
397        return self.get("/get_login_info")

获取登录号信息

def logger(self, result):
619    def logger(self, result):
620        logger.debug(f"获取登录号信息")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetStrangerInfo(Action):
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} 信息")

获取陌生人信息

GetStrangerInfo( user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None)
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.
def call_func(user_id: int, no_cache: bool = False):
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: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
def logger(self, result, user_id: int, no_cache: bool):
639    def logger(self, result, user_id: int, no_cache: bool):
640        logger.debug(f"获取陌生人 {user_id} 信息")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetFriendList(Action):
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"获取好友列表")

获取好友列表

GetFriendList(callback: Callable[[Result], ...] = None)
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.
def call_func():
412    def get_friend_list(self):
413        """
414        获取好友列表
415        """
416        return self.get("/get_friend_list")

获取好友列表

def logger(self, result):
657    def logger(self, result):
658        logger.debug(f"获取好友列表")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetGroupInfo(Action):
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}) 信息")

获取群信息

GetGroupInfo( group_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, no_cache: bool = False):
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: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
def logger(self, result, group_id: int, no_cache: bool):
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的参数
class GetGroupList(Action):
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"获取群列表")

获取群列表

GetGroupList(callback: Callable[[Result], ...] = None)
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.
def call_func():
431    def get_group_list(self):
432        """
433        获取群列表
434        """
435        return self.get("/get_group_list")

获取群列表

def logger(self, result):
695    def logger(self, result):
696        logger.debug(f"获取群列表")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetGroupMemberInfo(Action):
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}) 信息")

获取群成员信息

GetGroupMemberInfo( group_id: int, user_id: int, no_cache: bool = False, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, user_id: int, no_cache: bool = False):
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: 是否不使用缓存(使用缓存可能更新不及时,但响应更快)
def logger(self, result, group_id: int, user_id: int, no_cache: bool):
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的参数
class GetGroupMemberList(Action):
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}) 成员列表")

获取群成员列表

GetGroupMemberList( group_id: int, callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int):
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: 群号
def logger(self, result, group_id: int):
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的参数
class GetGroupHonorInfo(Action):
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_}")

获取群荣誉信息

GetGroupHonorInfo( group_id: int, type_: str = 'all', callback: Callable[[Result], ...] = None)
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.
def call_func(group_id: int, type_: str = 'all'):
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 获取所有数据
def logger(self, result, group_id: int, type_: str):
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的参数
class GetCookies(Action):
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

GetCookies( domain: str = '', callback: Callable[[Result], ...] = None)
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.
def call_func():
476    def get_cookies(self):
477        """
478        获取Cookies
479        """
480        return self.get("/get_cookies")

获取Cookies

def logger(self, result, domain: str):
777    def logger(self, result, domain: str):
778        logger.debug(f"获取 Cookies, domain: {domain}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetCsrfToken(Action):
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

GetCsrfToken(callback: Callable[[Result], ...] = None)
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.
def call_func():
482    def get_csrf_token(self):
483        """
484        获取CSRF Token
485        """
486        return self.get("/get_csrf_token")

获取CSRF Token

def logger(self, result):
795    def logger(self, result):
796        logger.debug(f"获取 CSRF Token")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetCredentials(Action):
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 相关接口凭证

GetCredentials( domain: str = '', callback: Callable[[Result], ...] = None)
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.
def call_func():
488    def get_credentials(self):
489        """
490        获取Credentials
491        """
492        return self.get("/get_credentials")

获取Credentials

def logger(self, result, domain: str):
814    def logger(self, result, domain: str):
815        logger.debug(f"获取 QQ 相关接口凭证, domain: {domain}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetRecord(Action):
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}")

获取语音

GetRecord( file: str, out_format: str = 'mp3', out_file: str = '', callback: Callable[[Result], ...] = None)
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): 要转换到的格式,目前支持
  • mp3amrwmam4aspxoggwavflac. Defaults to "mp3".
  • out_file (str, optional): unused parameter. Defaults to "".
  • callback (Callable[[Result], ...], optional): 回调函数. Defaults to None.
def call_func(file: str, out_format: str = 'mp3', out_file: str = ''):
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
def logger(self, result, file: str, out_format: str, out_file: str):
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的参数
class GetImage(Action):
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}")

获取图片

GetImage( file: str, callback: Callable[[Result], ...] = None)
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.
def call_func(file: str):
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
def logger(self, result, file: str):
856    def logger(self, result, file: str):
857        logger.debug(f"获取图片文件: {file}")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class CanSendImage(Action):
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"检查是否可以发送图片")

检查是否可以发送图片

CanSendImage(callback: Callable[[Result], ...] = None)
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.
def call_func():
520    def can_send_image(self):
521        """
522        检查是否可以发送图片
523        """
524        return self.get("/can_send_image")

检查是否可以发送图片

def logger(self, result):
874    def logger(self, result):
875        logger.debug(f"检查是否可以发送图片")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class CanSendRecord(Action):
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"检查是否可以发送语音")

检查是否可以发送语音

CanSendRecord(callback: Callable[[Result], ...] = None)
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.
def call_func():
526    def can_send_record(self):
527        """
528        检查是否可以发送语音
529        """
530        return self.get("/can_send_record")

检查是否可以发送语音

def logger(self, result):
892    def logger(self, result):
893        logger.debug(f"检查是否可以发送语音")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetStatus(Action):
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运行状态")

获取运行状态

GetStatus(callback: Callable[[Result], ...] = None)
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.
def call_func():
532    def get_status(self):
533        """
534        获取运行状态
535        """
536        return self.get("/get_status")

获取运行状态

def logger(self, result):
910    def logger(self, result):
911        logger.debug(f"获取Onebot运行状态")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class GetVersionInfo(Action):
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版本信息")

获取版本信息

GetVersionInfo(callback: Callable[[Result], ...] = None)
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.
def call_func():
538    def get_version_info(self):
539        """
540        获取版本信息
541        """
542        return self.get("/get_version_info")

获取版本信息

def logger(self, result):
928    def logger(self, result):
929        logger.debug(f"获取Onebot版本信息")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class SetRestart(Action):
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")

重启

SetRestart( delay: int = 0, callback: Callable[[Result], ...] = None)
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.
def call_func(delay: int = 0):
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
def logger(self, result, delay: int):
947    def logger(self, result, delay: int):
948        logger.info(f"重启Onebot实现端, 延迟: {delay}ms")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数
class CleanCache(Action):
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实现端缓存")

清理缓存

CleanCache(callback: Callable[[Result], ...] = None)
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.
def call_func():
555    def clean_cache(self):
556        """
557        清理缓存
558        """
559        return self.get("/clean_cache")

清理缓存

def logger(self, result):
965    def logger(self, result):
966        logger.debug(f"清理Onebot实现端缓存")

当Action调用成功时调用此方法记录log

Arguments:
  • result: self.call_func返回的结果
  • *args: 传给self.call_func的参数
  • **kwargs: 传给self.call_func的参数