Exemple #1
0
def get_or_create_portal(portal):
    latE6 = portal['latE6']
    lngE6 = portal['lngE6']
    if not within_range(latE6, lngE6):
        logging.error('found a outside portal ({}, {}), ignored'.format(
            latE6, lngE6))
        return None

    try:
        obj_portal = Portal.objects.get(
            latE6=latE6,
            lngE6=lngE6,
            has_problem=False,
        )
        if obj_portal.team != portal['team'][0]:
            obj_portal.team = portal['team'][0]
            obj_portal.save()
    except Portal.DoesNotExist:
        obj_portal = Portal.objects.create(
            guid=str(uuid.uuid4()),
            name=portal['name'],
            team=portal['team'][0],
            latE6=portal['latE6'],
            lngE6=portal['lngE6'],
            has_real_guid=False,
        )
    return obj_portal
Exemple #2
0
def get_or_create_portal(portal):
    latE6=portal['latE6']
    lngE6=portal['lngE6']
    if not within_range(latE6, lngE6):
        logging.error('found a outside portal ({}, {}), ignored'.format(
                      latE6, lngE6))
        return None

    try:
        obj_portal = Portal.objects.get(
            latE6=latE6,
            lngE6=lngE6,
            has_problem=False,
        )
        if obj_portal.team != portal['team'][0]:
            obj_portal.team = portal['team'][0]
            obj_portal.save()
    except Portal.DoesNotExist:
        obj_portal = Portal.objects.create(
            guid=str(uuid.uuid4()),
            name=portal['name'],
            team=portal['team'][0],
            latE6=portal['latE6'],
            lngE6=portal['lngE6'],
            has_real_guid=False,
        )
    return obj_portal
def get_or_create_portal(portal):
    latE6 = portal['latE6']
    lngE6 = portal['lngE6']
    if not within_range(latE6, lngE6):
        logging.info('found a stranger portal, ignored')
        return None

    try:
        obj_portal = Portal.objects.get(pk=portal['guid'])
        if obj_portal.team != portal['team'][0]:
            obj_portal.team = portal['team'][0]
            obj_portal.save()
    except Portal.DoesNotExist:
        obj_portal = Portal.objects.create(
            guid=portal['guid'],
            name=portal['name'],
            team=portal['team'][0],
            latE6=portal['latE6'],
            lngE6=portal['lngE6'],
        )
    return obj_portal
Exemple #4
0
def get_or_create_portal(portal):
    latE6=portal['latE6']
    lngE6=portal['lngE6']
    if not within_range(latE6, lngE6):
        logging.info('found a stranger portal, ignored')
        return None

    try:
        obj_portal = Portal.objects.get(pk=portal['guid'])
        if obj_portal.team != portal['team'][0]:
            obj_portal.team = portal['team'][0]
            obj_portal.save()
    except Portal.DoesNotExist:
        obj_portal = Portal.objects.create(
            guid=portal['guid'],
            name=portal['name'],
            team=portal['team'][0],
            latE6=portal['latE6'],
            lngE6=portal['lngE6'],
        )
    return obj_portal
def get_entities():
    old_datetime = now() - datetime.timedelta(seconds=60 * 60 * 24)
    tiles = Tile.objects.filter(updated__lt=old_datetime).order_by('updated')[:3]
    if not tiles:
        return

    tileKeys = [x.key for x in tiles]
    payload = get_payload(tileKeys)

    try:
        r = requests.post(
                "https://www.ingress.com/r/getEntities",
            data=json.dumps(payload),
            headers=HEADERS
        )
    except:
        logging.exception('Error in get_entities():')
        return

    try:
        result = json.loads(r.text)
    except:
        logging.exception('')
        logging.error(r.text)
        return

    count_info = {}
    tiles_dict = result['result']['map']
    for tile_key, value in tiles_dict.items():
        tile_key_n = tile_key + '_n'
        if 'error' in value:
            logging.error('Error {} found for tile: {}'.format(value['error'], tile_key))
            continue
        if 'gameEntities' not in value:
            logging.error('No gameEntities found for tile: {}'.format(tile_key))
            continue

        portal_count = 0
        portal_count_n = 0
        portal_in_tile = None
        print('==========' + tile_key + '========')
        entities = value['gameEntities']
        for item in entities:
            entity = item[2]
            if entity['type'] != 'portal':
                continue
            portal_count += 1

            guid = item[0]
            latE6 = entity['latE6']
            lngE6 = entity['lngE6']
            if not within_range(latE6, lngE6):
                continue
            name = entity['title']
            team = entity['team']
            if team == 'NEUTRAL':
                portal_count_n += 1
            portal = {}
            portal['guid'] = guid
            portal['name'] = entity['title']
            portal['team'] = entity['team']
            portal['latE6'] = entity['latE6']
            portal['lngE6'] = entity['lngE6']
            portal['level'] = entity['level']
            portal['image'] = entity['image']
            obj_portal = get_or_create_portal(portal)
            if obj_portal:
                portal_in_tile = obj_portal
            print('- ' + name + ' ' + guid + ' ' + team)
        count_info[tile_key] = portal_count
        count_info[tile_key_n] = portal_count_n
        count_info[tile_key + '_po'] = portal_in_tile

    # update last updated flag
    for tile in tiles:
        tile.portal_count = count_info.get(tile.key, 0)
        tile.n_po_count = count_info.get(tile.key + '_n', 0)
        tile.portal = count_info.get(tile.key + '_po', None)
        tile.save()
Exemple #6
0
def get_entities():
    old_datetime = now() - datetime.timedelta(seconds=60 * 60 * 24)
    tiles = Tile.objects.filter(updated__lt=old_datetime).order_by("updated")[:3]
    if not tiles:
        return

    tileKeys = [x.key for x in tiles]
    payload = get_payload(tileKeys)

    try:
        r = requests.post("https://www.ingress.com/r/getEntities", data=json.dumps(payload), headers=HEADERS)
    except:
        logging.exception("Error in get_entities():")
        return

    try:
        result = json.loads(r.text)
    except:
        logging.exception("")
        logging.error(r.text)
        return

    count_info = {}
    tiles_dict = result["result"]["map"]
    for tile_key, value in tiles_dict.items():
        tile_key_n = tile_key + "_n"
        if "error" in value:
            logging.error("Error {} found for tile: {}".format(value["error"], tile_key))
            continue
        if "gameEntities" not in value:
            logging.error("No gameEntities found for tile: {}".format(tile_key))
            continue

        portal_count = 0
        portal_count_n = 0
        portal_in_tile = None
        print("==========" + tile_key + "========")
        entities = value["gameEntities"]
        for item in entities:
            entity = item[2]
            if entity["type"] != "portal":
                continue
            portal_count += 1

            guid = item[0]
            latE6 = entity["latE6"]
            lngE6 = entity["lngE6"]
            if not within_range(latE6, lngE6):
                continue
            name = entity["title"]
            team = entity["team"]
            if team == "NEUTRAL":
                portal_count_n += 1
            portal = {}
            portal["guid"] = guid
            portal["name"] = entity["title"]
            portal["team"] = entity["team"]
            portal["latE6"] = entity["latE6"]
            portal["lngE6"] = entity["lngE6"]
            portal["level"] = entity["level"]
            portal["image"] = entity["image"]
            obj_portal = get_or_create_portal(portal)
            if obj_portal:
                portal_in_tile = obj_portal
            print("- " + name + " " + guid + " " + team)
        count_info[tile_key] = portal_count
        count_info[tile_key_n] = portal_count_n
        count_info[tile_key + "_po"] = portal_in_tile

    # update last updated flag
    for tile in tiles:
        tile.portal_count = count_info.get(tile.key, 0)
        tile.n_po_count = count_info.get(tile.key + "_n", 0)
        tile.portal = count_info.get(tile.key + "_po", None)
        tile.save()
def get_entities():
    old_datetime = now() - datetime.timedelta(seconds=60 * 60 * 24)
    tiles = Tile.objects.filter(updated__lt=old_datetime).order_by('updated')[:3]
    if not tiles:
        return

    tileKeys = [x.key for x in tiles]
    payload = get_payload(tileKeys)

    try:
        r = requests.post(
                "https://www.ingress.com/r/getEntities",
            data=json.dumps(payload),
            headers=HEADERS
        )
    except:
        logging.exception('Error in get_entities():')
        return

    try:
        result = json.loads(r.text)
    except:
        logging.exception('')
        logging.error(r.text)
        return

    count_info = {}
    tiles_dict = result['result']['map']
    for tile_key, value in tiles_dict.items():
        if 'error' in value:
            logging.error('Error {} found for tile: {}'.format(value['error'], tile_key))
            continue
        if 'gameEntities' not in value:
            logging.error('No gameEntities found for tile: {}'.format(tile_key))
            continue

        portal_count = 0
        print('==========' + tile_key + '========')
        entities = value['gameEntities']
        for item in entities:
            entity = item[2]
            if entity['type'] != 'portal':
                continue
            portal_count += 1

            guid = item[0]
            latE6 = entity['latE6']
            lngE6 = entity['lngE6']
            if not within_range(latE6, lngE6):
                continue
            name = entity['title']
            team = entity['team']
            portal = {}
            portal['guid'] = guid
            portal['name'] = entity['title']
            portal['team'] = entity['team']
            portal['latE6'] = entity['latE6']
            portal['lngE6'] = entity['lngE6']
            portal['level'] = entity['level']
            portal['image'] = entity['image']
            obj_portal = get_or_create_portal(portal)
            print('- ' + name + ' ' + guid + ' ' + team)
        count_info[tile_key] = portal_count

    # update last updated flag
    for tile in tiles:
        tile.portal_count = count_info.get(tile.key, 0)
        tile.save()