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