Example #1
0
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)
Example #3
0
    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()
Example #4
0
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)
Example #5
0
 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}))
Example #6
0
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)    
Example #7
0
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)
Example #8
0
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'))
Example #9
0
 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]})