Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
datetime solution in Clear category for Web Log Sessions by David_Jones
from collections import defaultdict
from datetime import datetime, timedelta
HALF_HOUR = timedelta(minutes=30)
def checkio(log_text):
records = defaultdict(list)
for line in log_text.splitlines():
time, name, url = line.lower().split(';;')
host = '.'.join(url.split('/')[2].split('.')[-2:])
records[name,host].append(datetime.strptime(time, '%Y-%m-%d-%H-%M-%S'))
sessions = []
for (name, host), time in records.items():
while time:
for i in range(1, len(time)):
if time[i] - time[i-1] > HALF_HOUR:
sessions.append((
name, host,
int((time[i-1] - time[0]).total_seconds()) + 1, i
))
time = time[i:]
break
else:
sessions.append((
name, host,
int((time[-1] - time[0]).total_seconds()) + 1, len(time)
))
break
return '\n'.join(';;'.join(map(str, time)) for time in sorted(sessions))
June 5, 2019
Comments: