服务器的
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') + " 撤回了 】\n" \ + old_msg.get("msg_type") + " 消息:" + "\n" \ + old_msg.get('msg_time_rec') + "\n" \ + r"" + old_msg.get('msg_content') # 如果是分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手 if old_msg['msg_type'] == "Sharing": msg_body += "\n就是这个链接➣ " + 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') + " 群消息撤回提醒】\n" \ + " 撤回了 " + old_msg.get("msg_type") + " 消息:" + "\n" \ + old_msg.get('msg_time_rec') + "\n" \ + r"" + old_msg.get('msg_content') # 如果是分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手 if old_msg['msg_type'] == "Sharing": msg_body += "\n就是这个链接➣ " + 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:])