コード例 #1
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self):
		siteData = datamodel.getSiteMeta().__dict__
		nowPost = self.request.get('m')
		direction = self.request.get('d')
		c = 0
		posts = []
		if not nowPost or not direction:
			lastPost = LogItem.all().order("-when").fetch(1)
			if len(lastPost) == 0:
				return self.error(404)	
			item = lastPost[0]
			while c < POSTS_PER_PAGE and item:
				c += 1
				posts.append(item)
				item = item.prevPost
			if item:
				siteData['prev'] = item.key()
		else:
			if direction == 'prev':
				item = LogItem.get(db.Key(nowPost))
				if item.nextPost:
					siteData['next'] = item.nextPost.key()
				while c < POSTS_PER_PAGE and item:
					c += 1
					posts.append(item)
					item = item.prevPost
				if item:
					siteData['prev'] = item.key()
			if direction == 'next':
				item = LogItem.get(db.Key(nowPost))
				if item.prevPost:
					siteData['prev'] = item.prevPost.key()
				while c < POSTS_PER_PAGE and item:
					c += 1
					posts.insert(0, item)
					item = item.nextPost
				if item:
					siteData['next'] = item.key()

		siteData['posts'] = posts
		archives = Archive.all().order("-monthlyID")
		siteData['archives'] = archives
		template = jinja_environment.get_template('template/home.html')
		self.response.out.write(template.render(siteData, debug=_DEBUG))
		self.response.headers['Cache-Control'] = 'max-age=36000, public'
		self.response.headers['Pragma'] = 'Public'
		self.response.headers.add_header("x-Whisper", "Ann, I love U.")
コード例 #2
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self):
		siteData = datamodel.getSiteMeta().__dict__
		template = jinja_environment.get_template('template/rss.xml')
		posts = LogItem.all().order("-when").fetch(10)
		siteData['posts'] = posts
		self.response.headers['Content-Type'] = 'application/xml'
		self.response.headers['Cache-Control'] = 'max-age=36000, public'
		self.response.headers['Pragma'] = 'Public'
		self.response.out.write(template.render(siteData))
コード例 #3
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def post(self, index):
		post = LogItem.get_by_id(int(index))
	
		a = self.request.get('content')
		c = self.request.get('tags')
		post.what = a
		post.tags = list(set(filter(None, c.split(';'))))
		post.put()
		memcache.flush_all()
		self.redirect("/a/"+index+"/")
コード例 #4
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self, tag):
		tag = tag.decode("utf-8")
		siteData = datamodel.getSiteMeta().__dict__
		posts = LogItem.gql("WHERE tags=:1", tag)
		if posts is None:
			self.error(404)	
		siteData['posts'] = posts
		siteData['tag'] = tag
		template = jinja_environment.get_template('template/tagged.html')
		self.response.headers['Cache-Control'] = 'max-age=36000, public'
		self.response.headers['Pragma'] = 'Public'
		self.response.out.write(template.render(siteData, debug=_DEBUG))
コード例 #5
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self, index):
		siteData = datamodel.getSiteMeta().__dict__
		post = LogItem.get_by_id(int(index))
		if post is None:
			return
		siteData['post'] = post
		siteData['singleView'] = True
		siteData['comments'] = post.comments
		template = jinja_environment.get_template('template/onepostview.html')
		self.response.headers['Cache-Control'] = 'max-age=36000, public'
		self.response.headers['Pragma'] = 'Public'
		self.response.out.write(template.render(siteData, debug=_DEBUG))
コード例 #6
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def post(self):
		b = cgi.escape(self.request.get('whoseComment'))
		c = cgi.escape(self.request.get('whatComment'))
		d = cgi.escape(self.request.get('whereComment'))
		if d == "" :
			d = u"not provided"
		e = cgi.escape(self.request.get('postid'))
		if len(b)>=36:
			b = b[:35]
		a = LogItem.get_by_id(int(e)).key() #bad performance.
		comment = CommentItem(what=c, email=d, who=b, toWhich=a)
		comment.put()
		removeCache("/a/"+e+"/")
		self.redirect("/a/"+e+"/")
コード例 #7
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self, year, month):
		dateHead = datetime(int(year), int(month), 1)
		if int(month) == 12:
			dateTail = datetime(int(year)+1, 1, 1)
		else:
			dateTail = datetime(int(year), int(month)+1, 1)
		posts = LogItem.all().order("-when").filter("when >", dateHead).filter("when <", dateTail)
		siteData = datamodel.getSiteMeta().__dict__
		siteData['posts'] = posts
		siteData['year']  = year
		siteData['month'] = month
		template = jinja_environment.get_template('template/archive.html')
		self.response.headers['Cache-Control'] = 'max-age=36000, public'
		self.response.headers['Pragma'] = 'Public'
		self.response.out.write(template.render(siteData, debug=_DEBUG))
コード例 #8
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def get(self, index):
		siteData = datamodel.getSiteMeta().__dict__
		siteData['index'] = index
		post = LogItem.get_by_id(int(index))
		if post is None:
			return
		siteData['post'] = post
		template = Template("""
		<html>
			<body>
				<form action="/boom/{{ index }}" method="post">
					<div><textarea name="content" rows="30" cols="50">{{ post.what }}</textarea></div>
					<div><textarea name="tags" rows="30" cols="50">{% for tag in post.tags %}{{ tag }};{% endfor %}</textarea></div>
					<div><input type="submit" value="Post!"></div>
				</form>
			</body>
	 	</html>""")
		self.response.out.write(template.render(siteData, debug=_DEBUG))
コード例 #9
0
ファイル: coming.py プロジェクト: wyli/wlee0204
	def post(self):# TODO: expire the cookies and users.
		a = self.request.get('content')
		a = markdown.markdown(a)
		b = self.request.get('title')
		if b == "":
			b = "Untitled"
		c = self.request.get('tags')
		lastKey = LogItem.all().order("-when").fetch(1)
		if lastKey and len(lastKey) > 0:
			lastKey = lastKey[0].key()
		else:
			lastKey = None
		post = LogItem(title=b, what=a, tags=list(set(filter(None, c.split(';')))),prevPost=lastKey)
		post.put()
		if lastKey:
			prevItem = LogItem.get(lastKey)
			prevItem.nextPost = post.key()
			prevItem.put()
		datamodel.updateMeta()
		Archive().updateArchive()
		memcache.flush_all()
		self.redirect("/")