Beispiel #1
0
	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.")
Beispiel #2
0
	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("/")