コード例 #1
0
 def OnReceive(self, Sender, ConnID, Data):
     flag = int.from_bytes(Data[0:4], byteorder='little')
     # print(flag,type(flag))
     if flag in [
             256,
             294,
     ]:
         return
     data = Data[4:].decode()
     data = utility.aes_decode(data, "money888money888")
     ret = utility.get_dict(data)
     print(ConnID, '标识:{},已接收到服务器发来的消息:{}'.format(flag, ret))
コード例 #2
0
ファイル: pack_server.py プロジェクト: tedinGH/lvyaoyu
    def OnReceive(self, Sender, ConnID, Data):
        flag = int.from_bytes(Data[0:4], byteorder='little')
        if flag in [256, 294, ]:
            return
        data = Data[4:].decode()
        data = utility.aes_decode(data, "money888money888")
        ret = utility.get_dict(data)
        if ret.get('is_self') == 1:
            return
        print(ConnID, '标识:{},已接收到客户端发来的消息:{}'.format(flag, ret))

        # 筛选是否为群聊
        if not ret.get('sender').endswith('@chatroom'):
            return
        # 筛选具体群聊
        if ret.get('sender') == '25573652600@chatroom':
            tail = ""
            global tail_count

            # 处理虚拟货币
            if ret.get('type') == 1:
                label = ret.get('msg').lower()
                try:
                    response = requests.get('http://rpa.uniner.com:5000/search/%s' % label)
                    data = json.loads(response.text)
                    # print(data)
                    amount = data["tick"]["amount"]
                    count = data['tick']['count']
                    open = data['tick']['open']
                    close = data['tick']['close']
                    low = data['tick']['low']
                    high = data['tick']['high']
                    vol = data['tick']['vol']
                    if tail_count % 5 == 0:
                        tail = "随机小尾巴广告 www.uniner.com"
                    tail_count += 1
                    msg = '[%s 滚动24小时行情\n' \
                          '----------------\n' \
                          '以基础币种计量的交易量    %s\n' \
                          '交易次数    %s\n' \
                          '本阶段开盘价    %s\n' \
                          '本阶段收盘价    %s\n' \
                          '本阶段最低价    %s\n' \
                          '本阶段最高价    %s\n' \
                          '以报价币种计量的交易量    %s\n' \
                          '----------------\n' \
                          '%s]'
                    msg = msg % (label.upper(), amount, count, open, close, low, high, vol, tail)
                    data = send_msg(ret.get('sender'), msg)

                except JSONDecodeError as e:
                    print(e)
                    data = send_msg(ret.get('sender'), '未知币种')
                finally:
                    self.Send(Sender=Sender, ConnID=ConnID, Data=data)

            # 处理图片
            if ret.get('type') == 3:
                src_path = ret.get('extra_data')
                if not os.path.isabs(src_path):
                    return
                images_path = r'C:\Users\EDZ\PycharmProjects\test\hpsocket_exanple\images'
                # print('dat文件路径', src_path)

                if not wait_file(src_path):
                    print(src_path, '未下载成功')
                    return
                wd = WechatImageDecoder(src_path, images_path)
                dst_path = wd.run()
                # print('解密文件路径', dst_path)
                if not wait_file(dst_path):
                    print(dst_path, '未解密成功')
                    return

                img_base64 = utility.get_file_base64(dst_path)

                access_token = "24.d318d985795054273d0546fa890567e8.2592000.1610267722.282335-23048184"
                headers = {
                    "Content-Type": "application/x-www-form-urlencoded",
                }
                args = "image=" + parse.quote(img_base64) + "&id_card_side=front"
                url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + access_token
                response = requests.post(url=url, headers=headers, data=args)
                data = json.loads(response.text)
                # print(data)
                # tab = data.encode('utf-8')
                name = data["words_result"]["姓名"]["words"]
                nation = data["words_result"]["民族"]["words"]
                address = data["words_result"]["住址"]["words"]
                id_card = data["words_result"]["公民身份号码"]["words"]
                born = data["words_result"]["出生"]["words"]
                sex = data["words_result"]["性别"]["words"]
                # print(name, sex, born, nation, address, id_card)
                if tail_count % 5 == 0:
                    tail = "随机小尾巴广告 www.uniner.com"
                tail_count += 1
                text = '[身份证信息\n' \
                       '----------\n' \
                       '姓名:%s\n' \
                       '性别:%s\n' \
                       '出生年月日:%s\n' \
                       '民族:%s\n' \
                       '住址:%s\n' \
                       '身份证号码:%s\n' \
                       '----------\n' \
                       '%s]' % (name, sex, born, nation, address, id_card, tail)
                data = send_msg(ret.get('sender'), text)
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)

            # 处理位置信息
            if ret.get('type') == 48:
                # if not ret.get('thumb_path'):
                #     return
                msg = ret.get('msg')
                try:
                    lng = re.search('y="(.+?)"', msg).group(1)
                    lat = re.search('x="(.+?)"', msg).group(1)
                    print(lng, lat)
                    if tail_count % 5 == 0:
                        tail = "随机小尾巴广告 www.uniner.com"
                    tail_count += 1
                    text = '[经纬度查询\n' \
                           '----------\n' \
                           '经度:%s\n' \
                           '纬度:%s\n' \
                           '----------\n' \
                           '%s]' % (lng, lat, tail)
                    data = send_msg(ret.get('sender'), text)
                except Exception as e:
                    print(e)
                    data = '不是有效地址信息'
                finally:
                    self.Send(Sender=Sender, ConnID=ConnID, Data=data)

        if ret.get('sender') == '18551934675@chatroom':
            if ret.get('type') == 1 and (ret.get('msg') in ['时间','shijian','sj','time','Time','時間']):
                new_datetime = time.time()
                start_datetime = time.strptime('{} 09:30:00'.format(time.strftime('%Y-%m-%d', time.localtime())),
                                               "%Y-%m-%d %H:%M:%S")
                start_datetime = time.mktime(start_datetime)
                end_datetime = time.strptime('{} 18:30:00'.format(time.strftime('%Y-%m-%d', time.localtime())),
                                             "%Y-%m-%d %H:%M:%S")
                end_datetime = time.mktime(end_datetime)
                to_work_time_difference = int(start_datetime - new_datetime)
                off_work_time_difference = int(end_datetime - new_datetime)

                print(to_work_time_difference)
                print(off_work_time_difference)

                if to_work_time_difference >= 0:
                    msg = '距离上班班时间还有 %s 秒' % abs(to_work_time_difference)
                    data = send_msg(ret.get('sender'), msg)
                    self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                elif to_work_time_difference < 0:
                    if off_work_time_difference >= 0:
                        msg = '距离下班时间还有 %s 秒' % off_work_time_difference
                    else:
                        msg = '已经加班 %s 秒' % abs(off_work_time_difference)
                    data = send_msg(ret.get('sender'), msg)
                    self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        return HPSocket.EnHandleResult.HR_OK
コード例 #3
0
ファイル: pack_server.py プロジェクト: tedinGH/lvyaoyu
 def OnSend(self, Sender, ConnID, Data):
     flag = int.from_bytes(Data[0:4], byteorder='little')
     data = Data[8:]
     data = utility.aes_decode(data, "money888money888")
     ret = utility.get_dict(data)
     print(ConnID, '标识:{},已向客户端发送消息:{}'.format(flag, ret))
コード例 #4
0
ファイル: sales_robot.py プロジェクト: tedinGH/lvyaoyu
    def OnReceive(self, Sender, ConnID, Data):
        flag = int.from_bytes(Data[0:4], byteorder='little')
        if flag in [
                256,
                294,
        ]:
            return
        data = Data[4:].decode()
        data = utility.aes_decode(data, "money888money888")
        ret = utility.get_dict(data)
        if ret.get('is_self') == 1:
            return
        print(ConnID, '标识:{},已接收到客户端发来的消息:{}'.format(flag, ret))

        global statu
        global n

        if ret.get('sender') != '25573652600@chatroom':
            return

        if statu == 1:
            # 1.处理位置信息
            if ret.get('type') == 48:
                msg = ret.get('msg')
                label = re.search('label="(.*?)"', msg)
                print(label)
                content['label'] = label

                statu += 1
            else:
                data = send_msg(ret.get('sender'), '你发送的不是位置信息,请重新发送!')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)

        if statu == 2:
            # 处理拍照
            if ret.get('type') != 3:
                data = send_msg(ret.get('sender'), '你发送的不是图片,请重新发送!')
            self.Send(Sender=Sender, ConnID=ConnID, Data=data)
            src_path = ret.get('extra_data')
            if not os.path.isabs(src_path):
                return
            images_path = r'C:\Users\EDZ\PycharmProjects\test\hpsocket_exanple\images'
            if not wait_file(src_path):
                print(src_path, '未下载成功')
                return
            wd = WechatImageDecoder(src_path, images_path)
            dst_path = wd.run()
            if not wait_file(dst_path):
                print(dst_path, '未解密成功')
                return
            content['img_path'] = dst_path
            statu += 1

        if ret.get('type') != 1:
            data = send_msg(ret.get('sender'), '输入信息应为文本格式,请重新发送!:')
            self.Send(Sender=Sender, ConnID=ConnID, Data=data)

        if statu == 3:
            data = send_msg(ret.get('sender'), '请输入要拜访的公司名称:')
            self.Send(Sender=Sender, ConnID=ConnID, Data=data)
            statu += 1

        if statu == 4:
            # 接收保存的公司名称
            company_name = ret.get('msg')
            print(company_name)
            content['company_name'] = company_name
            statu += 1

        if statu == 5:
            text = '您是第一次拜访客户,请选择输入项:\n' \
                   '1.联系人\n' \
                   '2.联系方式\n' \
                   '3.项目摘要\n' \
                   '4.最新状态\n' \
                   '5.重新输入\n' \
                   '6.输入结束\n'
            data = send_msg(ret.get('sender'), text)
            self.Send(Sender=Sender, ConnID=ConnID, Data=data)
            statu += 1

        if statu == 6:
            if ret.get('msg').strip() == 1:
                data = send_msg(ret.get('sender'), '请输入联系人:')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                n = 1
            if n == 1:
                # 保存联系人
                contact_person = ret.get('msg')
                print(contact_person)
                content['contact_person'] = contact_person

            if ret.get('msg').strip() == 2:
                data = send_msg(ret.get('sender'), '请输入联系方式:')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                n = 2
            if n == 2:
                # 保存联系方式
                contact_details = ret.get('msg')
                print(contact_details)
                content['contact_details'] = contact_details

            if ret.get('msg').strip() == 3:
                data = send_msg(ret.get('sender'), '请输入项目摘要:')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                n = 3
            if n == 3:
                # 保存项目摘要
                project_abstract = ret.get('msg')
                print(project_abstract)
                content['project_abstract'] = project_abstract

            if ret.get('msg').strip() == 4:
                data = send_msg(ret.get('sender'), '请输入最新状态:')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                n = 4
            if n == 4:
                # 保存最新状态
                latest_status = ret.get('msg')
                print(latest_status)
                content['latest_status'] = latest_status

            if ret.get('msg').strip() == 5:
                data = send_msg(ret.get('sender'), '请重新输入:')
                self.Send(Sender=Sender, ConnID=ConnID, Data=data)
                n = 5
            if n == 5:
                statu -= 1

            if ret.get('msg').strip() == 6:
                n = 6
            if n == 6:
                # 退出
                statu += 1

        if statu == 7:
            print("结束")
            text = '位置:{label},' \
                   '图片:{img_path},' \
                   '公司名称:{company_name},' \
                   '联系人:{contact_person},' \
                   '联系方式:{contact_details},' \
                   '项目摘要:{project_abstract},' \
                   '最新状态:{latest_status}'.format(**content)
            data = send_msg(ret.get('sender'), text)
            self.Send(Sender=Sender, ConnID=ConnID, Data=data)

        # # 筛选是否为群聊
        # if not ret.get('sender').endswith('@chatroom'):
        #     return
        # # 筛选具体群聊
        # if ret.get('sender') == '25573652600@chatroom':
        #     tail = ""
        #     global tail_count
        #
        #     # 处理虚拟货币
        #     if ret.get('type') == 1:
        #         label = ret.get('msg').lower()
        #         try:
        #             response = requests.get('http://rpa.uniner.com:5000/search/%s' % label)
        #             data = json.loads(response.text)
        #             # print(data)
        #             amount = data["tick"]["amount"]
        #             count = data['tick']['count']
        #             open = data['tick']['open']
        #             close = data['tick']['close']
        #             low = data['tick']['low']
        #             high = data['tick']['high']
        #             vol = data['tick']['vol']
        #             if tail_count % 5 == 0:
        #                 tail = "随机小尾巴广告 www.uniner.com"
        #             tail_count += 1
        #             msg = '[%s 滚动24小时行情\n' \
        #                   '----------------\n' \
        #                   '以基础币种计量的交易量    %s\n' \
        #                   '交易次数    %s\n' \
        #                   '本阶段开盘价    %s\n' \
        #                   '本阶段收盘价    %s\n' \
        #                   '本阶段最低价    %s\n' \
        #                   '本阶段最高价    %s\n' \
        #                   '以报价币种计量的交易量    %s\n' \
        #                   '----------------\n' \
        #                   '%s]'
        #             msg = msg % (label.upper(), amount, count, open, close, low, high, vol, tail)
        #             data = send_msg(ret.get('sender'), msg)
        #
        #         except JSONDecodeError as e:
        #             print(e)
        #             data = send_msg(ret.get('sender'), '未知币种')
        #         finally:
        #             self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        #
        #     # 处理图片
        #     if ret.get('type') == 3:
        #         src_path = ret.get('extra_data')
        #         if not os.path.isabs(src_path):
        #             return
        #         images_path = r'C:\Users\EDZ\PycharmProjects\test\hpsocket_exanple\images'
        #         # print('dat文件路径', src_path)
        #
        #         if not wait_file(src_path):
        #             print(src_path, '未下载成功')
        #             return
        #         wd = WechatImageDecoder(src_path, images_path)
        #         dst_path = wd.run()
        #         # print('解密文件路径', dst_path)
        #         if not wait_file(dst_path):
        #             print(dst_path, '未解密成功')
        #             return
        #         img_base64 = utility.get_file_base64(dst_path)
        #
        #         access_token = "24.d318d985795054273d0546fa890567e8.2592000.1610267722.282335-23048184"
        #         headers = {
        #             "Content-Type": "application/x-www-form-urlencoded",
        #         }
        #         args = "image=" + parse.quote(img_base64) + "&id_card_side=front"
        #         url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + access_token
        #         response = requests.post(url=url, headers=headers, data=args)
        #         data = json.loads(response.text)
        #         # print(data)
        #         # tab = data.encode('utf-8')
        #         name = data["words_result"]["姓名"]["words"]
        #         nation = data["words_result"]["民族"]["words"]
        #         address = data["words_result"]["住址"]["words"]
        #         id_card = data["words_result"]["公民身份号码"]["words"]
        #         born = data["words_result"]["出生"]["words"]
        #         sex = data["words_result"]["性别"]["words"]
        #         # print(name, sex, born, nation, address, id_card)
        #         if tail_count % 5 == 0:
        #             tail = "随机小尾巴广告 www.uniner.com"
        #         tail_count += 1
        #         text = '[身份证信息\n' \
        #                '----------\n' \
        #                '姓名:%s\n' \
        #                '性别:%s\n' \
        #                '出生年月日:%s\n' \
        #                '民族:%s\n' \
        #                '住址:%s\n' \
        #                '身份证号码:%s\n' \
        #                '----------\n' \
        #                '%s]' % (name, sex, born, nation, address, id_card, tail)
        #         data = send_msg(ret.get('sender'), text)
        #         self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        #
        #     # 处理位置信息
        #     if ret.get('type') == 48:
        #         # if not ret.get('thumb_path'):
        #         #     return
        #         msg = ret.get('msg')
        #         try:
        #             lng = re.search('y="(.+?)"', msg).group(1)
        #             lat = re.search('x="(.+?)"', msg).group(1)
        #             print(lng, lat)
        #             if tail_count % 5 == 0:
        #                 tail = "随机小尾巴广告 www.uniner.com"
        #             tail_count += 1
        #             text = '[经纬度查询\n' \
        #                    '----------\n' \
        #                    '经度:%s\n' \
        #                    '纬度:%s\n' \
        #                    '----------\n' \
        #                    '%s]' % (lng, lat, tail)
        #             data = send_msg(ret.get('sender'), text)
        #         except Exception as e:
        #             print(e)
        #             data = '不是有效地址信息'
        #         finally:
        #             self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        #
        # if ret.get('sender') == '18551934675@chatroom':
        #     if ret.get('type') == 1 and '时间' in ret.get('msg'):
        #         new_datetime = time.time()
        #         start_datetime = time.strptime('{} 09:30:00'.format(time.strftime('%Y-%m-%d', time.localtime())),
        #                                        "%Y-%m-%d %H:%M:%S")
        #         start_datetime = time.mktime(start_datetime)
        #         end_datetime = time.strptime('{} 18:30:00'.format(time.strftime('%Y-%m-%d', time.localtime())),
        #                                      "%Y-%m-%d %H:%M:%S")
        #         end_datetime = time.mktime(end_datetime)
        #         to_work_time_difference = int(start_datetime - new_datetime)
        #         off_work_time_difference = int(end_datetime - new_datetime)
        #
        #         if to_work_time_difference <= 0:
        #             msg = '距离上班班时间还有 %s 秒' % abs(to_work_time_difference)
        #             data = send_msg(ret.get('sender'), msg)
        #             self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        #         elif to_work_time_difference > 0:
        #             if off_work_time_difference >= 0:
        #                 msg = '距离下班时间还有 %s 秒' % off_work_time_difference
        #             else:
        #                 msg = '已经加班 %s 秒' % abs(off_work_time_difference)
        #             data = send_msg(ret.get('sender'), msg)
        #             self.Send(Sender=Sender, ConnID=ConnID, Data=data)
        return HPSocket.EnHandleResult.HR_OK