- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten. - Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in . - Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in . - Archiviert eindeutig veraltete und ungenutzte Skripte in . - Die zentralen Helfer und bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
100 lines
4.2 KiB
Python
100 lines
4.2 KiB
Python
import json
|
|
import time
|
|
import os
|
|
import sys
|
|
|
|
# Ensure we can import from lead-engine
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), 'lead-engine'))
|
|
try:
|
|
from trading_twins_ingest import process_leads
|
|
except ImportError:
|
|
print("Warning: Could not import trading_twins_ingest from lead-engine. Email ingestion disabled.")
|
|
process_leads = None
|
|
|
|
from company_explorer_connector import handle_company_workflow
|
|
|
|
def run_trading_twins_process(target_company_name: str):
|
|
"""
|
|
Startet den Trading Twins Prozess für ein Zielunternehmen.
|
|
Ruft den Company Explorer Workflow auf, um das Unternehmen zu finden,
|
|
zu erstellen oder anzureichern.
|
|
"""
|
|
print(f"\n{'='*50}")
|
|
print(f"Starte Trading Twins Analyse für: {target_company_name}")
|
|
print(f"{'='*50}\n")
|
|
|
|
# Aufruf des Company Explorer Workflows
|
|
# Diese Funktion prüft, ob die Firma existiert.
|
|
# Wenn nicht, erstellt sie die Firma und startet die Anreicherung.
|
|
# Sie gibt am Ende die Daten aus dem Company Explorer zurück.
|
|
company_data_result = handle_company_workflow(target_company_name)
|
|
|
|
# Verarbeitung der Rückgabe (für den POC genügt eine Ausgabe)
|
|
print("\n--- Ergebnis vom Company Explorer Connector (für Trading Twins) ---")
|
|
|
|
status = company_data_result.get("status")
|
|
data = company_data_result.get("data")
|
|
|
|
if status == "error":
|
|
print(f"Ein Fehler ist aufgetreten: {company_data_result.get('message')}")
|
|
elif status == "found":
|
|
print(f"Unternehmen gefunden. ID: {data.get('id')}, Name: {data.get('name')}")
|
|
print(json.dumps(data, indent=2, ensure_ascii=False))
|
|
elif status == "created_and_enriched":
|
|
print(f"Unternehmen erstellt und Enrichment angestoßen. ID: {data.get('id')}, Name: {data.get('name')}")
|
|
print("Hinweis: Enrichment-Prozesse laufen im Hintergrund und können einige Zeit dauern, bis alle Daten verfügbar sind.")
|
|
print(json.dumps(data, indent=2, ensure_ascii=False))
|
|
elif status == "created_discovery_timeout":
|
|
print(f"Unternehmen erstellt, aber Discovery konnte keine Website finden (ID: {data.get('id')}, Name: {data.get('name')}).")
|
|
print("Der Analyse-Prozess wurde daher nicht gestartet.")
|
|
print(json.dumps(data, indent=2, ensure_ascii=False))
|
|
else:
|
|
print("Ein unerwarteter Status ist aufgetreten.")
|
|
print(json.dumps(company_data_result, indent=2, ensure_ascii=False))
|
|
|
|
print(f"\n{'='*50}")
|
|
print(f"Trading Twins Analyse für {target_company_name} abgeschlossen.")
|
|
print(f"{'='*50}\n")
|
|
|
|
def run_email_ingest():
|
|
"""Starts the automated email ingestion process for Tradingtwins leads."""
|
|
if process_leads:
|
|
print("\nStarting automated email ingestion via Microsoft Graph...")
|
|
process_leads()
|
|
print("Email ingestion completed.")
|
|
else:
|
|
print("Error: Email ingestion module not available.")
|
|
|
|
if __name__ == "__main__":
|
|
# Simulieren der Umgebungsvariablen für diesen Testlauf, falls nicht gesetzt
|
|
if "COMPANY_EXPLORER_API_USER" not in os.environ:
|
|
os.environ["COMPANY_EXPLORER_API_USER"] = "admin"
|
|
if "COMPANY_EXPLORER_API_PASSWORD" not in os.environ:
|
|
os.environ["COMPANY_EXPLORER_API_PASSWORD"] = "gemini"
|
|
|
|
print("Trading Twins Tool - Main Menu")
|
|
print("1. Process specific company name")
|
|
print("2. Ingest leads from Email (info@robo-planet.de)")
|
|
print("3. Run demo sequence (Robo-Planet, Erding, etc.)")
|
|
|
|
choice = input("\nSelect option (1-3): ").strip()
|
|
|
|
if choice == "1":
|
|
name = input("Enter company name: ").strip()
|
|
if name:
|
|
run_trading_twins_process(name)
|
|
elif choice == "2":
|
|
run_email_ingest()
|
|
elif choice == "3":
|
|
# Testfall 1: Ein Unternehmen, das wahrscheinlich bereits existiert
|
|
run_trading_twins_process("Robo-Planet GmbH")
|
|
time.sleep(2)
|
|
# Testfall 1b: Ein bekanntes, real existierendes Unternehmen
|
|
run_trading_twins_process("Klinikum Landkreis Erding")
|
|
time.sleep(2)
|
|
# Testfall 2: Ein neues, eindeutiges Unternehmen
|
|
new_unique_company_name = f"Trading Twins New Target {int(time.time())}"
|
|
run_trading_twins_process(new_unique_company_name)
|
|
else:
|
|
print("Invalid choice.")
|