# -*- coding: utf-8 -*-
''' 这一次对上一个demo进行了扩充 主要是添加了tuling机器人的自动回复以及让python进程保持且可以调试 主要还是归功于wxpy的embed()函数。。。 tulingKey需要自己申请 很简单,上网站注册一下账号就ok了 下面给出图灵网址:http://www.tuling123.com/ 然后就是wxpy的灵活使用,详情可以参照官网的API文档 网址:http://wxpy.readthedocs.io/zh/latest/index.html 然后接下来就是我写的一个小例子 主要功能有 1、单人聊天消息反馈(备注在代码里改,懒得写交互了,反正大家都懂得) 2、单人聊天消息发送(根据输入的备注,这里写了简单的交互,没写exception处理) 3、图灵自动聊天(可以通过关闭注册函数来关闭或者开启) 注意此代码不可直接复制粘贴: 1、需要自己申请tulingkey赋值 2、需要指定进程保持时候和谁通信 当然也可以自己做修改自由发挥! '''

from __future__ import unicode_literals
from wxpy import *
import requests
from threading import Timer
from tkinter import *

tulingKey = 'xxxxx'
itchat = Bot(console_qr=2,cache_path="botoo.pkl")
friend = itchat.friends().search(name = u'xxxx')
tuling = Tuling(api_key=tulingKey)
def getNews():
    url = "http://open.iciba.com/dsapi/"
    r = requests.get(url)
    content = r.json()['content']
    note = r.json()['note']
    return content, note
#tuling自动回复的消息注册

def reply(msg):
    return tuling.do_reply(msg)

#接受到消息后的打印
@itchat.register(msg_types=TEXT)
def printMsg(msg):  
    print(msg)
    print('tuling自动回复消息---'+reply(msg))
#发送每日一句消息函数
def sendNews():
    try:
        #这里是备注print


        content = getNews()

        message1 = str(content[0])
        message2 = str(content[1])
        print('--------------今日内容:-------------\n'+message1+'\n'+message2+"\n---------------------------------")
        # message3 = "进行最后一项测试embed()"
        print('----当前friend对象为:'+str(friend))

        for index,item in enumerate(friend):
            rightMark = True
            while rightMark:
                print("---------------将要发送给 "+str(item)+" ing,index="+str(index)+' 是否发送?')
                order = input("-----------------请输入指令(1是2否3退出当前操作循环):")
                order = int(order)
                if(order == 1):
                    rightMark = False
                    item.send(message1)
                    item.send(message2)
                    print("----------消息发送成功----------------")

                elif(order ==2):
                    rightMark = False
                    print("----------消息发送操作被忽略-----------")
                    continue
                elif(order ==3):
                    rightMark = False
                    print("----------消息发送程序退出------------")
                    break
                else:
                    print("-------指令错误,请重新输入!")           
    except:
        errorMessage = "BugBugBug!"
        for index,item in enumerate(friend):
            item.send(errorMessage)

def sendMessage():
    name = input("请输入好友备注:")
    friend = itchat.friends().search(name = name)
    if(len(friend)>0):
        print("找寻到备注为"+name+"的好友\n"+str(friend)+"\n如果存在多个该备注好友,默认选择第一个人发送")
        sendMessageByFriend(friend[0])
    else:
        print("未找到备注为:"+name+"的好友!")

def sendMessageByFriend(friend):


    rightMark = True
    while rightMark:
        mess = input("------请输入您要发的信息:")
        order = input("----------即将发送的信息为:"+mess+" 请选择是否发送 0是1否--------")
        order = int(order)
        if(order == 0):
            friend.send(mess)
            print("----------消息已成功发送(注意此处无catch)-------")
            rightMark = False
        elif(order ==1):
            print("----------消息未发送--------")
            rightMark = False
        else:
            print("---------指令错误,请重新输入!")




if __name__ == "__main__":
    # sendNews()
    embed()

更多相关文章

  1. pylogin系列之V2EX自动领币消息提醒
  2. Linux下多任务间通信和同步-消息队列
  3. 安卓消息处理机制
  4. JAVA实现 springMVC方式的微信接入、实现消息自动回复
  5. 为什么我们应该将XMPP而不是JSON用于简单(仅文本)消息传递应用程序
  6. Android[中级教程] 深入剖析Android消息机制
  7. Android消息推送接收后,通知栏的显示
  8. 在使用visualvm进行分析时,如何避免“Profiler代理警告:无法查找缓

随机推荐

  1. Android(安卓)Studio开发Groovy
  2. Android ProgressBar进度条
  3. 译:Android的一些基础问题(一)
  4. Android联系人3--联系人分组相关
  5. android中tcpdump抓包
  6. Android系统中关于音量调节粒度修改
  7. 透明button 转
  8. Android recyclerview实现查看更多/收起
  9. Android RecycleView
  10. 【Android】保存Bitmap到SD卡