def sendTodaySche(): mysqldb = MysqlDb("schedule") thisMonth = datetime.today().__format__("%Y-%m") today = datetime.today().__format__("%m-%d").split('-') result = mysqldb.sql_select("SELECT * FROM `" + thisMonth + "` WHERE date = '" + today + "'")["data"] msgs = ["今日值班人员如下:"] for i in range(0,len(tempMsgs)): if '、' in result[0][i+2]: splitStrs = result[0][i+2].split("、") temp = [] for k in range(0,len(splitStrs)): if i == 0 and k == 1: temp.append("、"+splitStrs[k]) else: temp.append("@"+splitStrs[k]) temp[0] = tempMsgs[i]+temp[0] msgs.append(temp) else: msgs.append(tempMsgs[i] + '@' + result[0][i+2])
def SendWrapAndATMsg(self,msgs, clear=True): '''向当前窗口发送换行消息和@消息 msgs : 要发送的消息列表 clear : 是否清除当前已编辑内容 ''' self.UiaAPI.SwitchToThisWindow() if clear: self.EditMsg.SendKeys('{Ctrl}a', waitTime=0) for i in range(0,len(msgs)): if type(msgs[i]) ==type([]): for k in range(0,len(msgs[i])): self.EditMsg.SendKeys(msgs[i][k], waitTime=0) if i == 1 and k == 1: pass else: self.EditMsg.SendKeys('{Enter}', waitTime=0) self.EditMsg.SendKeys('{Shift}{Enter}', waitTime=0) else: self.EditMsg.SendKeys(msgs[i], waitTime=0) if i > 1: self.EditMsg.SendKeys('{Enter}', waitTime=0) self.EditMs备g.SendKeys('{Shift}{Enter}', waitTime=0) self.EditMsg.SendKeys('{Enter}', waitTime=0)
todoList = mysqldb.sql_select("SELECT Id,reminder,todoDate,todoTime,earlyReminder FROM reminder WHERE isDone = 0")["data"]
对返回的数据进行判断:
for i in range(0,len(todoList)): if todoList[i][4] == "0" and nowDate == todoList[i][2] and (todaytime+timedelta(minutes=3)).__format__("%H:%M")==todoList[i][3]: wechat.SendMsg("离 "+todoList[i][1]+" 还有三分钟,请做好准备!") mysqldb.sql_execute("UPDATE reminder SET earlyReminder = 1 WHERE Id = '"+str(todoList[i][0])+"'") if nowDate == todoList[i][2] and nowTime == todoList[i][3]: wechat.SendMsg("记得"+todoList[i][1]+"哦!") wechat.SendMsg("记得"+todoList[i][1]+"哦!") wechat.SendMsg("记得"+todoList[i][1]+"哦!") mysqldb.sql_execute("UPDATE reminder SET isDone = 1 WHERE Id = '"+str(todoList[i][0])+"'")
查看备忘和删除备忘
def deleteTask(taskId): mysqldb = MysqlDb() result = mysqldb.sql_execute("DELETE FROM reminder WHERE Id = "+str(taskId)) return result
def findAllUndo(): mysqldb = MysqlDb() todoList = mysqldb.sql_select("SELECT Id,reminder,todoDate,todoTime FROM reminder WHERE isDone = 0")["data"] msgs=[] for i in range(0,len(todoList)): msgs.append("备忘"+str(todoList[i][0])+":"+str(todoList[i][1])+" "+str(todoList[i][2])[5:]+" "+str(todoList[i][3])) return msgs
设置关键词
只有在监听到相应的关键词时,机器人才会做出反应。
if "提醒我" in newMsg[1]: tempMsg = re.search(r'\d{1,2}点',newMsg[1]) if tempMsg == None: wechat.SendMsg("提醒时间未说明,请重试!") continue if int(str(tempMsg.group(0)).split("点")[0]) >=24 or int(str(tempMsg.group(0)).split("点")[0]) < 0: wechat.SendMsg("时间设置有误!") continue result = writeReminder(newMsg[1]) newDates = result[1].split("-") newTimes = result[2].split(":") reminderDate = newDates[1]+"月"+newDates[2]+"日" reminderTime = newTimes[0]+"点"+newTimes[1]+"分" wechat.SendMsg("好的!我会在"+reminderDate+reminderTime+"的时候提醒你")
elif newMsg[1] == "所有备忘": msgs = findAllUndo() if msgs == []: wechat.SendMsg("目前没有需要提醒的事情了。") wechat.SendWrapMsg(msgs=msgs) elif "删除备忘" in newMsg[1]: taskId = newMsg[1][4:] res = deleteTask(taskId) if int(res) == 1: wechat.SendMsg("删除成功!") wechat.SendWrapMsg(findAllUndo()) else: wechat.SendMsg("没有这个备忘!")
接入青云客机器人
这是一个聊胜于无的功能,青云客是一个免费无需登录的机器人,向接口发送信息即可获取机器人的回答。
def chatWithQingYunKe(msg): url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg)) html = requests.get(url) rt = html.json()["content"] rt = rt.replace("菲菲","东东bot") if "{br}" in rt: rt = rt.split("{br}") return rt