Files
Ingress/main.py
Matteo Rosati 6416ad2018 init
2026-01-12 11:28:14 +01:00

67 lines
2.6 KiB
Python

import os
import argparse
from typing import List
from datetime import datetime
from ingress import IngressAPI
from models import EventType, Plext
def print_plexts(plexts: List[Plext]):
for plext in plexts:
dt = datetime.fromtimestamp(plext.timestamp / 1000.0)
timestamp_str = dt.strftime("%Y-%m-%d %H:%M:%S")
coords = plext.get_event_coordinates()
if coords:
lat, lng = coords
print(f"[{timestamp_str}] [{plext.get_event_type().name}] {plext.text} - Coords: {lat}, {lng}")
else:
print(f"[{timestamp_str}] [{plext.get_event_type().name}] {plext.text}")
def main():
parser = argparse.ArgumentParser(description="Ingress Intel Report")
parser.add_argument(
"--event-types",
nargs="+",
type=str,
choices=[e.name for e in EventType],
help="List of event types to filter by.",
)
parser.add_argument("--player-name", type=str, help="Player name to filter by.")
parser.add_argument("--min-lat", type=int, default=45470259, help="Minimum latitude.")
parser.add_argument("--min-lng", type=int, default=12244155, help="Minimum longitude.")
parser.add_argument("--max-lat", type=int, default=45480370, help="Maximum latitude.")
parser.add_argument("--max-lng", type=int, default=12298207, help="Maximum longitude.")
args = parser.parse_args()
# It's recommended to set the INGRESS_COOKIE environment variable
# instead of hardcoding the cookie in the script.
cookie = os.getenv(
"INGRESS_COOKIE",
"csrftoken=3yUkOxJ2lkc49AStOe8JDpmP1vWI5WTXpV5hlMKTRB4sisPGLdv1IXMBvKfYAZmQ; sessionid=.eJyrViotTi3yTFGyUrJINTA2SbG0MDdPSjJPMjVU0gHLueYmZuYApYvyixNLMvVyE0tKUvMd0kGiesn5uUBVxanFxZn5eWGpRSAKqNRIqRYA3zUdAQ:1veJTk:haQGju5WSpAUlMygA1AF26nvx1I; ingress.intelmap.shflt=viz; _ncc=1; ingress.intelmap.zoom=16; ingress.intelmap.lng=12.271176494006568; ingress.intelmap.lat=45.47531344367309"
)
# This is the version from the curl command in json_doc.md
# Replace with a valid one if it expires
client = IngressAPI(
version="e6d07d367cf3d1d959dd9627c9ae3827352409d1",
cookie=cookie,
)
event_types = [EventType[et] for et in args.event_types] if args.event_types else None
try:
plexts = client.get_plexts(
min_lat_e6=args.min_lat,
min_lng_e6=args.min_lng,
max_lat_e6=args.max_lat,
max_lng_e6=args.max_lng,
event_types=event_types,
player_name=args.player_name,
)
print_plexts(plexts)
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()