Esempio n. 1
0
	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")
Esempio n. 2
0
	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>")
Esempio n. 3
0
	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))
Esempio n. 4
0
	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))
Esempio n. 5
0
	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("バグ報告ありがとうございます!!")
Esempio n. 6
0
	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)
Esempio n. 7
0
	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")
Esempio n. 8
0
	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")
	)
Esempio n. 9
0
	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")
Esempio n. 10
0
	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))				
Esempio n. 11
0
	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")