@@ -60,23 +60,313 @@ class TotalSiteStats(TypedDict):
6060 COMMENT_COUNT : int
6161 PROJECT_COMMENT_COUNT : int
6262
63+
6364def total_site_stats () -> TotalSiteStats :
6465 data = requests .get ("https://scratch.mit.edu/statistics/data/daily/" ).json ()
6566 data .pop ("_TS" )
6667 return data
6768
69+
6870class MonthlySiteTraffic (TypedDict ):
6971 pageviews : str
7072 users : str
7173 sessions : str
7274
75+
7376def monthly_site_traffic () -> MonthlySiteTraffic :
7477 data = requests .get ("https://scratch.mit.edu/statistics/data/monthly-ga/" ).json ()
7578 data .pop ("_TS" )
7679 return data
7780
7881
79- def country_counts ():
82+ type CountryCounts = TypedDict ("CountryCounts" , {
83+ '0' : int , # not sure what 0 is. maybe it's the 'other' category
84+ 'AT' : int ,
85+ 'Afghanistan' : int ,
86+ 'Aland Islands' : int ,
87+ 'Albania' : int ,
88+ 'Algeria' : int ,
89+ 'American Samoa' : int ,
90+ 'Andorra' : int ,
91+ 'Angola' : int ,
92+ 'Anguilla' : int ,
93+ 'Antigua and Barbuda' : int ,
94+ 'Argentina' : int ,
95+ 'Armenia' : int ,
96+ 'Aruba' : int ,
97+ 'Australia' : int ,
98+ 'Austria' : int ,
99+ 'Azerbaijan' : int ,
100+ 'Bahamas' : int ,
101+ 'Bahrain' : int ,
102+ 'Bangladesh' : int ,
103+ 'Barbados' : int ,
104+ 'Belarus' : int ,
105+ 'Belgium' : int ,
106+ 'Belize' : int ,
107+ 'Benin' : int ,
108+ 'Bermuda' : int ,
109+ 'Bhutan' : int ,
110+ 'Bolivia' : int ,
111+ 'Bonaire, Sint Eustatius and Saba' : int ,
112+ 'Bosnia and Herzegovina' : int ,
113+ 'Botswana' : int ,
114+ 'Bouvet Island' : int ,
115+ 'Brazil' : int ,
116+ 'British Indian Ocean Territory' : int ,
117+ 'Brunei' : int ,
118+ 'Brunei Darussalam' : int ,
119+ 'Bulgaria' : int ,
120+ 'Burkina Faso' : int ,
121+ 'Burundi' : int ,
122+ 'CA' : int ,
123+ 'Cambodia' : int ,
124+ 'Cameroon' : int ,
125+ 'Canada' : int ,
126+ 'Cape Verde' : int ,
127+ 'Cayman Islands' : int ,
128+ 'Central African Republic' : int ,
129+ 'Chad' : int ,
130+ 'Chile' : int ,
131+ 'China' : int ,
132+ 'Christmas Island' : int ,
133+ 'Cocos (Keeling) Islands' : int ,
134+ 'Colombia' : int ,
135+ 'Comoros' : int ,
136+ 'Congo' : int ,
137+ 'Congo, Dem. Rep. of The' : int ,
138+ 'Congo, The Democratic Republic of The' : int ,
139+ 'Cook Islands' : int ,
140+ 'Costa Rica' : int ,
141+ "Cote D'ivoire" : int ,
142+ 'Croatia' : int ,
143+ 'Cuba' : int ,
144+ 'Curacao' : int ,
145+ 'Cyprus' : int ,
146+ 'Czech Republic' : int ,
147+ 'Denmark' : int ,
148+ 'Djibouti' : int ,
149+ 'Dominica' : int ,
150+ 'Dominican Republic' : int ,
151+ 'Ecuador' : int ,
152+ 'Egypt' : int ,
153+ 'El Salvador' : int ,
154+ 'England' : int ,
155+ 'Equatorial Guinea' : int ,
156+ 'Eritrea' : int ,
157+ 'Estonia' : int ,
158+ 'Ethiopia' : int ,
159+ 'Falkland Islands (Malvinas)' : int ,
160+ 'Faroe Islands' : int ,
161+ 'Fiji' : int ,
162+ 'Finland' : int ,
163+ 'France' : int ,
164+ 'French Guiana' : int ,
165+ 'French Polynesia' : int ,
166+ 'French Southern Territories' : int ,
167+ 'GB' : int ,
168+ 'GG' : int ,
169+ 'Gabon' : int ,
170+ 'Gambia' : int ,
171+ 'Georgia' : int ,
172+ 'Germany' : int ,
173+ 'Ghana' : int ,
174+ 'Gibraltar' : int ,
175+ 'Greece' : int ,
176+ 'Greenland' : int ,
177+ 'Grenada' : int ,
178+ 'Guadeloupe' : int ,
179+ 'Guam' : int ,
180+ 'Guatemala' : int ,
181+ 'Guernsey' : int ,
182+ 'Guinea' : int ,
183+ 'Guinea-Bissau' : int ,
184+ 'Guyana' : int ,
185+ 'Haiti' : int ,
186+ 'Heard Island and Mcdonald Islands' : int ,
187+ 'Holy See (Vatican City State)' : int ,
188+ 'Honduras' : int ,
189+ 'Hong Kong' : int ,
190+ 'Hungary' : int ,
191+ 'IT' : int ,
192+ 'Iceland' : int ,
193+ 'India' : int ,
194+ 'Indonesia' : int ,
195+ 'Iran' : int ,
196+ 'Iran, Islamic Republic of' : int ,
197+ 'Iraq' : int ,
198+ 'Ireland' : int ,
199+ 'Isle of Man' : int ,
200+ 'Israel' : int ,
201+ 'Italy' : int ,
202+ 'Jamaica' : int ,
203+ 'Japan' : int ,
204+ 'Jersey' : int ,
205+ 'Jordan' : int ,
206+ 'Kazakhstan' : int ,
207+ 'Kenya' : int ,
208+ 'Kiribati' : int ,
209+ "Korea, Dem. People's Rep." : int ,
210+ "Korea, Democratic People's Republic of" : int ,
211+ 'Korea, Republic of' : int ,
212+ 'Kosovo' : int ,
213+ 'Kuwait' : int ,
214+ 'Kyrgyzstan' : int ,
215+ 'Laos' : int ,
216+ 'Latvia' : int ,
217+ 'Lebanon' : int ,
218+ 'Lesotho' : int ,
219+ 'Liberia' : int ,
220+ 'Libya' : int ,
221+ 'Libyan Arab Jamahiriya' : int ,
222+ 'Liechtenstein' : int ,
223+ 'Lithuania' : int ,
224+ 'Location not given' : int ,
225+ 'Luxembourg' : int ,
226+ 'Macao' : int ,
227+ 'Macedonia' : int ,
228+ 'Macedonia, The Former Yugoslav Republic of' : int ,
229+ 'Madagascar' : int ,
230+ 'Malawi' : int ,
231+ 'Malaysia' : int ,
232+ 'Maldives' : int ,
233+ 'Mali' : int ,
234+ 'Malta' : int ,
235+ 'Marshall Islands' : int ,
236+ 'Martinique' : int ,
237+ 'Mauritania' : int ,
238+ 'Mauritius' : int ,
239+ 'Mayotte' : int ,
240+ 'Mexico' : int ,
241+ 'Micronesia, Federated States of' : int ,
242+ 'Moldova' : int ,
243+ 'Moldova, Republic of' : int ,
244+ 'Monaco' : int ,
245+ 'Mongolia' : int ,
246+ 'Montenegro' : int ,
247+ 'Montserrat' : int ,
248+ 'Morocco' : int ,
249+ 'Mozambique' : int ,
250+ 'Myanmar' : int ,
251+ 'NO' : int ,
252+ 'Namibia' : int ,
253+ 'Nauru' : int ,
254+ 'Nepal' : int ,
255+ 'Netherlands' : int ,
256+ 'Netherlands Antilles' : int ,
257+ 'New Caledonia' : int ,
258+ 'New Zealand' : int ,
259+ 'Nicaragua' : int ,
260+ 'Niger' : int ,
261+ 'Nigeria' : int ,
262+ 'Niue' : int ,
263+ 'Norfolk Island' : int ,
264+ 'North Korea' : int ,
265+ 'Northern Mariana Islands' : int ,
266+ 'Norway' : int ,
267+ 'Oman' : int ,
268+ 'Pakistan' : int ,
269+ 'Palau' : int ,
270+ 'Palestine' : int ,
271+ 'Palestine, State of' : int ,
272+ 'Palestinian Territory, Occupied' : int ,
273+ 'Panama' : int ,
274+ 'Papua New Guinea' : int ,
275+ 'Paraguay' : int ,
276+ 'Peru' : int ,
277+ 'Philippines' : int ,
278+ 'Pitcairn' : int ,
279+ 'Poland' : int ,
280+ 'Portugal' : int ,
281+ 'Puerto Rico' : int ,
282+ 'Qatar' : int ,
283+ 'Reunion' : int ,
284+ 'Romania' : int ,
285+ 'Russia' : int ,
286+ 'Russian Federation' : int ,
287+ 'Rwanda' : int ,
288+ 'ST' : int ,
289+ 'Saint Barthelemy' : int ,
290+ 'Saint Helena' : int ,
291+ 'Saint Kitts and Nevis' : int ,
292+ 'Saint Lucia' : int ,
293+ 'Saint Martin' : int ,
294+ 'Saint Pierre and Miquelon' : int ,
295+ 'Saint Vincent and The Grenadines' : int ,
296+ 'Samoa' : int ,
297+ 'San Marino' : int ,
298+ 'Sao Tome and Principe' : int ,
299+ 'Saudi Arabia' : int ,
300+ 'Senegal' : int ,
301+ 'Serbia' : int ,
302+ 'Serbia and Montenegro' : int ,
303+ 'Seychelles' : int ,
304+ 'Sierra Leone' : int ,
305+ 'Singapore' : int ,
306+ 'Sint Maarten' : int ,
307+ 'Slovakia' : int ,
308+ 'Slovenia' : int ,
309+ 'Solomon Islands' : int ,
310+ 'Somalia' : int ,
311+ 'Somewhere' : int ,
312+ 'South Africa' : int ,
313+ 'South Georgia and the South Sandwich Islands' : int ,
314+ 'South Korea' : int ,
315+ 'South Sudan' : int ,
316+ 'Spain' : int ,
317+ 'Sri Lanka' : int ,
318+ 'St. Vincent' : int ,
319+ 'Sudan' : int ,
320+ 'Suriname' : int ,
321+ 'Svalbard and Jan Mayen' : int ,
322+ 'Swaziland' : int ,
323+ 'Sweden' : int ,
324+ 'Switzerland' : int ,
325+ 'Syria' : int ,
326+ 'Syrian Arab Republic' : int ,
327+ 'TV' : int ,
328+ 'Taiwan' : int ,
329+ 'Taiwan, Province of China' : int ,
330+ 'Tajikistan' : int ,
331+ 'Tanzania' : int ,
332+ 'Tanzania, United Republic of' : int ,
333+ 'Thailand' : int ,
334+ 'Timor-leste' : int ,
335+ 'Togo' : int ,
336+ 'Tokelau' : int ,
337+ 'Tonga' : int ,
338+ 'Trinidad and Tobago' : int ,
339+ 'Tunisia' : int ,
340+ 'Turkey' : int ,
341+ 'Turkmenistan' : int ,
342+ 'Turks and Caicos Islands' : int ,
343+ 'Tuvalu' : int ,
344+ 'US' : int ,
345+ 'US Minor' : int ,
346+ 'Uganda' : int ,
347+ 'Ukraine' : int ,
348+ 'United Arab Emirates' : int ,
349+ 'United Kingdom' : int ,
350+ 'United States' : int ,
351+ 'United States Minor Outlying Islands' : int ,
352+ 'Uruguay' : int ,
353+ 'Uzbekistan' : int ,
354+ 'Vanuatu' : int ,
355+ 'Vatican City' : int ,
356+ 'Venezuela' : int ,
357+ 'Viet Nam' : int ,
358+ 'Vietnam' : int ,
359+ 'Virgin Islands, British' : int ,
360+ 'Virgin Islands, U.S.' : int ,
361+ 'Wallis and Futuna' : int ,
362+ 'Western Sahara' : int ,
363+ 'Yemen' : int ,
364+ 'Zambia' : int ,
365+ 'Zimbabwe' : int
366+ })
367+
368+
369+ def country_counts () -> CountryCounts :
80370 return requests .get ("https://scratch.mit.edu/statistics/data/monthly/" ).json ()["country_distribution" ]
81371
82372
0 commit comments