annotate tools/tz.py @ 348:d1b11096595b

Fix #168; when nailing a spammer, clear their profile text fields. Guard against topics and forums that don't exist when deleting posts in the signal handler. Make the forum stats template tag only display the latest active users.
author Brian Neal <bgneal@gmail.com>
date Wed, 02 Mar 2011 02:18:28 +0000
parents ed6202fb08b6
children
rev   line source
bgneal@245 1 """
bgneal@245 2 This program generates the data used by the timezone.js Javascript.
bgneal@245 3 This data is used to create the 2 dropdown select boxes for timezones.
bgneal@245 4 """
bgneal@245 5 import pytz
bgneal@245 6 from pprint import pprint
bgneal@245 7
bgneal@245 8 def format_locations(locs):
bgneal@245 9 ss = ["[%s]" % ", ".join(["'%s'" % l for l in loc]) for loc in locs]
bgneal@245 10 return "%s" % ",\n".join(ss)
bgneal@245 11
bgneal@245 12 # get a list of areas
bgneal@245 13
bgneal@245 14 zones = [z.split('/') for z in pytz.common_timezones]
bgneal@245 15 areas = set([zone[0] for zone in zones if len(zone) > 1])
bgneal@245 16 areas = list(areas)
bgneal@245 17 areas.sort()
bgneal@245 18
bgneal@245 19 locations = dict([(area, []) for area in areas])
bgneal@245 20
bgneal@245 21 #pprint(locations)
bgneal@245 22
bgneal@245 23 for zone in pytz.common_timezones:
bgneal@245 24 if zone.count('/') == 0:
bgneal@245 25 continue
bgneal@245 26 area, loc = zone.split('/', 1)
bgneal@245 27 if area in locations:
bgneal@245 28 locations[area].append(loc.replace('_', ' '))
bgneal@245 29
bgneal@245 30 #pprint(locations)
bgneal@245 31
bgneal@245 32 for area in locations.iterkeys():
bgneal@245 33 locations[area].sort()
bgneal@245 34
bgneal@245 35 locs = []
bgneal@245 36 for area in areas:
bgneal@245 37 locs.append(locations[area])
bgneal@245 38
bgneal@245 39 #pprint(locs)
bgneal@245 40
bgneal@245 41 default_area = areas.index('US')
bgneal@245 42 default_location = locs[default_area].index('Pacific')
bgneal@245 43
bgneal@245 44 print """\
bgneal@245 45 var gcalTzInfo = {
bgneal@245 46 areas: [%s],
bgneal@245 47 locations: [%s],
bgneal@245 48 default_area: %s,
bgneal@245 49 default_location: %s
bgneal@245 50 };
bgneal@245 51 """ % (", ".join(["'%s'" % area for area in areas]),
bgneal@245 52 format_locations(locs),
bgneal@245 53 default_area,
bgneal@245 54 default_location,
bgneal@245 55 )