Esempio n. 1
0
 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)
Esempio n. 2
0
 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('/')
Esempio n. 3
0
 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)
Esempio n. 4
0
 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))
Esempio n. 5
0
 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))