def get(self, author_slug=None, id=None): self.verifyUrl() author = None show_comments = False if id: try: id = int(id) except ValueError: self.error(404) self.send(getNotFoundPage()) return show_comments = bool(self.request.get('show_comments')) cached = getCachedPage('quote|%d%s' % (id, '|show_comments' if show_comments else '')) if cached: self.response.headers['Cache-Control'] = settings.long_cache_control self.send(cached) return quote = db.getQuoteByID(id) if quote: author = quote.author else: self.error(404) self.send(getNotFoundPage()) return elif author_slug: author = db.getAuthor(author_slug) if author: quote = db.getRandomQuote(author) else: self.error(404) self.send(getNotFoundPage()) return else: quote = db.getRandomQuote() author = quote.author proper_url = quote.getLink() if not self.request.url.startswith(proper_url): self.redirect(proper_url, permanent=True) else: self.response.headers['Cache-Control'] = settings.long_cache_control next_quote = db.getNextQuote(quote) meta_description = quote.text[:300].replace('\n', '. ') if len(meta_description) >= 280: meta_description = meta_description.rpartition(' ')[0] + ' ...' meta_description = quoteattr(meta_description) template_values = { 'author': author, 'teaser': quote.renderTeaser(), 'quote': quote.renderQuote(), 'quote_name': quote.name, 'quote_key': quote.key(), 'quote_url': proper_url, 'next_quote': next_quote, 'next_quote_id': next_quote.key().id() if next_quote else None, 'meta_description': meta_description, 'meta_keywords': quoteattr(', '.join((quote.name, author.name, author.slug))), 'show_comments': show_comments, } self.send(getPage('quote|%d%s' % (quote.key().id(), '|show_comments' if show_comments else ''), 'view/quote.html', template_values))
def post(self, type): res = 0 if type == 'category': name = self.request.get('name') slug = self.request.get('slug') if db.addCategory(name, slug): res = 1 self.redirect('/admin?res=%d' % res) elif type == 'author': img_url = self.request.get('img_url') if img_url: img_width, img_height = utils.getImageDimensions(utils.downloadFile(img_url)) else: img_width = None img_height = None if db.addAuthor(name = self.request.get('name'), slug = self.request.get('slug'), description = self.request.get('description'), date_birth = self.request.get('date_birth'), date_death = self.request.get('date_death'), img_url = img_url, img_width = img_width, img_height = img_height): res = 1 self.redirect('/admin?res=%d' % res) elif type == 'quote': img_url = self.request.get('img_url') if img_url: img_width, img_height = utils.getImageDimensions(utils.downloadFile(img_url)) else: img_width = None img_height = None if db.addQuote(author = db.getAuthor(self.request.get('author')), categories = self.request.get_all('category'), name = self.request.get('name'), description = self.request.get('description'), text = self.request.get('text'), html = self.request.get('html'), img_url = img_url, img_width = img_width, img_height = img_height, quote_id = self.request.get('quote_id')): res = 1 self.redirect('/admin?res=%d' % res)