-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathmodels.py
117 lines (91 loc) · 3.46 KB
/
models.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import config
from google.appengine.ext import db
# +++
class PlayerModel(db.Model):
name = db.StringProperty()
password = db.StringProperty()
rating = db.IntegerProperty(default = 0)
game_count = db.IntegerProperty(default = 0)
games_won = db.IntegerProperty(default = 0)
avatar_hash = db.StringProperty()
last_game_key_name = db.StringProperty()
credits_acquired_total = db.IntegerProperty(default = 0)
credits_consumed_total = db.IntegerProperty(default = 0)
munts_killed_total = db.IntegerProperty(default = 0)
structs_killed_total = db.IntegerProperty(default = 0)
munts_lost_total = db.IntegerProperty(default = 0)
structs_lost_total = db.IntegerProperty(default = 0)
built_counts_total = db.ListProperty(int, default = [0] * config.BUILT_COUNTS_MAX)
elapsed_seconds_total = db.IntegerProperty(default = 0)
rating_check_utc = db.IntegerProperty(default = 0)
last_game_utc = db.IntegerProperty(default = 0)
blocked = db.BooleanProperty(default = False)
hidden = db.BooleanProperty(default = False)
history = db.TextProperty(default = '[]')
sequence_number = db.IntegerProperty(default = 0)
def playermodel_key_from_key_name(key_name):
return db.Key.from_path("PlayerModel", key_name)
def playermodel_key(name):
return db.Key.from_path("PlayerModel", 'k' + name.lower())
# +++
class PlayerUpdateFailed(db.Model):
name = db.StringProperty()
password = db.StringProperty()
avatar_hash = db.StringProperty()
date = db.DateTimeProperty(auto_now_add=True)
backtrace = db.TextProperty()
# +++
class AvatarModel(db.Model):
hash = db.StringProperty()
content = db.BlobProperty()
def avatarmodel_key(hash):
return db.Key.from_path("AvatarModel", 'k' + hash.lower())
# +++
class GameStatsModel(db.Model):
date = db.DateTimeProperty(auto_now_add=True)
player_key_names = db.StringListProperty()
mission_title = db.StringProperty()
start_utc = db.IntegerProperty()
end_utc = db.IntegerProperty()
old_ratings = db.TextProperty()
dids = db.TextProperty()
json = db.TextProperty()
def gamestatsmodel_key_from_name(key_name):
return db.Key.from_path("GameStatsModel", key_name)
def gamestatsmodel_key(server_id, server_start, gameid):
key_name = 'k%02x-%08x-%08x' % (server_id, server_start, gameid)
return gamestatsmodel_key_from_name(key_name)
# +++
class GameStatsFailed(db.Model):
json = db.TextProperty()
date = db.DateTimeProperty(auto_now_add=True)
backtrace = db.TextProperty()
# +++
class ServerInfoModel(db.Model):
json = db.TextProperty()
command = db.TextProperty()
expires_utc = db.IntegerProperty()
def serverinfomodel_key(name, start_utc):
key_name = 'k%s-%u' % (name.lower(), start_utc)
return db.Key.from_path('ServerInfoModel', key_name)
# +++
class AccountModel(db.Model):
nickname = db.StringProperty()
access_rights = db.IntegerProperty()
def accountmodel_key(user_id):
return db.Key.from_path("AccountModel", 'k' + user_id.lower())
# +++
class PlayerActionModel(db.Model):
player_name = db.StringProperty()
anonymous = db.BooleanProperty()
did = db.StringProperty()
ip_address = db.StringProperty()
action = db.StringProperty()
time_utc = db.IntegerProperty()
platform = db.StringProperty()
# +++
class AdminActionModel(db.Model):
admin_user = db.StringProperty()
ip_address = db.StringProperty()
action = db.TextProperty()
time_utc = db.IntegerProperty()