Skip to content

Instantly share code, notes, and snippets.

@JustinShenk
Created December 12, 2017 12:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JustinShenk/ed67ecb45b8bb4da537e6d45c3bdfdd6 to your computer and use it in GitHub Desktop.
Save JustinShenk/ed67ecb45b8bb4da537e6d45c3bdfdd6 to your computer and use it in GitHub Desktop.
Analyze Google Docs user contributions and activity
Span Duration User # Revisions
Sat, 9/30/2017, 12:56:47 PM - 1:00:18 PM 00:03:31s Justin Shenk 372
Sat, 9/30/2017, 1:16:02 PM - 1:29:42 PM 00:13:40s Justin Shenk 1136
Sat, 9/30/2017, 1:45:20 PM - 2:19:19 PM 00:33:59s Justin Shenk 948
Sat, 9/30/2017, 4:28:13 PM - 4:29:14 PM 00:01:00s 06287517911256457317 38
Sat, 9/30/2017, 4:44:12 PM - 5:03:57 PM 00:19:44s Justin Shenk 750
Sat, 9/30/2017, 8:34:08 PM - 8:40:02 PM 00:05:54s Justin Shenk 42
Sat, 9/30/2017, 8:48:53 PM - 9:11:03 PM 00:22:10s 06287517911256457317 1204
Sat, 9/30/2017, 9:11:04 PM - 9:11:04 PM 00:00:00s Justin Shenk 2
Sat, 9/30/2017, 9:11:04 PM - 9:11:07 PM 00:00:03s 06287517911256457317 6
Sat, 9/30/2017, 9:11:08 PM - 9:11:08 PM 00:00:00s Justin Shenk 2
Sat, 9/30/2017, 9:11:08 PM - 9:11:08 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:11:08 PM - 9:11:08 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:11:08 PM - 9:11:09 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:11:09 PM - 9:11:09 PM 00:00:00s Justin Shenk 2
Sat, 9/30/2017, 9:11:10 PM - 9:11:10 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:11:11 PM - 9:11:11 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:11:11 PM - 9:11:23 PM 00:00:11s 06287517911256457317 22
Sat, 9/30/2017, 9:11:27 PM - 9:11:37 PM 00:00:09s Justin Shenk 12
Sat, 9/30/2017, 9:11:39 PM - 9:11:49 PM 00:00:10s 06287517911256457317 2
Sat, 9/30/2017, 9:11:49 PM - 9:11:49 PM 00:00:00s Justin Shenk 2
Sat, 9/30/2017, 9:11:50 PM - 9:11:50 PM 00:00:00s 06287517911256457317 1
Sat, 9/30/2017, 9:11:50 PM - 9:11:50 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:11:50 PM - 9:11:51 PM 00:00:00s 06287517911256457317 3
Sat, 9/30/2017, 9:11:51 PM - 9:11:51 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:11:51 PM - 9:11:52 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:11:57 PM - 9:11:57 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:11:57 PM - 9:12:00 PM 00:00:02s 06287517911256457317 17
Sat, 9/30/2017, 9:12:00 PM - 9:12:00 PM 00:00:00s Justin Shenk 1
Sat, 9/30/2017, 9:12:06 PM - 9:12:06 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:12:06 PM - 9:12:22 PM 00:00:15s Justin Shenk 6
Sat, 9/30/2017, 9:12:23 PM - 9:12:23 PM 00:00:00s 06287517911256457317 1
Sat, 9/30/2017, 9:12:24 PM - 9:12:26 PM 00:00:01s Justin Shenk 8
Sat, 9/30/2017, 9:12:26 PM - 9:12:26 PM 00:00:00s 06287517911256457317 1
Sat, 9/30/2017, 9:12:26 PM - 9:12:27 PM 00:00:01s Justin Shenk 9
Sat, 9/30/2017, 9:12:27 PM - 9:12:27 PM 00:00:00s 06287517911256457317 1
Sat, 9/30/2017, 9:12:28 PM - 9:12:38 PM 00:00:10s Justin Shenk 6
Sat, 9/30/2017, 9:12:38 PM - 9:12:38 PM 00:00:00s 06287517911256457317 2
Sat, 9/30/2017, 9:13:22 PM - 9:27:19 PM 00:13:56s Justin Shenk 148
Sat, 9/30/2017, 9:37:21 PM - 9:57:34 PM 00:20:12s Justin Shenk 776
Sat, 9/30/2017, 10:32:27 PM - 10:41:43 PM 00:09:16s 06287517911256457317 908
Sat, 9/30/2017, 11:27:38 PM - 11:31:03 PM 00:03:24s Justin Shenk 72
import pandas as pd
# Click "document graphs and statistics" and save the data to `draftback.txt`
data = pd.read_csv('./draftback.txt',sep='\t')
# Get list of users
users = data['User'].unique()
for user in users:
user_data = data[data['User'] == user]
user_revisions = user_data['# Revisions'].sum()
datetime.strptime(justin['Duration'][0], '%H:%M:%Ss')
user_durations_raw = user_data['Duration'].values
durations_split = [x.split(':') for x in user_durations_raw]
_seconds_raw = [int(x[-1][:-1]) for x in durations_split]
seconds = sum(_seconds_raw) % 60
_minutes_raw = [int(x[-2]) for x in durations_split]
minutes = (sum(_minutes_raw) + sum(_seconds_raw) // 60) % 60
_hours_raw = [int(x[-3]) for x in durations_split]
hours = sum(_hours_raw) + sum(_minutes_raw) // 60
user_revisions = user_data['# Revisions'].values.sum()
if user == '06287517911256457317':
user = 'Anonymous'
print("User {} was active for {} hours, {} minutes and {} seconds and contributed {} revisions".format(user, hours, minutes, seconds, user_revisions))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment