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") )
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
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") )
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) )