コード例 #1
0
ファイル: main.py プロジェクト: systempuntoout/buckethandle
 def GET(self):
     if FEED_PROXY and not os.environ.get('HTTP_USER_AGENT').startswith(FEED_PROXY_USER_AGENT):
        web.redirect(FEED_PROXY)
     else:
         posts = models.Post.get_recent_posts()
         web.header('Content-type', 'application/atom+xml')
         return render.feed(posts, utils.now().strftime("%Y-%m-%dT%H:%M:%SZ") )
コード例 #2
0
ファイル: main.py プロジェクト: systempuntoout/buckethandle
     def GET(self):
         result = {}
         posts = []
         tags_filter = []
         action = web.input(action = None)['action']
        
         if action =='submit_init':
             title = web.input(title = '')['title']
             link = web.input(link = '')['link']
             description = web.input(description = '')['description']
             tags = web.input(tags = '')['tags']
             base_link = utils.get_base_link(link)
             if base_link in AUTO_CONTENT_BY_LINK:
                 if 'category' in AUTO_CONTENT_BY_LINK[base_link]:
                     selected_category = AUTO_CONTENT_BY_LINK[base_link]['category']
                 else:
                     selected_category = ''
             else: 
                 selected_category = ''

             tags = list(set(tags.split()) - set(TAGS_BLACK_LIST))
             return render_template(render.submit(False, '', title, link, description, tags, selected_category),
                                  title = 'Posts')
         elif action =='submit':
             title = web.input(title = None)['title']
             link = web.input(link = None)['link']
             description = web.input(description = None)['description']
             tags = web.input(tags = None)['tags']
             category = web.input(category = None)['category']
             
             if title.strip() and link.strip() and tags.strip():
                 mail.send_mail(sender="%s <%s>" % (CMS_NAME, MAIL_ADMIN),
                               to="Admin <%s>" % MAIL_ADMIN,
                               subject="%s - Link submitted %s" % (CMS_NAME, utils.now().strftime("%Y-%m-%d %H:%M:%S")),
                               body="""
                 Link submission:

                 Title: %s
                 Link: %s
                 Description: %s
                 Tags: %s
                 Category: %s
                 User: %s
                 """ % (title, link, description, tags, category, users.get_current_user()))
                 title = link = description = tags = ""
                 submitted = True
                 message = "Thanks for your submission, we'll review it soon."
             else:
                 submitted = False
                 message = "Please fill in all required fields (*)"
             return render_template(render.submit(submitted, message, title, link , description, tags, category),
                                   title = 'Posts')
         else:
            return None
コード例 #3
0
ファイル: main.py プロジェクト: saga/buckethandle
 def GET(self):
     posts = models.Post.get_recent_posts()
     web.header('Content-type', 'application/atom+xml')
     return render.feed(posts, utils.now().strftime("%Y-%m-%dT%H:%M:%SZ") )
コード例 #4
0
ファイル: admin.py プロジェクト: systempuntoout/buckethandle
 def GET(self):
     result = {}
     submitted = True
     action = web.input(action = None)['action']
     name = web.input(name = None)['name']
     link = web.input(link = None)['link']
     feeds = models.Feed.get_feeds()      
     posts = models.FeedEntry.get_posts()
     if action == 'removefeeditem':
           key = web.input(key = None)['key']
           entity = models.FeedEntry.get(key)
           entity.reviewed = True
           entity.put()
           result[action] = "Done"
     elif action =='start_downloadfeeds':
           taskqueue.add(url='/admin/content?action=downloadfeeds',
                         method = 'GET', 
                         queue_name = 'populate',
                         countdown = 5,
                         headers = {'X-AppEngine-FailFast' : True})
           result[action] = "Done"
     elif action == 'downloadfeeds':
         for feed in feeds:
             response = urlfetch.fetch(feed.link)
             if response.status_code == 200:
                 rss = feedparser.parse(response.content)
                 for entry in reversed(rss['entries']): 
                     try:
                         if entry.get('link') and utils.check_link_weight(entry['link']):
                            try:
                             if not models.Post.get_post_by_link(entry['link'].strip()):
                                 entity = models.FeedEntry.get_or_insert(key_name = entry['link'], title = entry['title'], link = entry['link'], feed = feed.key() )
                                 entity.put()
                            except:
                                pass
                     except:
                           logging.exception('Downloadfeeds error:')
                           pass
         posts = models.FeedEntry.get_posts()
         result[action] = "Done"
     elif action== 'newfeed':
         #Various checks
         if not name or not link:
             result[action] = "Please fill in all required fields (*)"
             submitted = False
         if link and not utils.link_is_valid(link):
             result[action] = "Link is not valid"
             submitted = False
         if not submitted:
             return render_template(render.admin.admin_content(
                                                          submitted, 
                                                          result, 
                                                          action,
                                                          feeds,
                                                          posts,
                                                          name = name,
                                                          link = link)
                                     )
         models.Feed(name = name, link = link).put()
         feeds = models.Feed.get_feeds()
         result[action] = "Done"
     elif action == 'mailcontents':
         if models.FeedEntry.check_for_new_posts():
              mail.send_mail(sender="%s <%s>" % (CMS_NAME, MAIL_ADMIN),
                            to="Admin <%s>" % MAIL_ADMIN,
                            subject="%s - Contents Discoverer %s" % (CMS_NAME, utils.now().strftime("%Y-%m-%d %H:%M:%S")),
                            body="""
              \nContents discovered:
              \n%s\n
              http://%s/admin/content
              """ % ('\n'.join([post.title.strip() for post in models.FeedEntry.get_posts()]), HOST))      
         result[action] = "Done"
     return render_template(render.admin.admin_content(
                                                submitted, 
                                                result, 
                                                action,
                                                feeds,
                                                posts)
                           )