Ejemplo n.º 1
0
def monthly_metrics_between(table_id,
                            from_date,
                            to_date,
                            use_cached=True,
                            use_only_cached=False):
    date_list = utils.dt_month_range(from_date, to_date)
    views_dt_range = filter(core.valid_view_dt_pair, date_list)
    pdf_dt_range = filter(core.valid_downloads_dt_pair, date_list)

    query_list = []
    query_list.extend(generate_queries(table_id, \
                                       'path_counts_query', \
                                       views_dt_range,
                                       use_cached, use_only_cached))

    query_list.extend(generate_queries(table_id, \
                                       'event_counts_query', \
                                       pdf_dt_range,
                                       use_cached, use_only_cached))
    bulk_query(query_list)

    # everything should be cached by now
    use_cached = True  # DELIBERATE
    return metrics_for_range(table_id, views_dt_range, use_cached,
                             use_only_cached)
Ejemplo n.º 2
0
 def test_month_range(self):
     expected_output = [
         (datetime(year=2014, month=12, day=1), datetime(year=2014, month=12, day=31)),
         (datetime(year=2015, month=1, day=1), datetime(year=2015, month=1, day=31)),
         (datetime(year=2015, month=2, day=1), datetime(year=2015, month=2, day=28)),
         (datetime(year=2015, month=3, day=1), datetime(year=2015, month=3, day=31)),
     ]
     start_dt = datetime(year=2014, month=12, day=15)
     end_dt = datetime(year=2015, month=3, day=12)
     self.assertEqual(expected_output, list(utils.dt_month_range(start_dt, end_dt)))
Ejemplo n.º 3
0
def monthly(doi, from_date, to_date, source=models.GA):
    """returns monthly metrics for the given article for the month
    starting in `from_date` to the month ending in `to_date`"""
    # because we're not storing dates, but rather a representation of a date
    date_list = utils.dt_month_range(from_date, to_date) # ll: [(2013-01-01, 2013-01-31), (2013-02-01, 2013-02-28), ...]
    date_list = [ymd(i[0])[:7] for i in date_list] # ll:  [2013-01, 2013-02, 2013-03]
    return models.Metric.objects \
      .filter(article__doi__iexact=doi) \
      .filter(source=source) \
      .filter(period=models.MONTH) \
      .filter(date__in=date_list)
Ejemplo n.º 4
0
    def test_monthly_average(self):
        sept_2015 = datetime(year=2015, month=9, day=1)
        dtrange = utils.dt_month_range(sept_2015, sept_2015)
        from_date, to_date = dtrange[0]

        resp = general.total_traffic_monthly(self.table_id, from_date, to_date)
        expected_resp = {
            "from_date": u"2015-09-01",
            "to_date": u"2015-09-30",
            "results": OrderedDict([(u"2015-09", 675857)]),
            "average": 675857,
        }
        self.assertEqual(resp, expected_resp)
Ejemplo n.º 5
0
    def test_monthly_average(self):
        sept_2015 = datetime(year=2015, month=9, day=1)
        dtrange = utils.dt_month_range(sept_2015, sept_2015)
        from_date, to_date = dtrange[0]

        resp = general.total_traffic_monthly(self.table_id, from_date, to_date)
        expected_resp = {
            'from_date': u'2015-09-01',
            'to_date': u'2015-09-30',
            'results': OrderedDict([(u'2015-09', 675857)]),
            'average': 675857
        }
        self.assertEqual(resp, expected_resp)
Ejemplo n.º 6
0
def total_traffic_monthly_query(table_id, from_date=None, to_date=None):
    "returns "
    from_date = from_date or core.VIEWS_INCEPTION
    to_date = to_date or datetime.now()
    month_range = utils.dt_month_range(from_date, to_date)
    from_date, to_date = month_range[0][0], month_range[-1][1]
    return {
        'ids': table_id,
        'max_results': 10000,  # 10,000 is the max GA will ever return
        'start_date': ymd(from_date),
        'end_date': ymd(to_date),
        'metrics': 'ga:pageviews',
        'dimensions': 'ga:year,ga:month'
    }
Ejemplo n.º 7
0
def total_traffic_monthly_query(table_id, from_date=None, to_date=None):
    "returns "
    from_date = from_date or core.VIEWS_INCEPTION
    to_date = to_date or datetime.now()    
    month_range = utils.dt_month_range(from_date, to_date)
    from_date, to_date = month_range[0][0], month_range[-1][1]    
    return {
        'ids': table_id,
        'max_results': 10000, # 10,000 is the max GA will ever return
        'start_date': ymd(from_date),
        'end_date': ymd(to_date),
        'metrics': 'ga:pageviews',
        'dimensions': 'ga:year,ga:month'
    }
Ejemplo n.º 8
0
 def test_month_range(self):
     expected_output = [
         (datetime(year=2014, month=12,
                   day=1), datetime(year=2014, month=12, day=31)),
         (datetime(year=2015, month=1,
                   day=1), datetime(year=2015, month=1, day=31)),
         (datetime(year=2015, month=2,
                   day=1), datetime(year=2015, month=2, day=28)),
         (datetime(year=2015, month=3,
                   day=1), datetime(year=2015, month=3, day=31)),
     ]
     start_dt = datetime(year=2014, month=12, day=15)
     end_dt = datetime(year=2015, month=3, day=12)
     self.assertEqual(expected_output,
                      list(utils.dt_month_range(start_dt, end_dt)))
Ejemplo n.º 9
0
def monthly_metrics_between(table_id, from_date, to_date, use_cached=True, use_only_cached=False):
    date_list = utils.dt_month_range(from_date, to_date)
    views_dt_range = filter(core.valid_view_dt_pair, date_list)
    pdf_dt_range = filter(core.valid_downloads_dt_pair, date_list)

    query_list = []
    query_list.extend(generate_queries(table_id, \
                                       'path_counts_query', \
                                       views_dt_range,
                                       use_cached, use_only_cached))
    
    query_list.extend(generate_queries(table_id, \
                                       'event_counts_query', \
                                       pdf_dt_range,
                                       use_cached, use_only_cached))
    bulk_query(query_list)
    
    # everything should be cached by now
    use_cached = True # DELIBERATE
    return metrics_for_range(table_id, views_dt_range, use_cached, use_only_cached)