def get(self, node_name): node_name = node_name.lower() site = GetSite() node = GetKindByName('Node', node_name) if node is False: return self.write('node not found') output = memcache.get('feed_node_' + node_name) if output is None: template_values = {} template_values['site'] = site template_values['site_domain'] = site.domain template_values['site_name'] = site.title template_values['site_slogan'] = site.slogan template_values['feed_url'] = 'http://' + template_values[ 'site_domain'] + '/index.xml' template_values['site_updated'] = datetime.datetime.now( pytz.timezone('Asia/Shanghai')) #q = db.GqlQuery("SELECT * FROM Topic WHERE node = :1 ORDER BY created DESC LIMIT 10", node) q = Topic.selectBy(node=node).orderBy('-created').limit(10) topics = [] for topic in q: topics.append(topic) template_values['topics'] = topics template_values['feed_title'] = site.title + u' › ' + node.title path = os.path.join(os.path.dirname(__file__), 'tpl', 'feed') t = self.get_template(template_values) output = t.render(self.values) memcache.set('feed_node_' + node.name, output, 7200) self.set_header('Content-type', 'application/xml;charset=UTF-8') self.write(output)
def get(self): member = CheckAuth(self) if member: site = GetSite() l10n = GetMessages(self, member, site) template_values = {} template_values['site'] = site template_values['member'] = member template_values['l10n'] = l10n template_values['page_title'] = site.title + u' › 我的特别关注' template_values['rnd'] = random.randrange(1, 100) if member.favorited_members > 0: template_values['has_following'] = True #q = db.GqlQuery("SELECT * FROM MemberBookmark WHERE member_num = :1 ORDER BY created DESC", member.num) q = MemberBookmark.selectBy(member_num=member.num).orderBy('-created') template_values['following'] = q following = [] for bookmark in q: following.append(bookmark.one.num) #q2 = db.GqlQuery("SELECT * FROM Topic WHERE member_num IN :1 ORDER BY created DESC LIMIT 20", following) q2 = Topic.selectBy(member_num=following).orderBy('-created').limit(20) template_values['latest'] = q2 else: template_values['has_following'] = False path = os.path.join(os.path.dirname(__file__), 'tpl', 'desktop') t=self.get_template(path,'my_following.html') self.finish(t.render(template_values)) else: self.redirect('/')
def get(self, node_name): node_name = node_name.lower() site = GetSite() node = GetKindByName('Node', node_name) if node is False: return self.write('node not found') output = memcache.get('feed_node_' + node_name) if output is None: template_values = {} template_values['site'] = site template_values['site_domain'] = site.domain template_values['site_name'] = site.title template_values['site_slogan'] = site.slogan template_values['feed_url'] = 'http://' + template_values['site_domain'] + '/index.xml' template_values['site_updated'] = datetime.datetime.now(pytz.timezone('Asia/Shanghai')) #q = db.GqlQuery("SELECT * FROM Topic WHERE node = :1 ORDER BY created DESC LIMIT 10", node) q = Topic.selectBy(node=node).orderBy('-created').limit(10) topics = [] for topic in q: topics.append(topic) template_values['topics'] = topics template_values['feed_title'] = site.title + u' › ' + node.title path = os.path.join(os.path.dirname(__file__), 'tpl', 'feed') t=self.get_template(template_values) output = t.render(self.values) memcache.set('feed_node_' + node.name, output, 7200) self.set_header('Content-type', 'application/xml;charset=UTF-8') self.write(output)
def get(self): site = GetSite() template_values = {} template_values['site'] = site topics = memcache.get('api_topics_latest') if topics is None: #topics = db.GqlQuery("SELECT * FROM Topic ORDER BY created DESC LIMIT 20") topics = Topic.selectBy(orderBy='-created').limit(20) memcache.set('api_topics_latest', topics, 120) template_values['topics'] = topics template_values['topics_count'] = topics.count() path = os.path.join(os.path.dirname(__file__), 'tpl', 'api') t = self.get_template(path, 'topics_latest.json') self.finish(t.render(template_values))
def get(self): site = GetSite() template_values = {} template_values['site'] = site method_determined = False parameter_id = self.request.arguments['id'][0] parameter_username = False parameter_node_id = False parameter_node_name = False if parameter_id: method_determined = True if method_determined is False: parameter_username = self.request.arguments['username'][0] if parameter_username: method_determined = True if method_determined is False: parameter_node_id = self.request.arguments['node_id'][0] if parameter_node_id: method_determined = True if method_determined is False: parameter_node_name = self.request.arguments['node_name'][0] if parameter_node_name: method_determined = True if method_determined is False: template_values[ 'message'] = "Required parameter id, username, node_id or node_name is missing" path = os.path.join(os.path.dirname(__file__), 'tpl', 'api') self.set_status(400, 'Bad Request') t = self.get_template(path, 'error.json') self.finish(t.render(template_values)) else: topics = False topic = False if parameter_id: try: topic = GetKindByNum('Topic', int(parameter_id)) if topic is not False: topics = [] topics.append(topic) template_values['topic'] = topic except: topics = False if topics is False: if parameter_username: one = GetMemberByUsername(parameter_username) if one is not False: #topics = db.GqlQuery("SELECT * FROM Topic WHERE member_num = :1 ORDER BY created DESC LIMIT 20", one.num) topics = Topic.selectBy( member_num=one.num).orderBy('-created').limit(20) template_values['topics'] = topics if topics is False: try: if parameter_node_id: node = GetKindByNum('Node', int(parameter_node_id)) if node is not False: #topics = db.GqlQuery("SELECT * FROM Topic WHERE node_num = :1 ORDER BY last_touched DESC LIMIT 20", node.num) topics = Topic.selectBy(node_num=one.num).orderBy( '-last_touched').limit(20) template_values['topics'] = topics except: topics = False if topics is False: if parameter_node_name: node = GetKindByName('Node', str(parameter_node_name)) if node is not False: #topics = db.GqlQuery("SELECT * FROM Topic WHERE node_num = :1 ORDER BY last_touched DESC LIMIT 20", node.num) topics = Topic.selectBy(node_num=node.num).orderBy( '-last_touched').limit(20) template_values['topics'] = topics if topic or topics: path = os.path.join(os.path.dirname(__file__), 'tpl', 'api') t = self.get_template(path, 'topics_show.json') self.finish(t.render(template_values)) else: template_values['message'] = "Failed to get topics" path = os.path.join(os.path.dirname(__file__), 'tpl', 'api') self.set_status(400, 'Bad Request') t = self.get_template(path, 'error.json') self.finish(t.render(template_values))