def GET(self): #db.get_insert_news('News', "12312313123", "郑博郑博郑博郑博郑博郑博郑博郑博郑博郑博郑博") #return render.hello("你好") m = re.findall(r"""'/news/ + # date \w * # 2014 / #/ \w\w #month - #- \w* #day / #/ \w * #words .htm' \s # white space title=' \S * ' \s""", urllib2.urlopen("http://today.hit.edu.cn").read(), re.M|re.X) #return render.hello(len(m)) T = time.strftime('%Y/%m-%d', time.localtime(time.time())) #T = "2014/10-26" for x in db.get_all('News'): #return render.hello(len(m)) db.get_delete('News', "id=" + str(x.id)) URL = [] Title = [] #News = [] for i in m: #return render.hello(len(i)) y = i.decode('gbk').encode('utf8') x = y.split("title=") url = "http://today.hit.edu.cn" url += x[0][1:-2] title = x[1][1:-2] date = i[7:17] if(cmp(date, T) != 0): continue cnt = URL.count(url) if(cnt != 0): continue URL.append(url) #print url #if title.find("电气"): # return render.hello("123") db.get_insert_news('News', str(url), str(title))
def clear(): for x in db.get_all('News'): db.get_delete('News', "id=" + str(x.id))
def POST(self): str_xml = web.data() #获得post来的数据 xml = etree.fromstring(str_xml)#进行XML解析 msgType=xml.find("MsgType").text fromUser=xml.find("FromUserName").text toUser=xml.find("ToUserName").text if msgType == "event": mscontent = xml.find("Event").text if mscontent == "subscribe": reply = u'''您好,欢迎关注工大新闻!\n输入-a[空格][关键字]来新增关键字,输入-d[空格][关键字]来删除一条已经添加的关键字,输入-s来查看当前订阅的关键字, 输入-g xxxx/xx/xx来查看在xxxx年xx天xx日的相关新闻,输入news来查看当天的相关新闻,如果您有什么意见,请输入 -f[空格]反馈信息 来提交意见。''' return self.render.reply_text(fromUser,toUser,int(time.time()), reply) if mscontent == "unsubscribe": reply = u'''我知道当前的功能很简单,但是我会慢慢改进,欢迎以后再来!''' return self.render.reply_text(fromUser,toUser,int(time.time()), reply) elif msgType == "text": content=xml.find("Content").text#获得用户所输入的内容 if content == "-h": reply = u'''输入-a[空格][关键字]来新增关键字,输入-d[空格][关键字]来删除一条已经添加的关键字,输入-s来查看当前订阅的关键字, 输入-g xxxx/xx/xx来查看在xxxx年xx天xx日的相关新闻,输入news来查看当天的相关新闻,如果您有什么意见,请输入 -f[空格]反馈信息 来提交意见。示例:-a 哈工大。''' return self.render.reply_text(fromUser,toUser,int(time.time()), reply) elif content == "-s": keyword = [] for user in db.get_all('User'): if user.openID == fromUser: keyword.append(user.keyword) keyword = db.unique(keyword) #return self.render.reply_text(fromUser,toUser,int(time.time()), "123") ret = "" for key in keyword: ret += key + " " return self.render.reply_text(fromUser,toUser,int(time.time()), ret) elif content == "news": #ret = "no news yet!" keyword = [] for user in db.get_all('User'): if user.openID == fromUser: keyword.append(user.keyword) keyword = db.unique(keyword) #return self.render.reply_text(fromUser,toUser,int(time.time()), "123") #return self.render.reply_text(fromUser,toUser,int(time.time()), '#') ret = "" T = time.strftime('%Y/%m/%d', time.localtime(time.time())) for x in db.get_all('News'): if(cmp(x.date, T) != 0): continue for key in keyword: if x.title.find(key) != -1: ret += x.title + "\n" + x.url + "\n" break if ret == "": return self.render.reply_text(fromUser,toUser,int(time.time()), "今天到目前为止还没有与您订阅关键字有关的新闻,请持续关注。") return self.render.reply_text(fromUser,toUser,int(time.time()), ret) else: if content.find("-a") == 0: tmp = content[3: len(content)] cnt = 0 #return self.render.reply_text(fromUser,toUser,int(time.time()), "tmp") for user in db.get_all('User'): #return self.render.reply_text(fromUser,toUser,int(time.time()), "already exists!") if (user.keyword == tmp) and (user.openID == fromUser): return self.render.reply_text(fromUser,toUser,int(time.time()), "您已经关注了此关键字了呀!") if (user.openID == fromUser): cnt += 1 if cnt >= 10: return self.render.reply_text(fromUser,toUser,int(time.time()), "关键词的上限为10个,请使用 -d[空格]关键字 来删除一些关键字吧~") db.get_insert('User', fromUser, tmp) return self.render.reply_text(fromUser,toUser,int(time.time()), "插入成功。") elif content.find("-d") == 0: #return self.render.reply_text(fromUser,toUser,int(time.time()), "123") tmp = content[3: len(content)] flag = 0 for user in db.get_all('User'): if (user.keyword == tmp) and (user.openID == fromUser): db.get_delete('User', "id=" + str(user.id)) flag = 1 if flag == 1: return self.render.reply_text(fromUser,toUser,int(time.time()), "删除成功。") else: return self.render.reply_text(fromUser,toUser,int(time.time()), "您并没有订阅此关键字。") elif content.find("-f") == 0: tmp = content[3: len(content)] fktime = time.strftime('%Y/%m/%d %H:%M',time.localtime()) db.get_insert_feedback('feedback', fromUser, fktime, tmp) return self.render.reply_text(fromUser,toUser,int(time.time()), "您的反馈信息已经提交,感谢您的支持!") elif content.find("-g") == 0: #return self.render.reply_text(fromUser,toUser,int(time.time()), "123") keyword = [] for user in db.get_all('User'): if user.openID == fromUser: keyword.append(user.keyword) keyword = db.unique(keyword) T = content[3: len(content)] ret = "" for x in db.get_all('News'): if(cmp(x.date, T) != 0): continue #return self.render.reply_text(fromUser,toUser,int(time.time()), T) for key in keyword: if x.title.find(key) != -1: ret += x.title + "\n" + x.url + "\n" break if ret == "": return self.render.reply_text(fromUser,toUser,int(time.time()), "当天没有与您关键字相关的新闻,或者请查看命令输入格式是否正确,例如-g 2014/10/26。注意当前只能查询到10月28日以后的一些新闻。") return self.render.reply_text(fromUser,toUser,int(time.time()), ret) else: return self.render.reply_text(fromUser,toUser,int(time.time()), "没有这样的命令!请输入 -h 来查看帮助。") return self.render.reply_text(fromUser,toUser,int(time.time()), ret)