4 from datetime import datetime
5 import sqlalchemy as sa
6 import sqlalchemy.sql.functions as func
7 from pyramid.paster import bootstrap
8 from xonstat.models import *
10 from render import Skin
13 # maximal number of query results (for testing, set to 0 to get all)
20 bg="background_archer-v1",
25 # parse cmdline parameters (for testing)
28 arg = sys.argv[1].lower()
36 env = bootstrap('../../../development.ini')
38 req.matchdict = {'id':3}
40 print "Requesting player data from db ..."
41 start = datetime.now()
43 if locals().has_key('NUM_PLAYERS'):
44 players = DBSession.query(Player).\
45 filter(Player.player_id == PlayerElo.player_id).\
46 filter(Player.nick != None).\
47 filter(Player.player_id > 2).\
48 filter(Player.active_ind == True).\
49 limit(NUM_PLAYERS).all()
51 players = DBSession.query(Player).\
52 filter(Player.player_id == PlayerElo.player_id).\
53 filter(Player.nick != None).\
54 filter(Player.player_id > 2).\
55 filter(Player.active_ind == True).\
60 total_seconds = (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
61 print "Query took %.2f seconds" % (total_seconds)
63 print "Creating badges for %d players ..." % len(players)
64 start = datetime.now()
65 data_time, render_time = 0,0
66 for player in players:
67 req.matchdict['id'] = player.player_id
69 sstart = datetime.now()
71 sstop = datetime.now()
73 total_seconds = (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
74 data_time += total_seconds
76 sstart = datetime.now()
77 skin.render_image("output/%d.png" % player.player_id)
78 sstop = datetime.now()
80 total_seconds = (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
81 render_time += total_seconds
85 total_seconds = (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
86 print "Creating the badges took %.1f seconds (%.3f s per player)" % (total_seconds, total_seconds/float(len(players)))
87 print "Total time for redering images: %.3f s" % render_time
88 print "Total time for getting data: %.3f s" % data_time