deepshell / deepshell-backend /analyze_visits.py
muralipala1504
Add first-party visit logging middleware + analyzer
be6dc21
Raw
History Blame Contribute Delete
1.17 kB
import json
import sys
from collections import Counter
from urllib.parse import parse_qs
def main(path):
paths, referrers, countries, utm_sources = (
Counter(), Counter(), Counter(), Counter()
)
total = 0
with open(path) as f:
for line in f:
line = line.strip()
if not line:
continue
entry = json.loads(line)
total += 1
paths[entry.get("path", "")] += 1
referrers[entry.get("referrer") or "(direct)"] += 1
countries[entry.get("country") or "(unknown)"] += 1
qs = parse_qs(entry.get("query", ""))
if "utm_source" in qs:
utm_sources[qs["utm_source"][0]] += 1
print(f"Total logged page views: {total}\n")
for label, counter in [
("Top paths", paths), ("Top referrers", referrers),
("Countries", countries), ("UTM sources", utm_sources),
]:
print(f"{label}:")
for key, count in counter.most_common(10):
print(f" {count:>5} {key}")
print()
if __name__ == "__main__":
main(sys.argv[1] if len(sys.argv) > 1 else "logs/visits.jsonl")