diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2021-03-28 12:43:55 +0200 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2021-03-28 13:08:22 +0200 |
| commit | ed7bdb8a06658313bb6d94686921b6fb5f4b5a89 (patch) | |
| tree | 362ce84473582d600decafcbf6d95e8d02f8bb09 | |
| parent | ecae0f066e83b596bc3a590baa1968fa1666ad19 (diff) | |
| download | quatuorbellefeuille.com-ed7bdb8a06658313bb6d94686921b6fb5f4b5a89.tar.xz | |
Dump daily visits
Should refactor common code with daily_visitors.
| -rwxr-xr-x | admin/stats/dump.py | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/admin/stats/dump.py b/admin/stats/dump.py index 7a54acc..20f7c93 100755 --- a/admin/stats/dump.py +++ b/admin/stats/dump.py @@ -136,9 +136,13 @@ def sort_visits(accesses): return visitors +def datetime_day(dt): + return dt.replace(hour=0, minute=0, second=0) + + def find_days(visits): return { - v[0].time.replace(hour=0, minute=0, second=0) + datetime_day(v[0].time) for v in visits } @@ -167,10 +171,35 @@ def daily_visitors(visitors, output_path): print(*values, sep='\t') +def daily_visits(visitors, output_path): + days: Dict[datetime, Counter] = defaultdict(Counter) + columns = ('mobile', 'tablet', 'pc', 'bot', 'n/a') + + print('Visits:') + + for v in visitors.values(): + for visit in v.visits: + day = datetime_day(visit[0].time) + days[day][v.useragent] += 1 + + with open(output_path, 'w') as f: + out = csv.writer(f) + out.writerow(('day', 'total', *columns)) + print('day', 'total', *columns, sep='\t') + + for day in sorted(days): + counter = days[day] + counters = tuple(counter[c] for c in columns) + values = (day.strftime('%F'), sum(counters), *counters) + + out.writerow(values) + print(*values, sep='\t') + + def daily_stats(visitors, output_dir): output_dir = Path(output_dir) daily_visitors(visitors, output_dir.joinpath('dailyvisitors.csv')) - # daily_visits(visitors, output_dir.joinpath('dailyvisits.csv')) + daily_visits(visitors, output_dir.joinpath('dailyvisits.csv')) # daily_pages_per_visit(visitors, output_dir.joinpath('dailypagespervisit.csv')) # daily_page_hits(visitors, output_dir.joinpath('dailypagehits.csv')) # daily_referrers(visitors, output_dir.joinpath('dailyreferrers.csv')) |
