• 服务器的


    from wsgiref.simple_server import make_server
    
    def application(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])
        f1 = open('xbb.html', 'rb')
        data1 = f1.read()
        return [data1]
    
    # make_server是一个http对象
    httpd = make_server('', 8080, application)
    print('Serving HTTP on port 8080 ...')
    
    # 开始监听HTTP请求:
    httpd.serve_forever()

    服务器

    from threading import Timer
    #from wxpy import *
    #import requests
    #import  schedule
    #import  time
    
    import requests
    from requests import exceptions
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    import re
    from wxpy import *
    import  schedule
    import  time
    
    
    
    bot = None
    def get_news1():
        #获取金山词霸每日一句,英文和翻译
        url = "http://open.iciba.com/dsapi/"
        r = requests.get(url)
        print(r.json())
        contents = r.json()['content']
        note = r.json()['note']
        translation = r.json()['translation']
        return contents,note,translation
    def login_wechat():
    
        global bot
        #bot = Bot()
        bot = Bot(console_qr=2)#Linux专用,像素二维码
        #bot = Bot(console_qr=2,cache_path="botoo.pkl")#Linux专用,像素二维码
    
    def send_news():
    
        try:
            my0_friend = bot.friends().search(u'王琳杰')[0]    #你朋友的微信名称,不是备注,也不是微信帐号。
            my1_friend = bot.friends().search(u'smile')[0]
            #my2_friend = bot.friends().search(u'e.g.')[0] 
    
            my0_groups = bot.groups().search(u'聊天机器人测试')[0]    #你群的微信名称,不是备注,也不是微信帐号。
            my1_groups = bot.groups().search(u'测试')[0]
    
            my0_friend.send(get_news1()[0])
            #my_friend.send(get_news1()[1])
            #my_friend.send(get_news1()[2])
            #my_friend.send(get_news1()[1][5:])
            my1_friend.send(get_news1()[0])
            #my2_friend.send(get_news1()[0])
    
            my0_groups.send(get_news1()[0])
            my1_groups.send(get_news1()[0])
            #t = Timer(86400, send_news) #每86400秒(1天),发送1次,不用linux的定时任务是因为每次登陆都需要扫描二维码登陆,很麻烦的一件事,就让他一直挂着吧
            #t = Timer(5, send_news) 
            #t.start()
        except:
            print(u"今天消息发送失败了")
    # coding:utf-8
    '''
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    '''
    import itchat,time,re,requests
    from threading  import Timer
    from itchat.content import *
    def get_tl_res(msg):
        url = "http://www.tuling123.com/openapi/api"
        data = {
            "key": "e549bd6d80514f96af0c70260ab8e1d4",# 自己注册图灵,获取KEY
            "info": msg,
            "userid": "pth-robot"
        }
        res = requests.post(url, data=data).json()
        return res.get("text")
    @itchat.msg_register([TEXT],isGroupChat=True)
    def text_reply(msg):
        #if msg['isAt']:
        res = get_tl_res(msg["Text"])
        itchat.send((res), msg["FromUserName"])
    @itchat.msg_register([PICTURE,RECORDING,VIDEO,SHARING],isGroupChat=True)
    def other_reply(msg):
        #if  msg['isAt']:
        res = get_tl_res(msg[PICTURE,RECORDING,VIDEO,SHARING])
        itchat.send((res),msg["FromUserName"])
    
    # 注册文本消息,绑定到text_reply处理函数
    # text_reply msg_files可以处理好友之间的聊天回复
    @itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
    def text1_reply(msg):
        res = get_tl_res(msg["Text"])
        itchat.send((res), msg["FromUserName"])
    @itchat.msg_register([PICTURE,RECORDING,VIDEO,SHARING])
    def other_reply1(msg):
        #res = get_tl_res(msg[PICTURE,RECORDING,VIDEO,SHARING])
        res = get_tl_res(msg[PICTURE,RECORDING,VIDEO,SHARING])
        itchat.send((res),msg["FromUserName"])
    
    
    
    #itchat.auto_login(hotReload=True)
    itchat.auto_login(enableCmdQR=2)
    #itchat.auto_login(enableCmdQR=2, hotReload=True) 
    itchat.run()
    # coding:utf-8
    import itchat
    from itchat.content import TEXT
    from itchat.content import *
    import sys
    import time
    import re
    
    #reload(sys)
    #sys.setdefaultencoding('utf8')
    import importlib
    importlib.reload(sys)
    import os
    
    msg_information = {}
    face_bug = None  # 针对表情包的内容
    
    
    @itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isFriendChat=True,
                         isMpChat=True)
    def handle_receive_msg(msg):
        global face_bug
        msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 接受消息的时间
        msg_from = itchat.search_friends(userName=msg['FromUserName'])['NickName']  # 在好友列表中查询发送信息的好友昵称
        msg_time = msg['CreateTime']  # 信息发送的时间
        msg_id = msg['MsgId']  # 每条信息的id
        msg_content = None  # 储存信息的内容
        msg_share_url = None  # 储存分享的链接,比如分享的文章和音乐
        print(msg['Type'])
        print(msg['MsgId'])
        if msg['Type'] == 'Text' or msg['Type'] == 'Friends':  # 如果发送的消息是文本或者好友推荐
            msg_content = msg['Text']
            print(msg_content)
    
        # 如果发送的消息是附件、视屏、图片、语音
        elif msg['Type'] == "Attachment" or msg['Type'] == "Video" 
                or msg['Type'] == 'Picture' 
                or msg['Type'] == 'Recording':
            msg_content = msg['FileName']  # 内容就是他们的文件名
            msg['Text'](str(msg_content))  # 下载文件
            # print msg_content
        elif msg['Type'] == 'Card':  # 如果消息是推荐的名片
            msg_content = msg['RecommendInfo']['NickName'] + '的名片'  # 内容就是推荐人的昵称和性别
            if msg['RecommendInfo']['Sex'] == 1:
                msg_content += '性别为男'
            else:
                msg_content += '性别为女'
    
            print(msg_content)
        elif msg['Type'] == 'Map':  # 如果消息为分享的位置信息
            x, y, location = re.search(
                "<location x="(.*?)" y="(.*?)".*label="(.*?)".*", msg['OriContent']).group(1, 2, 3)
            if location is None:
                msg_content = r"纬度->" + x.__str__() + " 经度->" + y.__str__()  # 内容为详细的地址
            else:
                msg_content = r"" + location
        elif msg['Type'] == 'Sharing':  # 如果消息为分享的音乐或者文章,详细的内容为文章的标题或者是分享的名字
            msg_content = msg['Text']
            msg_share_url = msg['Url']  # 记录分享的url
            print(msg_share_url)
        face_bug = msg_content
    
        ##将信息存储在字典中,每一个msg_id对应一条信息
        msg_information.update(
            {
                msg_id: {
                    "msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec,
                    "msg_type": msg["Type"],
                    "msg_content": msg_content, "msg_share_url": msg_share_url
                }
            }
        )
    
    
    ##这个是用于监听是否有friend消息撤回
    @itchat.msg_register(NOTE, isFriendChat=True, isGroupChat=True, isMpChat=True)
    def information(msg):
        # 这里如果这里的msg['Content']中包含消息撤回和id,就执行下面的语句
        if '撤回了一条消息' in msg['Content']:
            old_msg_id = re.search("<msgid>(.*?)</msgid>", msg['Content']).group(1)  # 在返回的content查找撤回的消息的id
            old_msg = msg_information.get(old_msg_id)  # 得到消息
            print(old_msg)
            if len(old_msg_id) < 11:  # 如果发送的是表情包
                itchat.send_file(face_bug, toUserName=msg['FromUserName'])
            else:  # 发送撤回的提示给文件助手
                msg_body = "" 
                           + old_msg.get('msg_from') + " 撤回了 】
    " 
                           + old_msg.get("msg_type") + " 消息:" + "
    " 
                           + old_msg.get('msg_time_rec') + "
    " 
                           + r"" + old_msg.get('msg_content')
                # 如果是分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手
                if old_msg['msg_type'] == "Sharing":
                    msg_body += "
    就是这个链接➣ " + old_msg.get('msg_share_url')
    
                # 将撤回消息发送到文件助手
                itchat.send_msg(msg_body, toUserName=msg['FromUserName'])
                # 有文件的话也要将文件发送回去
                if old_msg["msg_type"] == "Picture" 
                        or old_msg["msg_type"] == "Recording" 
                        or old_msg["msg_type"] == "Video" 
                        or old_msg["msg_type"] == "Attachment":
                    file = '@fil@%s' % (old_msg['msg_content'])
                    itchat.send(msg=file, toUserName=msg['FromUserName'])
                    os.remove(old_msg['msg_content'])
                # 删除字典旧消息
                msg_information.pop(old_msg_id)
    
    
    @itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isGroupChat=True)
    def handle_receive_msg(msg):
        global face_bug
        msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 接受消息的时间
        # groupid = msg['FromUserName']
        # chatroom = itchat.search_chatrooms(userName=groupid)
        msg_Actual_from = msg['ActualNickName']
        # msg_Actual_from = msg['User']
        # msg_from = msg_Actual_from['Self']['NickName']
        msg_from = msg_Actual_from
        msg_time = msg['CreateTime']  # 信息发送的时间
        msg_id = msg['MsgId']  # 每条信息的id
        msg_content = None  # 储存信息的内容
        msg_share_url = None  # 储存分享的链接,比如分享的文章和音乐
        print(msg['Type'])
        print(msg['MsgId'])
        if msg['Type'] == 'Text' or msg['Type'] == 'Friends':  # 如果发送的消息是文本或者好友推荐
            msg_content = msg['Text']
            print(msg_content)
    
        # 如果发送的消息是附件、视屏、图片、语音
        elif msg['Type'] == "Attachment" or msg['Type'] == "Video" 
                or msg['Type'] == 'Picture' 
                or msg['Type'] == 'Recording':
            msg_content = msg['FileName']  # 内容就是他们的文件名
            msg['Text'](str(msg_content))  # 下载文件
            # print msg_content
        elif msg['Type'] == 'Card':  # 如果消息是推荐的名片
            msg_content = msg['RecommendInfo']['NickName'] + '的名片'  # 内容就是推荐人的昵称和性别
            if msg['RecommendInfo']['Sex'] == 1:
                msg_content += '性别为男'
            else:
                msg_content += '性别为女'
    
            print(msg_content)
        elif msg['Type'] == 'Map':  # 如果消息为分享的位置信息
            x, y, location = re.search(
                "<location x="(.*?)" y="(.*?)".*label="(.*?)".*", msg['OriContent']).group(1, 2, 3)
            if location is None:
                msg_content = r"纬度->" + x.__str__() + " 经度->" + y.__str__()  # 内容为详细的地址
            else:
                msg_content = r"" + location
        elif msg['Type'] == 'Sharing':  # 如果消息为分享的音乐或者文章,详细的内容为文章的标题或者是分享的名字
            msg_content = msg['Text']
            msg_share_url = msg['Url']  # 记录分享的url
            print(msg_share_url)
        face_bug = msg_content
    
        ##将信息存储在字典中,每一个msg_id对应一条信息
        msg_information.update(
            {
                msg_id: {
                    "msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec,
                    "msg_type": msg["Type"],
                    "msg_content": msg_content, "msg_share_url": msg_share_url
                }
            }
        )
    
    
    ##这个是用于监听是否有Group消息撤回
    @itchat.msg_register(NOTE, isGroupChat=True, isMpChat=True)
    def information(msg):
    
        # 这里如果这里的msg['Content']中包含消息撤回和id,就执行下面的语句
        if '撤回了一条消息' in msg['Content']:
            old_msg_id = re.search("<msgid>(.*?)</msgid>", msg['Content']).group(1)  # 在返回的content查找撤回的消息的id
            old_msg = msg_information.get(old_msg_id)  # 得到消息
            print(old_msg)
            if len(old_msg_id) < 11:  # 如果发送的是表情包
                itchat.send_file(face_bug, toUserName=msg['FromUserName'])
            else:  # 发送撤回的提示给文件助手
                msg_body = "" 
                           + old_msg.get('msg_from') + " 群消息撤回提醒】
    " 
                           + " 撤回了 " + old_msg.get("msg_type") + " 消息:" + "
    " 
                           + old_msg.get('msg_time_rec') + "
    " 
                           + r"" + old_msg.get('msg_content')
                # 如果是分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手
                if old_msg['msg_type'] == "Sharing":
                    msg_body += "
    就是这个链接➣ " + old_msg.get('msg_share_url')
    
                # 将撤回消息发送到文件助手
                itchat.send_msg(msg_body, toUserName=msg['FromUserName'])
                # 有文件的话也要将文件发送回去
                if old_msg["msg_type"] == "Picture" 
                        or old_msg["msg_type"] == "Recording" 
                        or old_msg["msg_type"] == "Video" 
                        or old_msg["msg_type"] == "Attachment":
                    file = '@fil@%s' % (old_msg['msg_content'])
                    itchat.send(msg=file, toUserName=msg['FromUserName'])
                    os.remove(old_msg['msg_content'])
                # 删除字典旧消息
                msg_information.pop(old_msg_id)
    
    
    # Main (enableCmdQr = True 时,将会生成二维码图片,如 =2 时二维码乱码的话 改为1 即可
    itchat.auto_login(enableCmdQR=2, hotReload=True)
    itchat.run()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    
                                                                             
    # -*- coding: utf-8 -*-
    #from __future__ import unicode_literals
    from threading import Timer
    #from wxpy import *
    #import requests
    #import  schedule
    #import  time
    
    import requests
    from requests import exceptions
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    import re
    from wxpy import *
    import  schedule
    import  time
    
    
    
    bot = None
    
    
    def login_wechat():
    
        global bot
        #bot = Bot()
        bot = Bot(console_qr=2)#Linux专用,像素二维码
    
    
    
    def sendblogmsg_1(content):
        #搜索自己的好友,注意中文字符前需要+u
        my_friend = bot.friends().search(u'卿尘')[0]
        my_friend.send(content)
    
    def job_1():
    
        if bot == None:
            login_wechat()
    
        contents = '哈喽'
           # result3 = '最低温度:' + temperatureLow
        #print('最低温度:' + temperatureLow)
        #print('最高温度:' + temperatureHigh)
       # print('天气:' + weather)
        sendblogmsg_1(contents)
    
        t = Timer(10, job_1)
        t.start()
    
    
    
    
    
    
    
    
    if __name__ == "__main__":
        if bot == None:
            login_wechat()
        job_1()
        #print(get_news1()[0])
        #print(get_news1()[1][5:])
  • 相关阅读:
    Best Practices for Background Jobs_3 Managing Device Awake State之电源锁、Alarm、WakefulBroadcastReceiver
    一种扩大View点击范围的方法
    IntentService
    DNS
    GPU硬件加速相关
    SOA 面向服务的体系结构
    android APK 文件的生成过程
    PHP简介
    代码安装apk文件
    View 的 focus 和 selected 状态, TabContainer实现
  • 原文地址:https://www.cnblogs.com/wanglinjie/p/9775523.html
Copyright © 2020-2023  润新知