=== CORREZIONE CRITICA: Fix Stati Pubblicazione Database === Data: 14/01/2025 00:20:00 Problema: Le pubblicazioni social funzionano ma non aggiornano il database delle statistiche CAUSA IDENTIFICATA: La funzione aggiorna_stato_pubblicazione_database() nel file server.py (linea ~387) non include debug dettagliato per identificare il problema. CORREZIONI NECESSARIE: 1. SOSTITUIRE la funzione aggiorna_stato_pubblicazione_database() con questa versione corretta: ```python def aggiorna_stato_pubblicazione_database(curiosita_id, risultati_pubblicazione): """ Aggiorna gli stati delle pubblicazioni social nel database per una curiositΓ  specifica. Aggiunto: 09/01/2025 21:30:00 - Tracking stati pubblicazioni per pagina statistiche CORRETTO: 14/01/2025 00:15:00 - Fix mapping piattaforme per corretto salvataggio stati Args: curiosita_id (int): ID della curiositΓ  nel database risultati_pubblicazione (list): Lista risultati da pubblica_ayrshare() """ if not curiosita_id or not risultati_pubblicazione: print(f" ⚠️ Parametri mancanti: curiosita_id={curiosita_id}, risultati={len(risultati_pubblicazione) if risultati_pubblicazione else 0}") return False print(f"πŸ“Š AGGIORNAMENTO STATI PUBBLICAZIONE - ID #{curiosita_id}") print(f" πŸ“ Risultati ricevuti: {len(risultati_pubblicazione)} piattaforme") # DEBUG: Mostra i dati ricevuti - 14/01/2025 00:15:00 for i, risultato in enumerate(risultati_pubblicazione): platform = risultato.get("platform", "unknown") successo = risultato.get("successo", False) post_id = risultato.get("post_id", "N/A") print(f" [{i+1}] {platform}: {'βœ… SUCCESSO' if successo else '❌ FALLITO'} (ID: {post_id})") # Estrai stati da risultati_pubblicazione - CORRETTO 14/01/2025 00:15:00 facebook_status = "non_tentato" instagram_status = "non_tentato" threads_status = "non_tentato" tiktok_status = "non_tentato" twitter_status = "non_tentato" # AGGIUNTO: 14/01/2025 00:15:00 - Separato da TikTok facebook_post_id = None instagram_post_id = None threads_post_id = None tiktok_post_id = None twitter_post_id = None # AGGIUNTO: 14/01/2025 00:15:00 - Separato da TikTok for risultato in risultati_pubblicazione: platform = risultato.get("platform", "").lower() successo = risultato.get("successo", False) post_id = risultato.get("post_id", "") print(f" πŸ” Processando: {platform} β†’ successo={successo}, post_id={post_id}") if "facebook" in platform: facebook_status = "successo" if successo else "errore" facebook_post_id = post_id if successo else None print(f" πŸ“˜ Facebook: {facebook_status} (ID: {facebook_post_id})") elif "instagram" in platform: instagram_status = "successo" if successo else "errore" instagram_post_id = post_id if successo else None print(f" πŸ“· Instagram: {instagram_status} (ID: {instagram_post_id})") elif "threads" in platform: threads_status = "successo" if successo else "errore" threads_post_id = post_id if successo else None print(f" 🧡 Threads: {threads_status} (ID: {threads_post_id})") elif "tiktok" in platform: tiktok_status = "successo" if successo else "errore" tiktok_post_id = post_id if successo else None print(f" 🎡 TikTok: {tiktok_status} (ID: {tiktok_post_id})") elif "x" in platform or "twitter" in platform: # CORRETTO: 14/01/2025 00:15:00 - Gestisce sia X che Twitter twitter_status = "successo" if successo else "errore" twitter_post_id = post_id if successo else None print(f" 🐦 X/Twitter: {twitter_status} (ID: {twitter_post_id})") else: print(f" ⚠️ Piattaforma non riconosciuta: '{platform}'") data_pubblicazione = datetime.now().strftime("%Y-%m-%d %H:%M:%S") try: with db_lock: conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # CORRETTO: 14/01/2025 00:15:00 - Aggiornamento corretto con X/Twitter separato da TikTok # Nota: Il database potrebbe non avere ancora la colonna twitter_status, quindi uso solo le colonne esistenti cursor.execute(""" UPDATE curiosita SET facebook_status = ?, instagram_status = ?, threads_status = ?, tiktok_status = ?, facebook_post_id = ?, instagram_post_id = ?, threads_post_id = ?, tiktok_post_id = ?, pubblicazione_data = ? WHERE id = ? """, (facebook_status, instagram_status, threads_status, tiktok_status, facebook_post_id, instagram_post_id, threads_post_id, tiktok_post_id, data_pubblicazione, curiosita_id)) rows_affected = cursor.rowcount conn.commit() conn.close() print(f" βœ… Stati pubblicazione salvati nel database (righe aggiornate: {rows_affected})") print(f" πŸ“Š RIEPILOGO FINALE:") print(f" πŸ“˜ Facebook: {facebook_status} (ID: {facebook_post_id})") print(f" πŸ“· Instagram: {instagram_status} (ID: {instagram_post_id})") print(f" 🧡 Threads: {threads_status} (ID: {threads_post_id})") print(f" 🎡 TikTok: {tiktok_status} (ID: {tiktok_post_id})") print(f" 🐦 X/Twitter: {twitter_status} (ID: {twitter_post_id}) [NON SALVATO - colonna mancante]") print(f" πŸ“… Data pubblicazione: {data_pubblicazione}") return rows_affected > 0 except Exception as e: print(f" ❌ Errore salvataggio stati pubblicazione: {e}") import traceback traceback.print_exc() return False ``` ISTRUZIONI PER L'UTENTE: 1. Sostituire la funzione aggiorna_stato_pubblicazione_database() nel file server.py con la versione corretta sopra 2. Ricaricare il server 3. Testare una pubblicazione 4. Verificare che i log mostrano i dettagli del salvataggio 5. Controllare che le statistiche si aggiornino correttamente COSA CAMBIA: - Debug dettagliato per vedere i dati ricevuti - Mapping migliorato delle piattaforme - Conteggio righe aggiornate nel database - Traceback completo in caso di errore - Gestione separata di X/Twitter e TikTok