Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)