up emoji on demo map

This commit is contained in:
Tykayn 2025-09-27 00:39:18 +02:00 committed by tykayn
parent 65956ff6be
commit dea71fc6b3
7 changed files with 565 additions and 35 deletions

View file

@ -614,15 +614,17 @@ def submit_event(event):
event: A GeoJSON Feature representing the event.
Returns:
bool: True if the event was successfully submitted, False otherwise.
tuple: A tuple containing (success: bool, event_id: str or None).
success is True if the event was successfully submitted, False otherwise.
event_id is the OEDB event ID if available, None otherwise.
"""
try:
# Extract event properties for logging
properties = event['properties']
# API endpoint for OpenEventDatabase
api_url = "https://api.openeventdatabase.org/event"
# Make the API request
logger.info(f"Submitting event '{properties.get('label')}' to API")
response = requests.post(
@ -630,32 +632,38 @@ def submit_event(event):
headers={"Content-Type": "application/json"},
data=json.dumps(event)
)
# Check if the request was successful
if response.status_code == 200 or response.status_code == 201:
# Parse the response to get the event ID
response_data = response.json()
event_id = response_data.get('id')
if event_id:
logger.success(f"Event created with ID: {event_id}")
logger.info(f" https://api.openeventdatabase.org/event/{event_id}")
return True
return (True, event_id)
else:
logger.warning(f"Event created but no ID returned in response")
return True
return (True, None)
elif response.status_code == 409:
# 409 Conflict - L'événement existe déjà, considéré comme un succès
logger.success(f"Event already exists in database: {properties.get('label')} (HTTP 409)")
return True
# Essayer d'extraire l'ID de l'événement existant depuis la réponse
try:
response_data = response.json()
existing_event_id = response_data.get('id')
return (True, existing_event_id)
except:
return (True, None)
else:
logger.warning(f"Failed to create event: {properties.get('label')}. Status code: {response.status_code}")
logger.warning(f"Response: {response.text}")
return False
return (False, None)
except Exception as e:
logger.error(f"Error submitting event: {e}")
return False
return (False, None)
def main(max_events=1, offset=0):
"""
@ -695,7 +703,8 @@ def main(max_events=1, offset=0):
# Vérifier si l'événement existe dans le cache et a le statut 'success'
if link in event_cache and event_cache[link].get('status') == 'success':
success_events.append(link)
logger.info(f"Événement déjà traité avec succès, ignoré : {link}")
oedb_id = event_cache[link].get('oedb_event_id', 'ID non disponible')
logger.info(f"Événement déjà traité avec succès (ID OEDB: {oedb_id}), ignoré : {link}")
else:
new_events.append(link)
# Initialiser l'événement dans le cache s'il n'existe pas
@ -709,7 +718,8 @@ def main(max_events=1, offset=0):
# Log du statut actuel pour les événements déjà en cache
current_status = event_cache[link].get('status', 'unknown')
attempts = event_cache[link].get('attempts', 0)
logger.info(f"Événement à retraiter (statut: {current_status}, tentatives: {attempts}) : {link}")
oedb_id = event_cache[link].get('oedb_event_id', 'non disponible')
logger.info(f"Événement à retraiter (statut: {current_status}, tentatives: {attempts}, ID OEDB: {oedb_id}) : {link}")
logger.info(f"Liens d'événements trouvés : {len(event_links)}")
logger.info(f"Événements déjà traités avec succès : {len(success_events)}")
@ -766,11 +776,17 @@ def main(max_events=1, offset=0):
if event:
# Tenter de soumettre l'événement à l'API
if submit_event(event):
submit_success, oedb_event_id = submit_event(event)
if submit_success:
success_count += 1
event_cache[event_link]['status'] = 'success'
event_cache[event_link]['inserted_at'] = datetime.now().isoformat()
logger.success(f"Événement inséré avec succès : {event_link}")
# Sauvegarder l'ID de l'événement OEDB dans le cache
if oedb_event_id:
event_cache[event_link]['oedb_event_id'] = oedb_event_id
logger.success(f"Événement inséré avec succès (ID OEDB: {oedb_event_id}) : {event_link}")
else:
logger.success(f"Événement inséré avec succès (ID OEDB non disponible) : {event_link}")
else:
event_cache[event_link]['status'] = 'failed'
logger.warning(f"Échec de l'insertion de l'événement : {event_link}")