Esempio n. 1
0
def create_match_obj(match_id):
    match_url = 'https://na.api.pvp.net/api/lol/na/v2.2/match/%s?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % match_id
    match_request = requester(match_url,'get')
    try:
        match, created  = Match.objects.get_or_create(match_id = match_request['matchId'])
    except:
        print 'MATCH FAILED TO CREATE, SKIPPING'
Esempio n. 2
0
def request_champion_details(riot_id):
    champion = Hero.objects.get(riot_id=riot_id)
    champion_detail_url = 'https://global.api.pvp.net/api/lol/static-data/na/v1.2/champion/%s?champData=image,info,partype,stats,tags&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % riot_id
    champion_detail_request = requester(champion_detail_url, 'get')
    champion.image_name = str(champion_detail_request['image']['full'])
    champion.attackrange = champion_detail_request['stats']['attackrange']
    champion.mpperlevel = champion_detail_request['stats']['mpperlevel']
    champion.mp = champion_detail_request['stats']['mp']
    champion.attackdamage = champion_detail_request['stats']['attackdamage']
    champion.hp = champion_detail_request['stats']['hp']
    champion.hpperlevel = champion_detail_request['stats']['hpperlevel']
    champion.attackdamageperlevel = champion_detail_request['stats'][
        'attackdamageperlevel']
    champion.armor = champion_detail_request['stats']['armor']
    champion.mpregenperlevel = champion_detail_request['stats'][
        'mpregenperlevel']
    champion.hpregen = champion_detail_request['stats']['hpregen']
    champion.critperlevel = champion_detail_request['stats']['critperlevel']
    champion.spellblockperlevel = champion_detail_request['stats'][
        'spellblockperlevel']
    champion.mpregen = champion_detail_request['stats']['mpregen']
    champion.attackspeedperlevel = champion_detail_request['stats'][
        'attackspeedperlevel']
    champion.spellblock = champion_detail_request['stats']['spellblock']
    champion.movespeed = champion_detail_request['stats']['movespeed']
    champion.attackspeedoffset = champion_detail_request['stats'][
        'attackspeedoffset']
    champion.crit = champion_detail_request['stats']['crit']
    champion.hpregenperlevel = champion_detail_request['stats'][
        'hpregenperlevel']
    champion.armorperlevel = champion_detail_request['stats']['armorperlevel']
    champion.save()
Esempio n. 3
0
def request_champion_details(riot_id):
    champion = Hero.objects.get(riot_id = riot_id)
    champion_detail_url = 'https://global.api.pvp.net/api/lol/static-data/na/v1.2/champion/%s?champData=image,info,partype,stats,tags&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % riot_id
    champion_detail_request = requester(champion_detail_url,'get')
    champion.image_name = str(champion_detail_request['image']['full'])
    champion.attackrange = champion_detail_request['stats']['attackrange']
    champion.mpperlevel = champion_detail_request['stats']['mpperlevel']
    champion.mp = champion_detail_request['stats']['mp']
    champion.attackdamage = champion_detail_request['stats']['attackdamage']
    champion.hp = champion_detail_request['stats']['hp']
    champion.hpperlevel = champion_detail_request['stats']['hpperlevel']
    champion.attackdamageperlevel = champion_detail_request['stats']['attackdamageperlevel']
    champion.armor = champion_detail_request['stats']['armor']
    champion.mpregenperlevel = champion_detail_request['stats']['mpregenperlevel']
    champion.hpregen = champion_detail_request['stats']['hpregen']
    champion.critperlevel = champion_detail_request['stats']['critperlevel']
    champion.spellblockperlevel = champion_detail_request['stats']['spellblockperlevel']
    champion.mpregen = champion_detail_request['stats']['mpregen']
    champion.attackspeedperlevel = champion_detail_request['stats']['attackspeedperlevel']
    champion.spellblock = champion_detail_request['stats']['spellblock']
    champion.movespeed = champion_detail_request['stats']['movespeed']
    champion.attackspeedoffset = champion_detail_request['stats']['attackspeedoffset']
    champion.crit = champion_detail_request['stats']['crit']
    champion.hpregenperlevel = champion_detail_request['stats']['hpregenperlevel']
    champion.armorperlevel = champion_detail_request['stats']['armorperlevel']
    champion.save()
Esempio n. 4
0
def assign_all_tags():
    all_item_request = requester('https://global.api.pvp.net/api/lol/static-data/na/v1.2/item?itemListData=all&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d','get')
    item_data = all_item_request['data']
    error_list = []
    unassigned_enchantment = [] 

    for item in item_data:
        item_obj = Item.objects.get(riot_id = item_data[item]['id'])
        print '--- {} ---'.format(item_data[item]['name'])


        if item_data[item]['name'].startswith('Enchantment'):
            for stats in item_data[item]['stats']:
                if stats == 'PercentAttackSpeedMod':
                    assign_tag(item_obj, 'AttackSpeed')
                elif stats == 'FlatHPPoolMod':
                    assign_tag(item_obj, 'Health')
                elif stats == 'FlatMagicDamageMod':
                    assign_tag(item_obj, 'SpellDamage')
                elif stats == 'PercentMovementSpeedMod':
                    assign_tag(item_obj, 'NonbootsMovement')
                elif stats == 'FlatPhysicalDamageMod':
                    assign_tag(item_obj, 'Damage')
                else:
                    unassigned_enchantment.append((item_data[item]['name'], item_data[item]['stats'] ))
            continue
        
        try:
            item_data[item]['consumed']
            assign_tag(item_obj, 'Consumable')
            continue
        except:
            pass

        try:
            for tag in item_data[item]['tags']:
                assign_tag(item_obj, tag)
            continue
        except:
            pass

        # if item_data[item]['inStore'] == False:
        #     print 'ITEM NOT IN STORE'
        #     continue

        try:
            item_data[item]['requiredChampion'] = 'Viktor'

            for tag in ['Mana', 'SpellDamage']:
                assign_tag(item_obj, tag)
            continue
        except:
            pass
        error_list.append(item_data[item])
    for item in error_list:
        pprint.pprint(item)
    pprint.pprint(unassigned_enchantment)

    print "Amount of Errors: ", len(error_list)
Esempio n. 5
0
def get_match_list(summoner_id):
    match_list_url = 'https://na.api.pvp.net/api/lol/na/v2.2/matchlist/by-summoner/%s?seasons=%s&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % (summoner_id, CURRENT_SEASON)
    try:
        match_request = requester(match_list_url,'get')
        return match_request['matches']
    except:
        print "Match List Request Failed"
        return []
Esempio n. 6
0
def create_match_obj(match_id):
    match_url = 'https://na.api.pvp.net/api/lol/na/v2.2/match/%s?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % match_id
    match_request = requester(match_url, 'get')
    try:
        match, created = Match.objects.get_or_create(
            match_id=match_request['matchId'])
    except:
        print 'MATCH FAILED TO CREATE, SKIPPING'
Esempio n. 7
0
def get_match_list(summoner_id):
    match_list_url = 'https://na.api.pvp.net/api/lol/na/v2.2/matchlist/by-summoner/%s?seasons=%s&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % (
        summoner_id, CURRENT_SEASON)
    try:
        match_request = requester(match_list_url, 'get')
        return match_request['matches']
    except:
        print "Match List Request Failed"
        return []
Esempio n. 8
0
def get_static_rune_data():
    rune_url = 'https://global.api.pvp.net/api/lol/static-data/na/v1.2/rune?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d'

    rune_data = requester(rune_url, 'get')['data']

    for rune in rune_data:
        Rune.objects.get_or_create(runeId=rune_data[rune]['id'],
                                   name=rune_data[rune]['name'],
                                   description=rune_data[rune]['description'])
Esempio n. 9
0
def get_static_mastery_data():
    mastery_url = 'https://global.api.pvp.net/api/lol/static-data/na/v1.2/mastery?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d'

    mastery_data = requester(mastery_url, 'get')['data']

    for mastery in mastery_data:
        Mastery.objects.get_or_create(
            masteryId = mastery_data[mastery]['id'],
            name = mastery_data[mastery]['name'],
            description = mastery_data[mastery]['description']
            )
Esempio n. 10
0
def request_all_champion_info():
    all_champion_url = '/api/lol/static-data/na/v1.2/champion?api_key= %s'% settings.RIOT_API_KEY
    all_champions_request = requester('https://global.api.pvp.net/api/lol/static-data/na/v1.2/champion?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d','get')
    hero_data = all_champions_request['data']
    champion_data_list = []
   
    for item in hero_data:
        champion_data_list.append(hero_data[item])
        hero, created = Hero.objects.get_or_create(name = hero_data[item]['name'], riot_id = hero_data[item]['id'])
        if created == True:
            hero.save()
Esempio n. 11
0
def get_static_rune_data():
    rune_url = 'https://global.api.pvp.net/api/lol/static-data/na/v1.2/rune?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d'

    rune_data = requester(rune_url, 'get')['data']


    for rune in rune_data:
        Rune.objects.get_or_create(
            runeId = rune_data[rune]['id'],
            name = rune_data[rune]['name'],
            description = rune_data[rune]['description']
            )
Esempio n. 12
0
def request_all_champion_info():
    all_champion_url = '/api/lol/static-data/na/v1.2/champion?api_key= %s' % settings.RIOT_API_KEY
    all_champions_request = requester(
        'https://global.api.pvp.net/api/lol/static-data/na/v1.2/champion?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d',
        'get')
    hero_data = all_champions_request['data']
    champion_data_list = []

    for item in hero_data:
        champion_data_list.append(hero_data[item])
        hero, created = Hero.objects.get_or_create(
            name=hero_data[item]['name'], riot_id=hero_data[item]['id'])
        if created == True:
            hero.save()
Esempio n. 13
0
    def get_match_data(match_obj):
        match_id = match_obj.match_id        

        match_data_url = 'https://na.api.pvp.net/api/lol/na/v2.2/match/%s?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % match_id

        match_data = requester(match_data_url, 'get')          
        
        try:
            status_code = match_data['status']['status_code']
            status_message = match_data['status']['message']
            print 'REQUEST ERROR: %s -- %s' %(status_code, status_message)
            return False, True
        except:
            pass

        try:
            if not str(match_data['matchVersion']).startswith(str(VERSION_TREE[0])) or not str(match_data['matchVersion']).startswith(str(VERSION_TREE[1])) or not str(match_data['matchVersion']).startswith(str(VERSION_TREE[2])):
                print 'Current Version = %s :: Match Version = %s'% (current_version, match_data['matchVersion'] )
                print 'Not Current Version, Skipping'
                match_obj.delete()
                return False, False
            elif match_data['queueType'] in ['RANKED_SOLO_5x5',  'RANKED_PREMADE_5x5', 'RANKED_TEAM_5x5', 'TEAM_BUILDER_DRAFT_RANKED_5x5']:
                print 'MATCH NOT RANKED'
                match_obj.delete()
                return False, False
        except:
            pass

        blue_queue = Queue.Queue()
        red_queue = Queue.Queue() 

        for i in xrange(1,6):
            blue_dict = {'champion': 'blue_champion_{}'.format(i), 'items': getattr(match_obj,'blue_items_{}'.format(i))}
            red_dict = {'champion': 'red_champion_{}'.format(i), 'items': getattr(match_obj,'red_items_{}'.format(i))}
            blue_queue.put(blue_dict)
            red_queue.put(red_dict)     
        for player in match_data['participants']:
            if player['teamId'] == 100:  # 100 is Blue team, 200 is Red Team
                match_player = blue_queue.get()
            else:
                match_player = red_queue.get()

            if player['highestAchievedSeasonTier'] in ['DIAMOND']:
                participant_id = player['participantId']

                for identity in match_data['participantIdentities']:
                    if identity['participantId'] == participant_id:
                        match_list = get_match_list(identity['player']['summonerId'])
                        for match in match_list:
                            print 'Match Added to Queue'
                            match_request_queue.put(match['matchId'])
                
            setattr(match_obj, match_player['champion'], Hero.objects.get(riot_id = player['championId']))
            for stat in player['stats']:
                if 'item' in stat and player['stats'][stat] != 0:
                    try:
                        item = Item.objects.get(riot_id = player['stats'][stat])
                        match_player['items'].add(item)
                    except:
                        print player['stats'][stat], ' No Longer exists in LoL'

        for team in match_data['teams']:
            if team['winner']:
                match_obj.winning_team = team['teamId']

        match_obj.save()


        return True, True
Esempio n. 14
0
    def get_match_data(match_obj):
        match_id = match_obj.match_id

        match_data_url = 'https://na.api.pvp.net/api/lol/na/v2.2/match/%s?api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d' % match_id

        match_data = requester(match_data_url, 'get')

        try:
            status_code = match_data['status']['status_code']
            status_message = match_data['status']['message']
            print 'REQUEST ERROR: %s -- %s' % (status_code, status_message)
            return False, True
        except:
            pass

        try:
            if not str(match_data['matchVersion']).startswith(
                    str(VERSION_TREE[0])) or not str(
                        match_data['matchVersion']).startswith(
                            str(VERSION_TREE[1])) or not str(
                                match_data['matchVersion']).startswith(
                                    str(VERSION_TREE[2])):
                print 'Current Version = %s :: Match Version = %s' % (
                    current_version, match_data['matchVersion'])
                print 'Not Current Version, Skipping'
                match_obj.delete()
                return False, False
            elif match_data['queueType'] in [
                    'RANKED_SOLO_5x5', 'RANKED_PREMADE_5x5', 'RANKED_TEAM_5x5',
                    'TEAM_BUILDER_DRAFT_RANKED_5x5'
            ]:
                print 'MATCH NOT RANKED'
                match_obj.delete()
                return False, False
        except:
            pass

        blue_queue = Queue.Queue()
        red_queue = Queue.Queue()

        for i in xrange(1, 6):
            blue_dict = {
                'champion': 'blue_champion_{}'.format(i),
                'items': getattr(match_obj, 'blue_items_{}'.format(i))
            }
            red_dict = {
                'champion': 'red_champion_{}'.format(i),
                'items': getattr(match_obj, 'red_items_{}'.format(i))
            }
            blue_queue.put(blue_dict)
            red_queue.put(red_dict)
        for player in match_data['participants']:
            if player['teamId'] == 100:  # 100 is Blue team, 200 is Red Team
                match_player = blue_queue.get()
            else:
                match_player = red_queue.get()

            if player['highestAchievedSeasonTier'] in ['DIAMOND']:
                participant_id = player['participantId']

                for identity in match_data['participantIdentities']:
                    if identity['participantId'] == participant_id:
                        match_list = get_match_list(
                            identity['player']['summonerId'])
                        for match in match_list:
                            print 'Match Added to Queue'
                            match_request_queue.put(match['matchId'])

            setattr(match_obj, match_player['champion'],
                    Hero.objects.get(riot_id=player['championId']))
            for stat in player['stats']:
                if 'item' in stat and player['stats'][stat] != 0:
                    try:
                        item = Item.objects.get(riot_id=player['stats'][stat])
                        match_player['items'].add(item)
                    except:
                        print player['stats'][stat], ' No Longer exists in LoL'

        for team in match_data['teams']:
            if team['winner']:
                match_obj.winning_team = team['teamId']

        match_obj.save()

        return True, True
Esempio n. 15
0
def request_all_item_info():

    def _get_item_stats_from_json(item, stat_str):
        try:
            return item_data[item]['stats'][stat_str]
        except:
            return None


    # def assign_fields(stat_key):
    #     full_stat = 'item.Item.'+str(stat_key)
    #     print 'Stat Key = ', stat_key

    #     for field in Item.__meta.get_fields():
    #         if field == full_stat:
                




    all_item_request = requester('https://global.api.pvp.net/api/lol/static-data/na/v1.2/item?itemListData=all&api_key=07f7018c-7a66-4566-8fce-bc6f9c94b13d','get')
    item_data = all_item_request['data']
    item_data_list = []
   
    for item in item_data:

        item_data_list.append(item_data[item])

        try:
            Item.objects.get(riot_id = item_data[item]['id'])
            continue
        except:
            pass
        try:
            item, created = Item.objects.get_or_create(
            
                riot_id = item_data[item]['id'],
                name = item_data[item]['name'], 
                image = item_data[item]['image'],
                FlatArmorMod = _get_item_stats_from_json(item, 'FlatArmorMod'),
                FlatAttackSpeedMod =  _get_item_stats_from_json(item,'FlatAttackSpeedMod'),  
                FlatBlockMod =  _get_item_stats_from_json(item,'FlatBlockMod'),    
                FlatCritChanceMod = _get_item_stats_from_json(item,'FlatCritChanceMod'),   
                FlatCritDamageMod = _get_item_stats_from_json(item, 'FlatCritDamageMod'),   
                FlatEXPBonus = _get_item_stats_from_json(item, 'FlatEXPBonus'),    
                FlatEnergyPoolMod = _get_item_stats_from_json(item, 'FlatEnergyPoolMod'),   
                FlatEnergyRegenMod = _get_item_stats_from_json(item, 'FlatEnergyRegenMod'),  
                FlatHPPoolMod = _get_item_stats_from_json(item, 'FlatHPPoolMod'),   
                FlatHPRegenMod = _get_item_stats_from_json(item, 'FlatHPRegenMod'),  
                FlatMPPoolMod = _get_item_stats_from_json(item, 'FlatMPPoolMod'),   
                FlatMPRegenMod = _get_item_stats_from_json(item, 'FlatMPRegenMod'),  
                FlatMagicDamageMod = _get_item_stats_from_json(item, 'FlatMagicDamageMod'),  
                FlatMovementSpeedMod = _get_item_stats_from_json(item, 'FlatMovementSpeedMod'),   
                FlatPhysicalDamageMod = _get_item_stats_from_json(item, 'FlatPhysicalDamageMod'),  
                FlatSpellBlockMod = _get_item_stats_from_json(item, 'FlatSpellBlockMod'),   
                PercentArmorMod = _get_item_stats_from_json(item, 'PercentArmorMod'), 
                PercentAttackSpeedMod = _get_item_stats_from_json(item, 'PercentAttackSpeedMod'),   
                PercentBlockMod = _get_item_stats_from_json(item, 'PercentBlockMod'), 
                PercentCritChanceMod = _get_item_stats_from_json(item, 'PercentCritChanceMod'),    
                PercentCritDamageMod = _get_item_stats_from_json(item, 'PercentCritDamageMod'),   
                PercentDodgeMod = _get_item_stats_from_json(item, 'PercentDodgeMod'),
                PercentEXPBonus = _get_item_stats_from_json(item, 'PercentEXPBonus'), 
                PercentHPPoolMod = _get_item_stats_from_json(item, 'PercentHPPoolMod'),    
                PercentHPRegenMod = _get_item_stats_from_json(item, 'PercentHPRegenMod'),   
                PercentLifeStealMod = _get_item_stats_from_json(item, 'PercentLifeStealMod'), 
                PercentMPPoolMod = _get_item_stats_from_json(item, 'PercentMPPoolMod'),    
                PercentMPRegenMod = _get_item_stats_from_json(item, 'PercentMPRegenMod'),   
                PercentMagicDamageMod = _get_item_stats_from_json(item, 'PercentMagicDamageMod'),   
                PercentMovementSpeedMod = _get_item_stats_from_json(item, 'PercentMovementSpeedMod'), 
                PercentPhysicalDamageMod = _get_item_stats_from_json(item, 'PercentPhysicalDamageMod'),    
                PercentSpellBlockMod = _get_item_stats_from_json(item, 'PercentSpellBlockMod'),    
                PercentSpellVampMod = _get_item_stats_from_json(item, 'PercentSpellVampMod'),
                rFlatArmorModPerLevel = _get_item_stats_from_json(item, 'rFlatArmorModPerLevel'),  
                rFlatArmorPenetrationMod = _get_item_stats_from_json(item, 'rFlatArmorPenetrationMod'),    
                rFlatArmorPenetrationModPerLevel = _get_item_stats_from_json(item, 'rFlatArmorPenetrationModPerLevel'),    
                rFlatCritChanceModPerLevel = _get_item_stats_from_json(item, 'rFlatCritChanceModPerLevel'),     
                rFlatCritDamageModPerLevel = _get_item_stats_from_json(item, 'rFlatCritDamageModPerLevel'),     
                rFlatDodgeMod = _get_item_stats_from_json(item, 'rFlatDodgeMod'),      
                rFlatDodgeModPerLevel = _get_item_stats_from_json(item, 'rFlatDodgeModPerLevel'),      
                rFlatEnergyModPerLevel = _get_item_stats_from_json(item, 'rFlatEnergyModPerLevel'),     
                rFlatEnergyRegenModPerLevel = _get_item_stats_from_json(item, 'rFlatEnergyRegenModPerLevel'),    
                rFlatGoldPer10Mod = _get_item_stats_from_json(item, 'rFlatGoldPer10Mod'),      
                rFlatHPModPerLevel = _get_item_stats_from_json(item, 'rFlatHPModPerLevel'),     
                rFlatHPRegenModPerLevel = _get_item_stats_from_json(item, 'rFlatHPRegenModPerLevel'),    
                rFlatMPModPerLevel = _get_item_stats_from_json(item, 'rFlatMPModPerLevel'),     
                rFlatMPRegenModPerLevel = _get_item_stats_from_json(item, 'rFlatMPRegenModPerLevel'),    
                rFlatMagicDamageModPerLevel = _get_item_stats_from_json(item, 'rFlatMagicDamageModPerLevel'),    
                rFlatMagicPenetrationMod = _get_item_stats_from_json(item, 'rFlatMagicPenetrationMod'),      
                rFlatMagicPenetrationModPerLevel = _get_item_stats_from_json(item, 'rFlatMagicPenetrationModPerLevel'),       
                rFlatMovementSpeedModPerLevel = _get_item_stats_from_json(item, 'rFlatMovementSpeedModPerLevel'),      
                rFlatPhysicalDamageModPerLevel = _get_item_stats_from_json(item, 'rFlatPhysicalDamageModPerLevel'),     
                rFlatSpellBlockModPerLevel = _get_item_stats_from_json(item, 'rFlatSpellBlockModPerLevel'),     
                rFlatTimeDeadMod = _get_item_stats_from_json(item, 'rFlatTimeDeadMod'),       
                rFlatTimeDeadModPerLevel = _get_item_stats_from_json(item, 'rFlatTimeDeadModPerLevel'),        
                rPercentArmorPenetrationMod = _get_item_stats_from_json(item, 'rPercentArmorPenetrationMod'),    
                rPercentArmorPenetrationModPerLevel = _get_item_stats_from_json(item, 'rPercentArmorPenetrationModPerLevel'),     
                rPercentAttackSpeedModPerLevel = _get_item_stats_from_json(item, 'rPercentAttackSpeedModPerLevel'),      
                rPercentCooldownMod = _get_item_stats_from_json(item, 'rPercentCooldownMod'),    
                rPercentCooldownModPerLevel = _get_item_stats_from_json(item, 'rPercentCooldownModPerLevel'),    
                rPercentMagicPenetrationMod = _get_item_stats_from_json(item, 'rPercentMagicPenetrationMod'),    
                rPercentMagicPenetrationModPerLevel = _get_item_stats_from_json(item, 'rPercentMagicPenetrationModPerLevel'),    
                rPercentMovementSpeedModPerLevel = _get_item_stats_from_json(item, 'rPercentMovementSpeedModPerLevel'),        
                rPercentTimeDeadMod = _get_item_stats_from_json(item, 'rPercentTimeDeadMod'),    
                rPercentTimeDeadModPerLevel = _get_item_stats_from_json(item, 'rPercentTimeDeadModPerLevel'),    
            )
            if created == True:
                item.save() 
        except:
            print 'ERROR, item ID = ', item_data[item]['id']