return (idfp, status)\r
\r
\r
-def num_real_players(player_events):\r
+def num_real_players(player_events, count_bots=False):\r
"""\r
Returns the number of real players (those who played \r
and are on the scoreboard).\r
real_players = 0\r
\r
for events in player_events:\r
- if is_real_player(events):\r
+ if is_real_player(events, count_bots):\r
real_players += 1\r
\r
return real_players\r
return flg_has_req_metadata\r
\r
\r
-def is_real_player(events):\r
+def is_real_player(events, count_bots=False):\r
"""\r
Determines if a given set of player events correspond with a player who\r
\r
"""\r
flg_is_real = False\r
\r
- if not events['P'].startswith('bot'):\r
- # removing 'joins' here due to bug, but it should be here\r
- if 'matches' in events and 'scoreboardvalid' in events:\r
+ # removing 'joins' here due to bug, but it should be here\r
+ if 'matches' in events and 'scoreboardvalid' in events:\r
+ if (events['P'].startswith('bot') and count_bots) or \\r
+ not events['P'].startswith('bot'):\r
flg_is_real = True\r
\r
return flg_is_real\r
# FIXME: if we have two players and game type is 'dm',\r
# change this into a 'duel' gametype. This should be\r
# removed when the stats actually send 'duel' instead of 'dm'\r
- if num_real_players(players) == 2 and game_meta['G'] == 'dm':\r
+ if num_real_players(players, count_bots=True) == 2 and \\r
+ game_meta['G'] == 'dm':\r
game_meta['G'] = 'duel'\r
\r
server = get_or_create_server(session=session, hashkey=idfp, \r