Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Web Log Sessions by htamas
from datetime import datetime
def checkio(log_text):
progress = {}
finished = []
for line in log_text.strip().split('\n'):
time, user, url = line.strip().lower().split(';;')
timestamp = datetime(*map(int, time.split('-')))
domain = '.'.join(url.split('/')[2].split('.')[-2:])
if (user, domain) in progress:
first, last, counter = progress[(user, domain)]
if (timestamp - last).total_seconds() > 1800:
finished.append((user, domain, first, last, counter))
first, counter = timestamp, 0
else:
first, counter = timestamp, 0
progress[(user, domain)] = (first, timestamp, counter + 1)
for key, value in progress.items():
finished.append(key + value)
sessions = []
for user, domain, first, last, counter in finished:
duration = int((last - first).total_seconds()) + 1
sessions.append((user, domain, duration, counter))
sessions.sort()
return '\n'.join(';;'.join(map(str, data)) for data in sessions)
Dec. 15, 2013