Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python
- import json, sys, time, urllib
- filter_code = '!*MKIiKJWje.bjTxT'
- topbar_rollout_dates = {
- 'meta.stackoverflow': 1384466400, # 2013-11-14 22:00 UTC
- None: 1386183600, # 2013-12-04 19:00 UTC
- 'askubuntu': 1386633600, # 2013-12-10 00:00 UTC
- }
- seconds_per_week = 604800
- delay_between_sites = 1
- def retrieve(site, from_date, to_date):
- page = 1
- url = 'http://api.stackexchange.com/2.1/suggested-edits?page=%d&pagesize=100&fromdate=%d&todate=%d&order=desc&sort=creation&site=%s&filter=%s' % (page, from_date, to_date, site, filter_code)
- f = urllib.urlopen(url)
- data = json.load(f)
- f.close()
- return data['items']
- def average_delay(se_list):
- total = 0
- count = 0
- for se in se_list:
- creation_date = se['creation_date']
- if se.has_key('approval_date'):
- total += se['approval_date'] - creation_date
- count += 1
- elif se.has_key('rejection_date'):
- total += se['rejection_date'] - creation_date
- count += 1
- if count == 0: return (0, float('nan'))
- return (count, total / 60.0 / count)
- if __name__ == '__main__':
- print 'site before^2 before after'
- print ' avg(mn) cnt avg(mn) cnt avg(mn) cnt'
- for site in sys.argv[1:]:
- topbar_rollout_date = \
- topbar_rollout_dates[site if topbar_rollout_dates.has_key(site) else None]
- after_list = retrieve(site, topbar_rollout_date, topbar_rollout_date + seconds_per_week)
- (after_count, after_delay) = average_delay(after_list)
- before_list = retrieve(site, topbar_rollout_date - seconds_per_week, topbar_rollout_date)
- (before_count, before_delay) = average_delay(before_list)
- before2_list = retrieve(site, topbar_rollout_date - 2 * seconds_per_week, topbar_rollout_date - seconds_per_week)
- (before2_count, before2_delay) = average_delay(before2_list)
- print '%20s %6.0f %4d %6.0f %4d %6.0f %4d %4d%%' % (
- site,
- before2_delay, before2_count,
- before_delay, before_count,
- after_delay, after_count,
- int(200.0 * after_delay / (before2_delay + before_delay)))
- time.sleep(delay_between_sites)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement