Exemple #1
0
    def test_parse_datetime(self):
        from tornado_utils import parse_datetime
        from tornado_utils import DatetimeParseError

        r = parse_datetime('1285041600000')
        self.assertEqual(r.year, 2010)

        r = parse_datetime('1283140800')
        self.assertEqual(r.year, 2010)

        r = parse_datetime('1286744467.0')
        self.assertEqual(r.year, 2010)

        self.assertRaises(DatetimeParseError, parse_datetime, 'junk')
Exemple #2
0
    def get(self):
        what = self.get_argument('what')
        timestamp = self.get_argument('timestamp')
        items = []
        _days = lambda x: datetime.timedelta(days=x)
        if what == 'Questions':
            when = parse_datetime(timestamp)
            search = {'state': 'PUBLISHED',
                      'publish_date': {'$gte': when - _days(7),
                                       '$lt': when - _days(0)}}
            questions = (self.db.Question.collection
                         .find(search))
            for question in questions:
                url = get_question_slug_url(question)
                items.append({'url': url,
                              'text': question['text']})

        elif what == 'Contributors':
            when = parse_datetime(timestamp)
            search = {'state': 'PUBLISHED',
                      'publish_date': {'$gte': when - _days(7),
                                       '$lt': when - _days(0)}}
            questions = (self.db.Question.collection
                         .find(search))
            users = defaultdict(int)
            for question in questions:
                users[question['author'].id] += 1
            as_list = [(c, i) for i, c in users.items()]
            as_list.sort()
            as_list.reverse()
            for count, _id in as_list:
                user = self.db.User.one({'_id': _id})
                text = "%s (%s)" % (user.username, count)
                items.append({'text': text})
        else:
            raise HTTPError(404, "Invalid argument %r" % what)
        self.write_json(dict(items=items))