def get(self,value): ids=None try: ids=int(value) except ValueError: pass if ids:#support both int id and url encoded smiley item = Message.get_by_id(ids=ids,parent=None) else: item = None for data in db.GqlQuery("""SELECT * FROM Message WHERE value = :value ORDER BY updated DESC """,value=urldecode(value)): if not item : item = data item.writers =[] item.writers.append("%s at %s" % (item.writer,item.updated.date())) if item: self.response.out.write(template.render('views/message/view.html',\ { 'data':item,\ 'url': urllib.quote_plus("http://smileynoise.appspot.com/view/"+str(item.key().id())),\ 'urlid': urlencode(item.value)\ })) else: missing_view = 'views/message/missing_id.html' if ids else 'views/message/missing_smiley.html' self.error(404) self.response.out.write(template.render(missing_view,\ { 'urlid': value,\ 'id': urldecode(value)\ }))
def toDictionary(item): return {'id':item.key().id(),'value':item.value,\ 'writer':item.writer.nickname(),\ 'urlid': urlencode(item.value) }