extern.wechat module

wechat.py

集合发送到微信的函数

  • 可导出函数可以假设是异步IO,参数符合条件时不抛出异常,具体情况见配置文件

  • 异步时,函数只返回尝试状态,即是否设置了定时任务,不保证成功发送

  • _开头的函数是私有函数,子模块不应调用

extern.wechat.invite_to_wechat(stu_id: str | int, retry_times: int = 3, *, multithread: bool = True)[源代码]
extern.wechat.send_verify_code(stu_id: str | int, captcha: str, url: str | None = '/forgetpw/')[源代码]
extern.wechat.send_wechat(users: Iterable[str | int], title: str, message: str, card: bool = True, url: str | None = None, btntxt: str | None = None, *, api_path: str = '', default: bool = True, retry_times: int = 1, multithread: bool = True, run_time: datetime | timedelta | None = None, task_id: str | None = None)[源代码]

附带了去重、多线程和batch的发送;不应被服务直接调用

参数

  • users(Iterable[str | int]): 用户列表

  • title(str): 标题

  • message(str): 内容,可为空字符串

  • card(bool): 发送文本卡片,建议message长度小于120时开启

  • url(str, optional): 文本卡片的链接,相对路径会被转换为绝对路径

  • btntxt(str, optional): 文本卡片的提示短语,不超过4个字

  • 仅关键字参数
    • api_path(str, optional): API路径,相对路径会被转换为绝对路径

    • default(bool, optional): 填充默认值

    • retry_times(int, optional): 重试次数

    • multithread(bool, optional): 使用多线程(需要启用多线程),不堵塞当前线程

    • run_time(datetime | timedelta, optional): 执行时间,时间或延迟

    • task_id(str, optional): 任务标识符,与定时任务标识符一致

异常

  • RuntimeError: 定时任务未启用时,设置定时发送时间