def index(request): if users.get_current_user(): url = users.create_logout_url("/") url_linktext = 'Logout' username = users.get_current_user() else: url = users.create_login_url("/") url_linktext = 'Login' username = '' #if 'guestbook_name' in request.GET: guestbook_name = request.GET.get('guestbook_name', DEFAULT_GUESTBOOK_NAME) #else: # guestbook_name=DEFAULT_GUESTBOOK_NAME # Ancestor Queries, as shown here, are strongly consistent with the High # Replication Datastore. Queries that span entity groups are eventually # consistent. If we omitted the ancestor from this query there would be # a slight chance that Greeting that had just been written would not # show up in a query. greetings_query = Greeting.query( ancestor=guestbook_key(guestbook_name)).order(-Greeting.date) greetings = greetings_query.fetch(10) news = News.query().order(-News.date).fetch(5) template_values = { 'url': url, 'url_linktext': url_linktext, 'username': username, 'greetings': greetings, 'guestbook_name': guestbook_name, 'news': news, } return render_to_response('index.html', template_values)
def get(self): news = News.query().order(-News.start).fetch() for new in news: new.created_str = new.created.strftime(STR_DATETIME_FORMAT) utc_time = datetime.utcnow().strftime(STR_DATETIME_FORMAT) self.render('/notifications/news_list.html', news=news, utc_time=utc_time, NOTIFICATION_STATUS_MAP=NOTIFICATION_STATUS_MAP, STATUS_ACTIVE=STATUS_ACTIVE, STATUS_CREATED=STATUS_CREATED)
def post(self): type = self.request.get('type', '') if type == 'stats': pass elif type == 'cleanup': last_year = datetime.datetime.now() - datetime.timedelta(days=365) last_quarter = datetime.datetime.now() - datetime.timedelta( days=92) last_month = datetime.datetime.now() - datetime.timedelta(days=31) # Old news old_news = News.query(News.date < last_quarter).order( News.date).fetch(500, keys_only=True) #logging.info('Cleaning up old news %s' % News.query().order(News.date).count(100,keys_only=True)) ndb.delete_multi(old_news) elif type == 'tag_cloud': channel_urls = [] tags = {} extras = Extra.query(Extra.tag != None) for extra in extras: if extra.channelurl not in channel_urls: channel_urls.append(extra.channelurl) tag = extra.tag if tag in tags: tags[tag] += 1 else: tags[tag] = 1 tags_sorted = sorted(tags.iteritems(), key=operator.itemgetter(1), reverse=True) memcache.set("tag_cloud", tags_sorted) logging.debug('Tags: %s' % (tags_sorted)) elif type == 'fix': test_channel = '#kanava' channel = Channel.query(Channel.name == test_channel).get() channelurls = ChannelUrl.query( ChannelUrl.channel == channel.key).fetch(50) for channelurl in channelurls: url = channelurl.url.get() logging.debug('Channel: %s, channelurl: %s (id %s)' % (test_channel, url, channelurl)) posts = Post.query(Post.channelurl == channelurl.key) for post in posts: logging.debug(' * posted by %s' % (post.user)) post.key.delete() rates = Rate.query(Rate.channelurl == channelurl.key) for rate in rates: logging.debug(' * rate %s' % (rate)) rate.key.delete() extras = Extra.query(Extra.channelurl == channelurl.key) for extra in extras: logging.debug(' * extra %s, by %s' % (extra, extra.user)) extra.key.delete() channelurl.key.delete()
def news(request, rss=None): news = News.query().order(-News.date).fetch(25) template_values = { 'news': news, } if rss: return render_to_response('news_rss.html', template_values, mimetype="application/xml") else: return render_to_response('news.html', template_values)
def get(self): news_query = News.query().order(-News.date) feeds = news_query.fetch(15) template = JINJA_ENVIRONMENT.get_template('templates/home.html') self.response.write(template.render({'feeds':feeds}))
def new_list(page): search_form = SearchForm() q = News.query().order(-News.post_time) news, cursor, more =q.fetch_page(PAGESIZE,offset=PAGESIZE*(page-1)) return render_template('new.html',search_form=search_form,news=news, page=more and page+1 or 0, host=HOST,counter=counter.load_and_get_count("view"),acc=ACC)
def list(page): q = News.query(News.hot == True).order(-News.post_time) news, cursor, more =q.fetch_page(PAGESIZE,offset=PAGESIZE*(page-1)) return render_template('list.html', news=news, page=more and page+1 or 0, host=HOST)
def admin_index(page): news, cursor, more = News.query().fetch_page(250,offset=250*(page-1)) for new in news: search.Index(name=_INDEX_NAME).add(create_doc(new.key.id(),new.title,new.url,new.post_time)) logging.info("indexing: "+str(new.key.id())) return redirect(url_for('home'))
def get(self): news = News.query(News.status == STATUS_ACTIVE).fetch() news = sorted(news, key=lambda n: n.start) self.render_json({'news': [new.dict() for new in news]})