turfrun/mongotest.py
Ian Burgess 02845f8a59 yes
2025-05-06 21:10:16 -06:00

46 lines
1.3 KiB
Python

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