示例#1
0
    def send_friend_message(qq: int,
                            message_chain: MessageChain,
                            quote: int = None) -> dict:
        """
        发送消息给好友

        :param qq: 接收方qq
        :param quote: 引用消息号
        :param message_chain: 消息列表

        :return: 请求响应的内容
        """

        # 添加调试信息
        # 异常处理是为了迁就指令系统
        try:
            if GlobalValues.debug_var.get():
                message_chain.add_plain_text("\n[调试]")
        except AttributeError:
            pass

        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "qq": qq,
            "messageChain": message_chain.get_message_chain()
        }
        if quote is not None:
            data["quote"] = quote
        return RequestSender.send_post("sendFriendMessage", data)
示例#2
0
    def send_image_message_by_url(urls: list,
                                  qq: int = None,
                                  group: int = None) -> dict:
        """
        通过url发送图片,由于出现不知如何解决的问题,请不要使用这个方法,而是使用messageChain代替

        如果传入了参数qq,则向该qq好友发送图片

        如果传入了群号,则向对应群发送图片

        如果传入了参数qq了群号,则发送临时消息图片

        :param urls: 图片url列表
        :param qq: qq号
        :param group: 群号
        :return: 响应信息
        """
        import warnings
        warnings.warn("请不要使用该方法,会抛出异常,按照报错推断应该是mirai http本身的问题",
                      DeprecationWarning)
        data = {"sessionKey": GlobalValues.conn_session_key, "urls": urls}
        if qq is not None:
            data["qq"] = qq
        if group is not None:
            data["group"] = group
        return RequestSender.send_post("sendImageMessage", data)
示例#3
0
    def send_temp_message(qq: int,
                          group: int,
                          message_chain: MessageChain,
                          quote: int = None) -> dict:
        """
        发送临时消息

        :param qq: 接收方qq
        :param group: 接收方所在群
        :param message_chain: 消息列表
        :param quote: 引用消息号

        :return: 返回结果
        """

        # 添加调试信息
        # 异常处理是为了迁就指令系统
        try:
            if GlobalValues.debug_var.get():
                message_chain.add_plain_text("\n[调试]")
        except AttributeError:
            pass

        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "qq": qq,
            "group": group,
            "messageChain": message_chain.get_message_chain()
        }
        if quote is not None:
            data["quote"] = quote
        return RequestSender.send_post("sendTempMessage", data)
示例#4
0
    def __verify_session_key(session_key: str) -> dict:
        """
        校验SessionKey,此操作用于激活Session

        :return: 响应内容
        """
        data = {"sessionKey": session_key, "qq": GlobalValues.conn_qq}
        return RequestSender.send_post("verify", data)
示例#5
0
    def unmute_all(group: int) -> dict:
        """
        解除全体禁言

        :param group:群号
        :return: 响应结果
        """
        data = {"sessionKey": GlobalValues.conn_session_key, "target": group}
        return RequestSender.send_post("unmuteAll", data)
示例#6
0
    def get_group_list() -> dict:
        """
        获取群列表

        :return: 响应结果
        """
        request_keyword = "groupList?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        return RequestSender.send_get(request_keyword)
示例#7
0
    def get_message_count() -> dict:
        """
        获取缓存消息总数(不包含被删除的)

        :return: 响应结果
        """
        request_keyword = "countMessage?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        return RequestSender.send_get(request_keyword)
示例#8
0
    def get_session_config() -> dict:
        """
        获取session配置

        :return: 响应结果
        """
        request_keyword = "config?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        return RequestSender.send_get(request_keyword)
示例#9
0
    def quit_group(group: int) -> dict:
        """
        退出群聊

        :param group: 群号
        :return: 响应结果
        """
        data = {"sessionKey": GlobalValues.conn_session_key, "target": group}
        return RequestSender.send_post("quit", data)
示例#10
0
    def get_group_config(group: int) -> dict:
        """
        获取群设置

        :param group: 群号
        :return: 响应信息
        """
        request_keyword = "groupConfig?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        request_keyword += "&target=" + str(group)
        return RequestSender.send_get(request_keyword)
示例#11
0
    def fetch_latest_message(count: int) -> dict:
        """
        获取bot接收到的最新消息和最新各类事件(会从消息记录中删除)

        :param count: 获取消息数
        :return: 响应结果
        """
        request_keyword = "fetchLatestMessage?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        request_keyword += "&count=" + str(count)
        return RequestSender.send_get(request_keyword)
示例#12
0
    def release_session_key() -> dict:
        """
        释放sessionKey

        :return: 响应内容
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "qq": GlobalValues.conn_qq
        }
        return RequestSender.send_post("release", data)
示例#13
0
    def get_message_from_id(id: int) -> dict:
        """
        通过消息号获取某条消息

        :param id: 消息号
        :return: 响应结果
        """
        request_keyword = "messageFromId?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        request_keyword += "&id=" + str(id)
        return RequestSender.send_get(request_keyword)
示例#14
0
    def get_member_info(group: int, member_qq: int) -> dict:
        """
        获取群成员资料

        :param group: 群号
        :param member_qq: 成员qq号
        :return: 响应信息
        """
        request_keyword = "memberInfo?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        request_keyword += "&target=" + str(group)
        request_keyword += "&memberId=" + str(member_qq)
        return RequestSender.send_get(request_keyword)
示例#15
0
    def peek_message(count: int) -> dict:
        """
        获取bot接收到的最老消息和最老各类事件(不会从消息记录中删除)

        注意:获取到的永远是最老的那条

        :param count: 获取消息数
        :return: 响应结果
        """
        request_keyword = "peekMessage?sessionKey="
        request_keyword += GlobalValues.conn_session_key
        request_keyword += "&count=" + str(count)
        return RequestSender.send_get(request_keyword)
示例#16
0
    def set_unmute(group: int, member_qq: int) -> dict:
        """
        解除禁言

        :param group: 群号
        :param member_qq: 成员qq号
        :return: 响应信息
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": group,
            "memberId": member_qq
        }
        return RequestSender.send_post("unmute", data)
示例#17
0
    def set_session_config(cache_size: int = None,
                           enable_websocket: bool = None) -> dict:
        """
        设置session配置

        :param cache_size: 缓存大小
        :param enable_websocket: 是否开启Websocket
        :return: 响应信息
        """
        data = {"sessionKey": GlobalValues.conn_session_key}
        if cache_size is not None:
            data["cacheSize"] = cache_size
        if enable_websocket is not None:
            data["enableWebsocket"] = enable_websocket
        return RequestSender.send_post("config", data)
示例#18
0
    def recall_message(message_id: int) -> dict:
        """
        撤回消息

        撤回群内消息的,需要有对应权限

        发送消息两分钟内可以撤销

        :param message_id: 撤回消息号
        :return: 响应结果
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": message_id
        }
        return RequestSender.send_post("recall", data)
示例#19
0
    def kick_member(group: int, member_qq: int, msg: str = None) -> dict:
        """
        移除指定成员(需要有相关权限)

        :param group: 群号
        :param member_qq: 成员qq
        :param msg: 移除消息(?)
        :return: 响应信息
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": group,
            "memberId": member_qq
        }
        if msg is not None:
            data["msg"] = msg
        return RequestSender.send_post("kick", data)
示例#20
0
    def set_mute(group: int, member_qq: int, time: int = None) -> dict:
        """
        设置禁言

        :param group: 指定群号
        :param member_qq: 指定成员qq号
        :param time: 禁言时间,默认为0
        :return: 响应结果
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": int(group),
            "memberId": member_qq,
        }
        if time is not None:
            data["time"] = time
        return RequestSender.send_post("mute", data)
示例#21
0
    def new_session_key() -> dict:
        """
        连接并返回sessionKey

        :return: 请求返回的内容
        """
        data = {"authKey": GlobalValues.conn_authkey}
        response_dict = RequestSender.send_post("auth", data)

        # 获取返回内容中的sessionKey并作为返回值
        session_key = response_dict["session"]

        # 激活session并保存sessionKey
        Conn.__verify_session_key(session_key)
        GlobalValues.conn_session_key = session_key

        return response_dict
示例#22
0
    def resp_member_join_request(event_id: int, from_qq: int, group_id: int,
                                 operate: int, message: str):
        """
        处理入群申请

        :param event_id: 事件号
        :param from_qq: 申请人qq
        :param group_id: 加的群号
        :param operate: 响应操作类型,0同意,1拒绝,2忽略,3拒绝并拉黑不再接受请求,4忽略并拉黑不再接受请求
        :param message: 回复信息
        :return:
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "eventId": event_id,
            "fromId": from_qq,
            "groupId": group_id,
            "operate": operate,
            "message": message
        }
        return RequestSender.send_post("resp/memberJoinRequestEvent", data)
示例#23
0
    def resp_new_friend_request(event_id: int, from_qq: int, group_id: int,
                                operate: int, message: str):
        """
        处理添加新好友事件

        :param event_id: 事件号
        :param from_qq: 申请人qq
        :param group_id: 申请人所在群,为0表示不是从群内 添加
        :param operate: 响应操作类型,0表示同意,1表示拒绝,2表示拒绝并拉黑
        :param message: 回复的信息
        :return: 无
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "eventId": event_id,
            "fromId": from_qq,
            "groupId": group_id,
            "operate": operate,
            "message": message
        }
        return RequestSender.send_post("resp/newFriendRequestEvent", data)
示例#24
0
    def resp_bot_invited_join_group_request_event(event_id: int, from_qq: int,
                                                  group_id: int, operate: int,
                                                  message: str):
        """
        处理被邀请入群申请

        :param event_id: 事件号
        :param from_qq: 邀请人qq
        :param group_id: 被邀请入群群号
        :param operate: 被邀请入群群名
        :param message: 回复的信息
        :return: 无
        """
        data = {
            "sessionKey": GlobalValues,
            "eventId": event_id,
            "fromId": from_qq,
            "groupId": group_id,
            "operate": operate,
            "message": message
        }
        return RequestSender.send_post("resp/botInvitedJoinGroupRequestEvent",
                                       data)
示例#25
0
    def set_group_config(group: int,
                         group_name: str = None,
                         group_announcement: str = None,
                         confess_talk: bool = None,
                         allow_member_invite: bool = None,
                         auto_approve: bool = None,
                         anonymous_chat: bool = None) -> dict:
        """
        修改群设置

        :param group: 群号
        :param group_name: 群名称
        :param group_announcement: 群公告
        :param confess_talk: 是否开启坦白说
        :param allow_member_invite: 是否允许群员邀请
        :param auto_approve: 是否开启自动审批入群
        :param anonymous_chat: 是否允许匿名聊天
        :return: 返回结果
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": group,
            "config": {}
        }
        if group_name is not None:
            data["config"]["name"] = group_name
        if group_announcement is not None:
            data["config"]["announcement"] = group_announcement
        if confess_talk is not None:
            data["config"]["confessTalk"] = confess_talk
        if allow_member_invite is not None:
            data["config"]["allowMemberInvite"] = allow_member_invite
        if auto_approve is not None:
            data["config"]["autoApprove"] = auto_approve
        if anonymous_chat is not None:
            data["config"]["anonymousChat"] = anonymous_chat
        return RequestSender.send_post("groupConfig", data)
示例#26
0
    def set_member_info(group: int,
                        member_id: int,
                        name: str = None,
                        special_title: str = None) -> dict:
        """
        设置群成员信息

        :param group: 群号
        :param member_id: 成员qq号
        :param name: 新的群名片
        :param special_title: 新的群头衔
        :return:
        """
        data = {
            "sessionKey": GlobalValues.conn_session_key,
            "target": group,
            "memberId": member_id,
            "info": {}
        }
        if name is not None:
            data["info"]["name"] = name
        if special_title is not None:
            data["info"]["specialTitle"] = special_title
        return RequestSender.send_post("memberInfo", data)