def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 status_id = self.request.get("status") tag = self.request.get("tag") user_name = api.get_user_from_token(token) filter = db.Query(datastore.Tweet).filter("user_name =",user_name).filter("status_id =", int(status_id)) if filter.count() == 0: self.write("False") return 1 else: tweet_object = filter.get() if tag not in tweet_object.tags: self.write("None") return 1 index = tweet_object.tags.index(tag) order_tag = tweet_object.tags nun = order_tag.pop(index) new_tags = order_tag tweet_object.tags = new_tags tweet_object.put() self.write("True")
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 user_name = api.get_user_from_token(token) if user_name != "Alice1017": self.write("この機能は管理人しか使えません") return 1 else: self.write("<table border='1' cellspacing='0' cellpadding='5'>") self.write("<tr><td>ユーザー名</td><td>バグ</td></tr>") for model in db.Query(datastore.ShoutBug): data = {"user_name":model.user_name.encode("utf-8"), "bug":model.bug.encode("utf-8")} self.write(""" <tr> <td>%(user_name)s</td> <td>%(bug)s</td> </tr> """ % data) self.write("</table>")
def get(self): query = escape(self.request.get("query"),True) if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 user_name = api.get_user_from_token(token) titles = api.get_title(user_name) tweet_objects = [] title_s = [] for title in titles: try: index = title.index(query) title_s += [title,] except: pass for title in title_s: tweet_objects += api.get_object_from_title(user_name,title) template_path = os.path.join( os.path.dirname(__file__), "../html/search_template_title.html" ) if len(tweet_objects) == 0: return_data = {"query":query.encode("utf-8"), "screen_name":user_name, "Tweet_entities":"検索結果が存在しませんでした"} self.write(template.render(template_path,return_data)) return 1 return_data = {"query":query.encode("utf-8"), "screen_name":user_name, "Tweet_entities":""} for tweet in tweet_objects: tweetObjData = { "status_id" : tweet.status_id, "screen_name" : tweet.screen_name.encode("utf-8"), "user_image_url": tweet.user_image_url.encode("utf-8"), "created_at" : tweet.created_at.encode("utf-8"), "user_name" : tweet.user_name.encode("utf-8"), "shorten_URL" : check_length(tweet.URL.encode("utf-8")), "URL" : tweet.URL.encode("utf-8"), "URLtitle" : tweet.URLtitle.encode("utf-8"), "check_read" : "Unread" if tweet.read == False else "Already-read", "check_tag" : make_tagstring(tweet) } list_template = templates.list_url_template return_data["Tweet_entities"] += list_template % tweetObjData self.write(template.render(template_path, return_data))
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.write("/") return 1 user_name = api.get_user_from_token(token) urls = api.get_url_string(user_name) baseurl = escape(self.request.get("url"),True) if baseurl.startswith("http://") != True: baseurl = "http://"+baseurl tweet_objects = [] for url in urls: if url.startswith(baseurl): tweet_objects += api.get_object_from_url(user_name,url) template_path = os.path.join( os.path.dirname(__file__), "../html/search_template_baseurl.html" ) if len(tweet_objects) == 0: return_data = {"query":baseurl, "screen_name":user_name, "Tweet_entities":"検索結果が存在しませんでした"} self.write(template.render(template_path,return_data)) return 1 return_data = {"query":baseurl, "screen_name":user_name, "Tweet_entities":""} for tweet in tweet_objects: tweetObjData = { "status_id" : tweet.status_id, "screen_name" : tweet.screen_name.encode("utf-8"), "user_image_url": tweet.user_image_url.encode("utf-8"), "created_at" : tweet.created_at.encode("utf-8"), "user_name" : tweet.user_name.encode("utf-8"), "shorten_URL" : check_length(tweet.URL.encode("utf-8")), "URL" : tweet.URL.encode("utf-8"), "URLtitle" : tweet.URLtitle.encode("utf-8"), "check_read" : "Unread" if tweet.read == False else "Already-read", "check_tag" : make_tagstring(tweet) } list_template = templates.list_url_template return_data["Tweet_entities"] += list_template % tweetObjData self.write(template.render(template_path, return_data))
def post(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 user_name = api.get_user_from_token(token) bugstring = escape(self.request.get("description")) datastore.ShoutBug( user_name = user_name, bug = bugstring ).put() self.write("バグ報告ありがとうございます!!")
def get(self): query = escape(self.request.get("query"),True) status_id = self.request.get("status") if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") user_name = api.get_user_from_token(token) tweetobj = api.get_object_from_status(user_name, status_id) # get tag list query = query.lower() tag_list = query.split(" ") # check dup dup_tag = [] for tag in tag_list: if tag not in dup_tag: dup_tag.append(tag) tag_list = dup_tag if len(tweetobj.tags) != 0: tweetobj.tags = tweetobj.tags + tag_list else: tweetobj.tags = tag_list tweetobj.put() # push datastore.tag for tag in tag_list: exist_tags = api.get_exist_tags() if tag not in exist_tags: datastore.Tag(tag=tag).put() else: pass return_string = "" for tag in tag_list: return_string += "<span class='tag-wrap'><a href=\"/search/tag?tag="+tag.encode("utf-8")+"\"><span class=\"tag_string\">"+tag.encode("utf-8")+"</a><span class='del'>☓</span></span>\n" self.write(return_string)
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 status_id = self.request.get("status") user_name = api.get_user_from_token(token) try: tweet_object = api.get_object_from_status(user_name, status_id) except: self.write("False") return 1 tweet_object.delete() self.write("True")
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 user_name = api.get_user_from_token(token) self.write(""" <body> <h3>バグ報告をお願いします</h3> ユーザー : %s <form action="/api/bug" method="POST"> <textarea name="description" style="width:500px;height:300px;"></textarea> <input type="submit" value="バグを報告する" /> </form> """ % user_name.encode("utf-8") )
def get(self): status_id = int(self.request.get("id")) if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") user_name = api.get_user_from_token(token) filter = db.Query(datastore.Tweet).filter("user_name =",user_name).filter("status_id =", status_id) if filter.count() == 0: self.write("False") return 1 tweetdata = filter.get() tweetdata.read = True tweetdata.put() self.write("True")
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 user_name = api.get_user_from_token(token) unread_objects = api.get_unread(user_name) template_path = os.path.join( os.path.dirname(__file__), "../html/search_template_unread.html" ) if len(unread_objects) == 0: return_data = {"screen_name":user_name, "Tweet_entities":"検索結果が存在しませんでした"} self.write(template.render(template_path, return_data)) return 1 else: return_data = {"screen_name":user_name, "Tweet_entities":""} for tweet in unread_objects: tweetObjData = { "status_id" : tweet.status_id, "screen_name" : tweet.screen_name.encode("utf-8"), "user_image_url": tweet.user_image_url.encode("utf-8"), "created_at" : tweet.created_at.encode("utf-8"), "user_name" : tweet.user_name.encode("utf-8"), "shorten_URL" : check_length(tweet.URL.encode("utf-8")), "URL" : tweet.URL.encode("utf-8"), "URLtitle" : tweet.URLtitle.encode("utf-8"), "check_read" : "Unread" if tweet.read == False else "Already-read", "check_tag" : make_tagstring(tweet) } list_template = templates.list_url_template return_data["Tweet_entities"] += list_template % tweetObjData self.write(template.render(template_path, return_data))
def get(self): if self.request.cookies.has_key("token"): token = self.request.cookies.get("token") else: self.redirect("/") return 1 # debug debug = 1 if self.request.get("debug") else 0 # get user user_name = datastore_api.get_user_from_token(token) token_data = db.Query(datastore.accessToken).filter("user_name =", user_name).get() # get twitter auth api api = auth.get_api(token_data) # get last tweet data last_tweet_data = db.Query(datastore.LastFavoriteTweet).filter("user_name =", user_name).get() # initialize has_last_tweet = False new_favorites = [] count = 1 # loop while has_last_tweet == False: if count > 30: break # get new favorite try: favorites = api.favorites(page=count) except DeadlineExceededError: #67 self.redirect("/count/?%s" % count) #return 1 except tweepy.TweepError: # get reset time if debug == 1: self.write(repr(count)) nonformat_reset_time = api.rate_limit_status()["reset_time"] format_reset_time = datetime.datetime.strptime(nonformat_reset_time, "%a %b %d %H:%M:%S +0000 %Y") jst_time = format_reset_time + datetime.timedelta(hours = 9) about_rate = {"reset":jst_time.strftime("%Y年%m月%d日 %H時%M分%S秒")} template_path = os.path.join( os.path.dirname(__file__), "../html/rate_limit.html" ) self.write(template.render(template_path, about_rate)) return 1 for tweet in favorites: if tweet.id == last_tweet_data.status_id: has_last_tweet = True break else: new_favorites += [tweet] has_last_tweet = False count += 1 # delete duplication of tweet already_got_tweet = datastore_api.get_already_add(user_name) for tweet in new_favorites: if tweet.id in already_got_tweet: new_favorites.remove(tweet) if len(new_favorites) == 0: self.redirect("/main") return 1 # delete last tweet in database last_tweet_data.delete() # save last tweet try: tweet = new_favorites[0] except IndexError: self.redirect("/main") return 1 datastore.LastFavoriteTweet( user_name = user_name, status_id = tweet.id, ).put() # ここからtweetからURLを抜き出す処理 template_path = os.path.join( os.path.dirname(__file__), "../html/list_template.html" ) #return_data = {"screen_name":user_name.encode("utf-8"), "Tweet_entities":""} urlPattern = re.compile("s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+") for tweetObj in new_favorites: plural_URL_in_tweet = [result.group() for result in urlPattern.finditer(tweetObj.text.encode("utf-8"))] if len(plural_URL_in_tweet) != 0: URL = plural_URL_in_tweet[0] URL = self.expand(URL) URLtitle = self.getTitle(URL) tweetObjData = { "status_id" : tweetObj.id, "screen_name" : tweetObj.user.screen_name.encode("utf-8"), "user_image_url": tweetObj.user.profile_image_url.replace("_normal","").encode("utf-8"), "created_at" : tweetObj.created_at.strftime("%y/%m/%d %H:%M:%S"), "user_name" : api.auth.get_username().encode("utf-8"), "URL" : URL.encode("utf-8"), "URLtitle" : "タイトルが取得できませんでした" if URLtitle == "" else URLtitle, "check_read" : "Unread".encode("utf-8"), "tags" : [] } #list_template = templates.list_url_template #return_data["Tweet_entities"] += list_template % tweetObjData self.put(tweetObjData) self.redirect("/main")