def get(self): urls = [] host = 'http://blog-pj.appspot.com' urls.append(Url(host + '/archive', 'monthly', '1.00')) urls.append(Url(host + '/guestbook', 'monthly', '1.00')) urls.append(Url(host + '/about', 'monthly', '1.00')) urls.append(Url(host + '/feed', 'monthly', '1.00')) cats = Category.all() for cat in cats: urls.append(Url(host + '/category/' + cat.name, 'monthly', '0.8')) urls.append(Url(host + '/category/unsorted', 'monthly', '0.8')) tags = Tag.all() for tag in tags: urls.append(Url(host + '/tag/' + tag.name, 'monthly', '0.8')) arcs = Archive.all() for arc in arcs: urls.append(Url(host + '/date/' + str(arc.year) + \ '/' + str(arc.month), 'monthly', '0.8')) arts = Article.all() for art in arts: urls.append(Url(host + '/article/' + art.permalink, 'monthly', '0.6')) template_values = { 'urls': urls } path = os.path.join(os.path.dirname(__file__), 'sitemap.xml') self.response.out.write(template.render(path, template_values))
def get(self): try: pageno = int(self.request.get('pageno')) except ValueError: pageno = 1 query = Article.all().order('-time_stamp') group = query.fetch(1000) article_list = [] pagei = 0 start = 0 length = len(group) while group != [] and article_list == []: # Pick out each page while start + self.msg_per_page - 1 < length: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.msg_per_page] start = start + self.msg_per_page if len(group[start : start + self.msg_per_page]) > 0: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.msg_per_page] last_time = group[-1].time_stamp query.filter('time_stamp <', last_time) group = query.fetch(1000) show_left_arrow = 1 if pageno > 1 else 0 show_right_arrow = 1 if pageno < pagei else 0 show_left_dot = 1 if pageno >= 5 else 0 show_right_dot = 1 if pageno <= pagei - 4 else 0 pageno_list = [i for i in range(max(1, pageno - 3), min(pagei + 1, pageno + 4))] template_values = { 'articles': article_list, 'page_current': pageno, 'page_total': pagei, 'pageno_list': pageno_list, 'show_left_arrow': show_left_arrow, 'show_right_arrow': show_right_arrow, 'show_left_dot': show_left_dot, 'show_right_dot': show_right_dot, 'colno': len(pageno_list) + show_left_arrow + show_right_arrow + show_left_dot + show_right_dot, 'page_prev': max(1, pageno - 1), 'page_next': min(pagei, pageno + 1), 'logout_url': users.create_logout_url('/'), 'page_name': 'articlesAdmin' } path = os.path.join(os.path.dirname(__file__), 'pages/articlesAdmin.html') self.response.headers['Content-Type'] = 'text/html;charset=utf-8' self.response.out.write(template.render(path, template_values))
def post(self): method = self.request.get('method') pageno = self.request.get('articleCurrentPage') if method == 'delete': id_list = self.request.get('articleId').split('$') for id in id_list: victim = Article.all().filter('id =', id).get() if victim.has_category: victim.category.count = victim.category.count - 1 victim.category.put() for tag in victim.tags(): delete_tag(victim, tag) for cmt in victim.comments: cmt.delete() delete_archive(victim.archive) if victim.link_prev != '': prev_article = Article.all().filter('permalink =', victim.link_prev).get() prev_article.link_next = victim.link_next prev_article.year_next = victim.year_next prev_article.month_next = victim.month_next prev_article.day_next = victim.day_next prev_article.title_next = victim.title_next prev_article.put() if victim.link_next != '': next_article = Article.all().filter('permalink =', victim.link_next).get() next_article.link_prev = victim.link_prev next_article.year_prev = victim.year_prev next_article.month_prev = victim.month_prev next_article.day_prev = victim.day_prev next_article.title_prev = victim.title_prev next_article.put() victim.delete() self.redirect('/atf-articles?pageno=' + pageno) else: self.redirect('/atf-writenew?id=' + self.request.get('articleId'))
def get(self): articles = Article.all().order('-time_stamp') item_list = [] for article in articles: item_list.append(article) template_values = { 'latest_time_stamp': item_list[0].time_stamp if item_list != [] else '', 'articles': item_list } path = os.path.join(os.path.dirname(__file__), 'pages/rss.xml') self.response.out.write(template.render(path, template_values))
def post(self): challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit(challenge, response, '6LfrwroSAAAAADfwZ2WtvUV0zdbyV3BzAfRTzaDr', remoteip) # Create a new comment message = Comment() message.nickname = self.request.get('nickname') message.email = self.request.get('email') message.gravatar = get_gravatar_url(message.email.encode('utf-8')) message.website = self.request.get('website') message.msg = self.request.get('msg') message.ref_msg = self.request.get('refMsg') message.ref_name = self.request.get('refName') id = self.request.get('id') message.article = Article.all().filter('id =', id).get() show_cancel = self.request.get('cancel') msgid = 0 if self.request.get('msgId') == '' else int(self.request.get('msgId')) if cResponse.is_valid: rep = re.compile('^http://', re.IGNORECASE) message.website = re.sub(rep, '', message.website) # Escape the content message.msg = escape_str(message.msg) message.escaped_msg = message.msg.replace('\\', '\\\\') message.ref_msg = escape_str(message.ref_msg) message.put() self.redirect('/article/' + message.article.permalink) else: self.captcha_error = 'Please try again' self.save_nickname = message.nickname self.save_email = message.email self.save_website = message.website self.save_msg = message.msg self.save_ref = message.ref_msg self.save_refname = message.ref_name self.save_showcancel = show_cancel self.save_msgid = msgid self.get()
def get(self): id = self.request.get('id') cats = get_all_categories() path = os.path.join(os.path.dirname(__file__), 'pages/writeNew.html') if id == '': id = 'new' if id == 'new': template_values = { 'logout_url': users.create_logout_url('/'), 'page_name': 'writeNew', 'cats': cats, 'save_title': self.save_title, 'save_content': self.save_content, 'save_permalink': self.save_permalink, 'save_permit_comment': self.save_permit_comment, 'save_category': self.save_category, 'save_tags': self.save_tags } else: article = Article.all().filter('id =', id).get() rep = re.compile(r'[\r\f\v]') template_values = { 'article': article, 'old_tags': ' '.join(art.name for art in article.tags()), 'html': re.sub(rep, '', article.content.replace('\\', '\\\\').replace('\"', '\\"').replace('\'', '\\\'').replace('\n', '\\n')), 'logout_url': users.create_logout_url('/'), 'page_name': 'editOld', 'cats': cats, 'save_title': self.save_title, 'save_content': self.save_content, 'save_permalink': self.save_permalink, 'save_permit_comment': self.save_permit_comment, 'save_category': self.save_category, 'save_tags': self.save_tags } self.response.out.write(template.render(path, template_values))
def post(self): content = self.request.get('content') method = self.request.get('method') if method == 'preview': self.do_preview(self, content) elif method == 'publish': link = self.request.get('permalink') target = db.GqlQuery('''select * from Article where permalink = :1''', link).get() if target != None: self.save_title = self.request.get('thetitle') self.save_content = content self.save_permalink = link self.save_permit_comment = self.request.get('permitComment') self.save_category = self.request.get('cat') self.save_tags = self.request.get('tags') self.get() else: article = Article() article.thetitle = self.request.get('thetitle') article.content = content article.thumbnail = self.request.get('thumbnail') article.permalink = self.request.get('permalink') article.permit_comment = True if self.request.get('permitComment') == 'permit' else False cat = self.request.get('cat') if cat == 'unsorted': article.has_category = False else: article.has_category = True cat_item = Category.all().filter('name = ', cat).get() article.category = cat_item cat_item.count = cat_item.count + 1 cat_item.put() mod_archive(article) article.year = article.time_stamp.year article.month = article.time_stamp.month article.day = article.time_stamp.day article.id = str(article.time_stamp.year) + '-' + str(article.time_stamp.month) + '-' + str(article.time_stamp.day) + '-' + \ str(article.time_stamp.hour) + '-' + str(article.time_stamp.minute) + '-' + str(article.time_stamp.second) + '-' + \ str(article.time_stamp.microsecond) query = Article.all().order('-time_stamp').fetch(1) record = None if query == [] else query[0] if record != None: record.link_next = article.permalink record.year_next = article.year record.month_next = article.month record.day_next = article.day record.title_next = article.thetitle record.put() article.link_prev = record.permalink article.year_prev = record.year article.month_prev = record.month article.day_prev = record.day article.title_prev = record.thetitle else: article.link_prev = '' article.year_prev = -1 article.month_prev = -1 article.day_prev = -1 article.title_prev = '' article.link_next = '' article.year_next = -1 article.month_next = -1 article.day_next = -1 article.title_next = '' article.put(); mod_article_tag(article, self.request.get('tags').split(' '), False) self.redirect('/atf-articles'); # Modify an article else: # Article to be modified target = Article.all().filter('id =', self.request.get('articleId')).get() link = self.request.get('permalink') # If there exists an article with that link name suspect = db.GqlQuery('''select * from Article where permalink = :1''', link).get() if suspect != None and target.id != suspect.id: self.save_title = self.request.get('thetitle') self.save_content = content self.save_permalink = link self.save_permit_comment = self.request.get('permitComment') self.save_category = self.request.get('cat') self.save_tags = self.request.get('tags') self.get() else: if target.has_category: target.category.count = target.category.count - 1 target.category.put() target.thetitle = self.request.get('thetitle') target.content = content target.thumbnail = self.request.get('thumbnail') target.permalink = self.request.get('permalink') target.permit_comment = True if self.request.get('permitComment') == 'permit' else False cat = self.request.get('cat') if cat == 'unsorted': target.category = None target.has_category = False else: target.has_category = True target.category = Category.all().filter('name =', self.request.get('cat')).get() target.category.count = target.category.count + 1 target.category.put() target.put() mod_article_tag(target, self.request.get('tags').split(' '), True) self.redirect('/atf-articles');
def get(self): # arts = Article.all().order('-time_stamp').fetch(100) # # arts[3].link_prev = '' # arts[3].year_prev = 0 # arts[3].month_prev = 0 # arts[3].day_prev = 0 # arts[3].title_prev = '' # arts[3].link_next = arts[2].permalink # arts[3].year_next = arts[2].year # arts[3].month_next = arts[2].month # arts[3].day_next = arts[2].day # arts[3].title_next = arts[2].thetitle # # arts[2].link_prev = arts[3].permalink # arts[2].year_prev = arts[3].year # arts[2].month_prev = arts[3].month # arts[2].day_prev = arts[3].day # arts[2].title_prev = arts[3].thetitle # arts[2].link_next = arts[1].permalink # arts[2].year_next = arts[1].year # arts[2].month_next = arts[1].month # arts[2].day_next = arts[1].day # arts[2].title_next = arts[1].thetitle # # arts[1].link_prev = arts[2].permalink # arts[1].year_prev = arts[2].year # arts[1].month_prev = arts[2].month # arts[1].day_prev = arts[2].day # arts[1].title_prev = arts[2].thetitle # arts[1].link_next = arts[0].permalink # arts[1].year_next = arts[0].year # arts[1].month_next = arts[0].month # arts[1].day_next = arts[0].day # arts[1].title_next = arts[0].thetitle # # arts[0].link_prev = arts[1].permalink # arts[0].year_prev = arts[1].year # arts[0].month_prev = arts[1].month # arts[0].day_prev = arts[1].day # arts[0].title_prev = arts[1].thetitle # arts[0].link_next = '' # arts[0].year_next = 0 # arts[0].month_next = 0 # arts[0].day_next = 0 # arts[0].title_next = '' # # for a in arts: # a.put() # # self.redirect('http://www.baidu.com'); try: pageno = int(self.request.path.split('/')[-1]) except ValueError: pageno = 1 query = Article.all().order('-time_stamp') group = query.fetch(1000) article_list = [] pagei = 0 start = 0 length = len(group) while group != [] and article_list == []: while start + self.article_per_page - 1 < length: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.article_per_page] start = start + self.article_per_page if len(group[start : start + self.article_per_page]) > 0: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.article_per_page] last_time = group[-1].time_stamp query.filter('time_stamp <', last_time) group = query.fetch(1000) show_left_arrow = 1 if pageno > 1 else 0 show_right_arrow = 1 if pageno < pagei else 0 show_left_dot = 1 if pageno >= 5 else 0 show_right_dot = 1 if pageno <= pagei - 4 else 0 pageno_list = [i for i in range(max(1, pageno - 3), min(pagei + 1, pageno + 4))] template_values = { 'articles': article_list, 'pagename': 'articles', 'page_current': pageno, 'page_total': pagei, 'pageno_list': pageno_list, 'show_left_arrow': show_left_arrow, 'show_right_arrow': show_right_arrow, 'show_left_dot': show_left_dot, 'show_right_dot': show_right_dot, 'page_prev': max(1, pageno - 1), 'page_next': min(pagei, pageno + 1), 'categories': get_all_categories(), 'tags': get_all_tags(), 'unsorted_count': count_unsorted(), } path = os.path.join(os.path.dirname(__file__), 'pages/articles.html') self.response.headers['Content-Type'] = 'text/html;charset=utf-8' self.response.out.write(template.render(path, template_values))
def get(self): temp = self.request.path.split('/') key = temp[1] try: pageno = int(temp[-1]) except ValueError: pageno = 1 if key == 'category': if len(temp) == 4 or len(temp) > 3 and temp[3] != 'page': path = os.path.join(os.path.dirname(__file__), 'pages/error.html') self.response.out.write(template.render(path, None)) return name = unicode(urllib.unquote(temp[2]), 'utf-8') if name == 'unsorted': query = Article.all().filter('has_category =', False).order('-time_stamp') else: query = Category.all().filter('name =', name) if query.get() != None: query = query.get().articles.order('-time_stamp') elif key == 'tag': if len(temp) == 4 or len(temp) > 3 and temp[3] != 'page': path = os.path.join(os.path.dirname(__file__), 'pages/error.html') self.response.out.write(template.render(path, None)) return name = unicode(urllib.unquote(temp[2]), 'utf-8') query = Tag.all().filter('name =', name) if query.get() != None: query = query.get().ref_tag.order('-time_stamp') else: year = int(temp[2]) month = int(temp[3]) pageno = 1 if len(temp) > 4: try: pageno = int(temp[-1]) except ValueError: pageno = 1 name = str(year) + '/' + str(month) query = db.GqlQuery('select * from Archive where year = :1 and month = :2', year, month) if query.get() != None: query = query.get().articles.order('-time_stamp') group = query.fetch(1000) article_list = [] pagei = 0 start = 0 length = len(group) while group != [] and article_list == []: # Pick out each page while start + self.article_per_page - 1 < length: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.article_per_page] start = start + self.article_per_page if len(group[start : start + self.article_per_page]) > 0: pagei = pagei + 1 if pagei == pageno: article_list = group[start : start + self.article_per_page] last_time = group[-1].time_stamp query.filter('time_stamp <', last_time) group = query.fetch(1000) show_left_arrow = 1 if pageno > 1 else 0 show_right_arrow = 1 if pageno < pagei else 0 show_left_dot = 1 if pageno >= 5 else 0 show_right_dot = 1 if pageno <= pagei - 4 else 0 pageno_list = [i for i in range(max(1, pageno - 3), min(pagei + 1, pageno + 4))] if key == 'tag': article_set = [] for item in article_list: article_set.append(item.article) template_values = { 'articles': article_list if key != 'tag' else article_set, 'pagename': 'articles', 'page_current': pageno, 'page_total': pagei, 'pageno_list': pageno_list, 'show_left_arrow': show_left_arrow, 'show_right_arrow': show_right_arrow, 'show_left_dot': show_left_dot, 'show_right_dot': show_right_dot, 'colno': len(pageno_list) + show_left_arrow + show_right_arrow + show_left_dot + show_right_dot, 'page_prev': max(1, pageno - 1), 'page_next': min(pagei, pageno + 1), 'categories': get_all_categories(), 'tags': get_all_tags(), 'name': name, 'key': key, 'unsorted_count': count_unsorted(), } path = os.path.join(os.path.dirname(__file__), 'pages/articles.html') self.response.headers['Content-Type'] = 'text/html;charset=utf-8' self.response.out.write(template.render(path, template_values))