def course_track_event(fs, mongodb, response): mixpanel_data = [] for resp in response: try: for regex in COURSE_PAGES_TO_TRACK: match = re.search(regex, resp['event_type']) user = resp["username"] if match is not None: split_url = resp['event_type'].split("/") org = split_url[2] course = split_url[3] host = resp['host'] agent = resp['agent'] time_data = extract_time(resp) mixpanel_data.append({ 'event': regex, 'properties': { 'user': user, 'distinct_id': user, 'full_url': resp['event_type'], 'course': course, 'org': org, 'host': host, 'agent': agent, 'time': time_data } }) except: log.exception("Mixpanel course track failed.") track_event_mixpanel_batch.delay(mixpanel_data)
def single_page_track_event(fs, mongodb, response): mixpanel_data = [] for resp in response: try: if resp['event_type'] in SINGLE_PAGES_TO_TRACK + BOOK_EVENTS_TO_TRACK + PROBLEM_EVENTS_TO_TRACK + VIDEO_EVENTS_TO_TRACK + OPEN_ENDED_EVENTS_TO_TRACK: user = resp["username"] host = resp['host'] agent = resp['agent'] time_data = extract_time(resp) org, course, name = extract_course_and_org(resp) event_data = { 'event': resp['event_type'], 'properties': { 'user': user, 'distinct_id': user, 'host': host, 'agent': agent, 'time': time_data } } if org is not None: event_data['properties'].update({ 'org': org, 'course': course, 'name': name, }) mixpanel_data.append(event_data) except: log.exception("Mixpanel single page track failed") track_event_mixpanel_batch.delay(mixpanel_data)
def course_track_event(fs,mongodb,response): mixpanel_data =[] for resp in response: try: for regex in COURSE_PAGES_TO_TRACK: match = re.search(regex, resp['event_type']) user = resp["username"] if match is not None: split_url = resp['event_type'].split("/") org = split_url[2] course = split_url[3] host = resp['host'] agent = resp['agent'] time_data = extract_time(resp) mixpanel_data.append({'event': regex,'properties' : {'user' : user, 'distinct_id' : user, 'full_url' : resp['event_type'], 'course' : course, 'org' : org, 'host' : host, 'agent' : agent, 'time' : time_data}}) except: log.exception("Mixpanel course track failed.") track_event_mixpanel_batch.delay(mixpanel_data)
def single_page_track_event(fs, mongodb, response): mixpanel_data = [] for resp in response: try: if resp['event_type'] in SINGLE_PAGES_TO_TRACK + BOOK_EVENTS_TO_TRACK + PROBLEM_EVENTS_TO_TRACK + VIDEO_EVENTS_TO_TRACK + OPEN_ENDED_EVENTS_TO_TRACK: user = resp["username"] host = resp['host'] agent = resp['agent'] time_data = extract_time(resp) org, course, name = extract_course_and_org(resp) event_data = {'event' : resp['event_type'],'properties' : {'user' : user, 'distinct_id' : user, 'host' : host, 'agent' : agent, 'time' : time_data}} if org is not None: event_data['properties'].update({ 'org' : org, 'course' : course, 'name' : name, }) mixpanel_data.append(event_data) except: log.exception("Mixpanel single page track failed") track_event_mixpanel_batch.delay(mixpanel_data)