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()