up emoji on demo map
This commit is contained in:
parent
65956ff6be
commit
dea71fc6b3
7 changed files with 565 additions and 35 deletions
|
@ -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}")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue