def getSourceTVLiveGameForPlayer(targetdotaid, heroid=None): pages = node.get_source_tv_games(heroid=heroid, pages=10) for page in pages: for game in page['game_list']: for player in game['players']: if long(player['account_id']) == long(targetdotaid): return game
def getSourceTVLiveGameForPlayer(targetdotaid, heroid=None): totalgames = node.get_source_tv_games(heroid=heroid)['numTotalGames'] for pagenum in range(0, int(round(float(totalgames)/6))): games = node.get_source_tv_games(pagenum, heroid)['games'] for game in games: try: game['goodPlayers'] game['badPlayers'] except Exception, e: print "MALFORMED GAME DATA, DO SOMETHING ABOUT IT (Radiant: %s, Dire: %s)" % (len(game.get('goodPlayers', [])), len(game.get('badPlayers', []))) continue players = [] players.extend(game['goodPlayers']) players.extend(game['badPlayers']) notable_players_found = [] target_found = False for player in players: if steamToDota(player['steamId']) == long(targetdotaid): return game
def searchForNotablePlayers(targetdotaid, pages=4, heroid=None): # Needs check for if in a game (maybe need a status indicator for richPresence) t0 = time.time() herodata = getHeroes() notable_players = settings.getdata('dota_notable_players') if heroid: if pages > 17: pages = 17 print '[Dota-Notable] Searching using heroid %s' % heroid for pagenum in range(0, pages): # print 'searching page %s, T+%4.4fms' % (pagenum, (time.time()-t0)*1000) games = node.get_source_tv_games(pagenum, heroid)['games'] # print 'received game page %s, T+%4.4fms' % (pagenum, (time.time()-t0)*1000) for game in games: try: game['goodPlayers'] game['badPlayers'] except Exception, e: print "MALFORMED GAME DATA, DO SOMETHING ABOUT IT (Radiant: %s, Dire: %s)" % (len(game.get('goodPlayers', [])), len(game.get('badPlayers', []))) continue players = [] players.extend(game['goodPlayers']) players.extend(game['badPlayers']) notable_players_found = [] target_found = False for player in players: if steamToDota(player['steamId']) in notable_players: print '[Dota-Notable] %s (%s)' % (player['name'], notable_players[steamToDota(player['steamId'])]) try: playerhero = str([h['localized_name'] for h in herodata['result']['heroes'] if str(h['id']) == str(player['heroId'])][0]) except: playerhero = POSITION_COLORS[players.index(player)] if long(steamToDota(player['steamId'])) != long(targetdotaid): notable_players_found.append((notable_players[steamToDota(player['steamId'])], playerhero)) # else: # print '[Dota-Notable] Discounting target player' if steamToDota(player['steamId']) == long(targetdotaid): print '[Dota-Notable] found target player' target_found = True #TODO: ADD THE OTHER DATA IN HERE SOMEWHERE if target_found: if notable_players_found: print '[Dota-Notable] Found: %s' % notable_players_found else: print '[Dota-Notable] No notable players.' return notable_players_found # print 'searched game %s, T+%4.4fms' % (games.index(game), (time.time()-t0)*1000) print '[Dota-Notable] searched page %s, T+%4.4fms' % (pagenum, (time.time()-t0)*1000)