def getIntervalData(log):
	'''
	Goes through filelines and gets working intervals
	input: filelines
	output: {"name": [
	{
      "date": "2016-01-05",
      "data": [
        {
          "start": "2016-01-05 12:16",
          "stop": "2016-01-05 12:18",
          "type": "working"
        }
      ]
    },
    {
      "date": "2016-01-08",
      "data": [
        {
          "start": "2016-01-08 15:49",
          "stop": "2016-01-08 15:49",
          "type": "working"
        }
      ]
    }
  ],}
	'''
	data = []
	chunk = []
	old_date = None
	for line in log:
		line_date = nt.gettimestamp(line)
		if not line_date:
			continue
		if not old_date and line_date:
			old_date = line_date.date()
		if old_date and old_date != line_date.date():
			if len(chunk):
				date_string = old_date.strftime('%Y-%m-%d')
				data.append({'date': date_string,'data': nt.getworkingintervalsforchunk(chunk)})
			chunk = []
		chunk.append(line)
		old_date = line_date.date()
	if len(chunk) :
		date_string = old_date.strftime('%Y-%m-%d')
		data.append({'date': date_string,'data': nt.getworkingintervalsforchunk(chunk)})
	return data
def calcactions(log):
	result = {
		"merges": 0,
		"splits": 0,
		"bodies": {},
	}
	initial = {
		'merges': 0,
		'splits': 0,
		'working': 0,
	} 
	day_result = {}
	current_assignment = None
	assignment_chunk = []
	assignment_day_chunk = []
	for l in log:
		if l[nt.loglevellength:].startswith('20'):	
			line_date = nt.gettimestamp(l).strftime(nt.newtimestampformat)[0:8]
			if line_date not in day_result:
				day_result[line_date] = {
					"merges": 0,
					"splits": 0,
					"bodies": {},
				}
				if assignment_day_chunk:
					wt_day = nt.getworkingtimeforchunk(assignment_day_chunk)
					assignment_day_chunk = []
					if current_assignment not in day_result[line_date]['bodies']:
							day_result[line_date]['bodies'][current_assignment] = initial.copy()
					day_result[line_date]['bodies'][current_assignment]['working'] += wt_day['working']
			if "Assigned bookmark" in l:
				# Retrieve bookmark
				bid = nt.getbookmarkid(l)
				if bid:
					if current_assignment and bid != current_assignment:
						wt = nt.getworkingtimeforchunk(assignment_chunk)
						wt_day = nt.getworkingtimeforchunk(assignment_day_chunk)
						assignment_chunk = []
						assignment_day_chunk = []
						result['bodies'][current_assignment]['working'] += wt['working']
						if current_assignment not in day_result[line_date]['bodies']:
							day_result[line_date]['bodies'][current_assignment] =  initial.copy()
						day_result[line_date]['bodies'][current_assignment]['working'] += wt_day['working']
						# add time to old assignment
					current_assignment = bid
					if current_assignment not in result['bodies']:
						# If not exists, create dictionary
						result['bodies'][current_assignment] = initial.copy()
			if "Merge operation saved." in l:
				result['merges'] += 1
				day_result[line_date]['merges'] += 1
				if current_assignment:
					result['bodies'][current_assignment]['merges'] += 1
					if current_assignment not in day_result[line_date]['bodies']:
						day_result[line_date]['bodies'][current_assignment] = initial.copy()
					day_result[line_date]['bodies'][current_assignment]['merges'] += 1

			if "splitted" in l:
				result['splits'] += 1
				day_result[line_date]['splits'] += 1
				if current_assignment:
					result['bodies'][current_assignment]['splits'] += 1
					if current_assignment not in day_result[line_date]['bodies']:
							day_result[line_date]['bodies'][current_assignment] = initial.copy()
					day_result[line_date]['bodies'][current_assignment]['splits'] += 1
			if current_assignment:
				assignment_chunk.append(l)
				assignment_day_chunk.append(l)
		# TODO synapses
		# TODO volume	
	return result, day_result