from pymongo import MongoClient from shapely.geometry import Polygon, mapping from alphashape import alphashape import stravalib from datetime import datetime from dotenv import load_dotenv from os import getenv import matplotlib.pyplot as plt load_dotenv() client = stravalib.client.Client() client.refresh_access_token(getenv("STRAVA_CLIENT_ID"), getenv("STRAVA_CLIENT_SECRET"), getenv("REFRESH_TOKEN")) mongo = MongoClient("mongodb://databaseuser:databasepass@localhost:27017/") db = mongo["turfrun"] def save_claimed_land(player_id, coordinates): """Saves a newly claimed territory to the database.""" land_collection = db.turf polygon = { "type": "Polygon", "coordinates": [coordinates] # Ensure it's a list of rings } land_document = { "owner_id": player_id, "geometry": polygon, "claimed_at": datetime.utcnow() # Add other relevant properties like score contribution, etc. } land_collection.insert_one(land_document) streams = client.get_activity_streams(14171406402) coords = streams["latlng"].data print("made it 1") coords = alphashape(coords, 1000) print("made it 2") # coords = mapping(coords)["coordinates"][0] for i in coords.geoms: print(type(i)) coords = [(lon, lat) for lat, lon in coords] save_claimed_land(1, coords) mongo.close()