-
Notifications
You must be signed in to change notification settings - Fork 8
/
README.txt
73 lines (53 loc) · 2.23 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
GCI Quotient
============
This script downloads Google Code-In (GCI) data. This includes task
descriptions and claimed task instance data, including uploaded files.
Everything is stashed by default into a 'gci_data' subdirectory.
Tasks are stored in gci_data/tasks while instance data is saved into
per-instance subdirectories named according to timestamp and title.
gci_data/
tasks/ - contains all tasks in json format
instances/ - contains all task instances
DATE-TASK_NAME_-_ORG/ - contains a single task instance
instance.txt - contains a text summary of the task
instance.json - contains raw instance data
activity.json - contains all comments and status changes
HOW TO RUN
----------
0. Install the necessary prerequisites:
python 2.7+
pip install requests[security]
1. Enter the value of your 'SACSID' cookie into 'sacsid_cookie.txt'.
(Log into the GCI website and examine your cookies using your
browser's inspection or web development features.)
Instructions for Chrome :
1. Log into the GCI Website
2. Chrome Controls (Top-right) --> Settings --> Advanced --> Content Settings --> Cookies --> See all cookies...
3. Search for 'codein.withgoogle.com' --> SACSID --> Copy Content (~AJKiYcG...) to sacsid_cookie.txt
2. $ python gciq.py --apikey <your api key>
(Log into the GCI website and find your API key under User Profile)
FLAGS
-----
--apikey is used to input your apikey
--datadir is used to specify a different output directory
RUNNING TIPS
------------
If instance downloading is interrupted, GCI Quotient will pick up
where it left off the next time it's run. If you don't want that,
delete your datadir or specify a new datadir.
Empty activity.json files (i.e., containing just []) can happen when
your session cookie has expired or was renewed. Check your browser to
get the new value.
TODO
----
* stash instances by status
* tally instances apriori
* stash raw html
* skip client.GetTask during instances
* close streams we're done with
Majority development by:
Christopher Sean Morrison <[email protected]>
Jeff Sieu (original author)
Robert Spier (Google API)
Additional contributions by::
Scott Sunarto, Vishal Gupta, Robby O'Connor, Frederick "Freso" Olesen