From 8db8a693b53ea9958b06d337b3f5518aae32ae8a Mon Sep 17 00:00:00 2001 From: duffyduck Date: Mon, 29 Dec 2025 01:23:13 +0100 Subject: [PATCH] fix ready loop die zweite --- python_bridge/Auswahl_648.png | Bin 0 -> 59906 bytes python_bridge/chat_web_interface.py | 119 ++++++++++++++++++++++++---- 2 files changed, 102 insertions(+), 17 deletions(-) create mode 100644 python_bridge/Auswahl_648.png diff --git a/python_bridge/Auswahl_648.png b/python_bridge/Auswahl_648.png new file mode 100644 index 0000000000000000000000000000000000000000..697e6e25a27361a89585bd46874f6d9d52330a68 GIT binary patch literal 59906 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 z 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%0Abt(G@pRe&D86_ZWH>TWut3G2g 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 literal 0 HcmV?d00001 diff --git a/python_bridge/chat_web_interface.py b/python_bridge/chat_web_interface.py index 91cc2c6..9e44718 100644 --- a/python_bridge/chat_web_interface.py +++ b/python_bridge/chat_web_interface.py @@ -679,12 +679,14 @@ class ClaudeChatInterface: if not claude_elements: try: # Claude.ai 2024/2025 nutzt oft conversation-turn Divs - # WICHTIG: Wir suchen die INNERSTEN Elemente die mit "Claude sagt:" BEGINNEN - # und NICHT in der Sidebar/Navigation sind + # WICHTIG: Wir suchen den CONTAINER der die gesamte Claude-Nachricht enthält, + # nicht nur das Element mit "Claude sagt:" - denn [READY] kann in einem + # separaten Child-Element stehen! found = self.driver.execute_script(""" const msgs = []; - // Suche nach Elementen die mit "Claude sagt:" BEGINNEN + // Strategie: Finde Elemente mit "Claude sagt:" und dann den + // ÜBERGEORDNETEN Container der die vollständige Nachricht enthält const allDivs = document.querySelectorAll('div, p, span'); for (const elem of allDivs) { // Überspringe wenn es ein user-message ist @@ -697,30 +699,63 @@ class ClaudeChatInterface: if (elem.closest('[class*="sidebar"]')) continue; if (elem.closest('[class*="Sidebar"]')) continue; - // Hole den direkten Text-Inhalt (nicht von Kindern) + // Hole den direkten Text-Inhalt const text = (elem.innerText || '').trim(); - // Text muss mit "Claude sagt:" BEGINNEN (nicht irgendwo enthalten) - // Das filtert Container-Elemente raus die die ganze Seite enthalten + // Text muss mit "Claude sagt:" BEGINNEN if (text.startsWith('Claude sagt:') && text.length > 20 && text.length < 10000) { - msgs.push(elem); + // Suche nach dem übergeordneten Container (z.B. prose-Container) + // der auch [READY] enthalten könnte + let container = elem; + let parent = elem.parentElement; + + // Gehe nach oben bis wir einen guten Container finden + // (max 5 Ebenen, um nicht die ganze Seite zu erfassen) + for (let i = 0; i < 5 && parent; i++) { + const parentText = (parent.innerText || '').trim(); + + // Stoppe wenn wir einen zu großen Container erreichen + if (parentText.length > 15000) break; + + // Stoppe wenn wir in user-message oder Navigation sind + if (parent.getAttribute('data-testid') === 'user-message') break; + if (parent.closest('nav')) break; + + // Prüfe ob der Parent-Container [READY] enthält und + // immer noch mit "Claude sagt:" beginnt + if (parentText.startsWith('Claude sagt:') || + parentText.includes('[READY]') || + parent.classList.contains('prose') || + parent.classList.contains('markdown')) { + container = parent; + } + + parent = parent.parentElement; + } + + msgs.push(container); } } - // Dedupliziere: Behalte nur die INNERSTEN Elemente - // (die den Text direkt enthalten, nicht Container) - const filtered = msgs.filter(div => { - // Behalte dieses Element nur wenn es KEIN anderes Element enthält + // Dedupliziere: Behalte nur die ÄUSSERSTEN (größten) Container + // (aber nicht zu groß - max 10000 Zeichen) + const unique = []; + for (const div of msgs) { + // Prüfe ob dieses Element schon in einem anderen enthalten ist + let isDuplicate = false; for (const other of msgs) { - if (other !== div && div.contains(other)) { - // Dieses Element enthält ein anderes -> verwerfen (zu groß) - return false; + if (other !== div && other.contains(div)) { + // Dieses Element ist in einem anderen enthalten + isDuplicate = true; + break; } } - return true; - }); + if (!isDuplicate && !unique.includes(div)) { + unique.push(div); + } + } - return filtered; + return unique; """) or [] if found: claude_elements = found @@ -1059,6 +1094,56 @@ class ClaudeChatInterface: logger.info(f"[READY] in bestehender Claude-Nachricht gefunden!") return True + # FALLBACK 2: Direkte DOM-Suche nach [READY] + # Claude.ai rendert [READY] manchmal in einem separaten Element + # das nicht als Teil der "Claude sagt:" Nachricht erkannt wird + try: + ready_found = self.driver.execute_script(""" + // Suche nach einem Element das EXAKT "[READY]" enthält + // WICHTIG: Muss NICHT in user-message sein und NICHT in den Instruktionen + const allElements = document.querySelectorAll('*'); + for (const elem of allElements) { + // Nur Blatt-Elemente (keine Container mit Kindern) + if (elem.children.length > 0) continue; + + const text = (elem.innerText || elem.textContent || '').trim(); + + // Muss [READY] enthalten + if (!text.includes('[READY]')) continue; + + // Prüfe dass es NICHT in user-message ist + if (elem.closest('[data-testid="user-message"]')) continue; + + // Prüfe dass es NICHT in der Sidebar ist + if (elem.closest('nav')) continue; + if (elem.closest('[class*="sidebar"]')) continue; + + // Wichtig: Text darf NICHT mit "## WICHTIG" beginnen + // (das wäre ein Heading in den Instruktionen) + if (text.startsWith('## WICHTIG') || text.startsWith('**WICHTIG')) continue; + + // Text darf nicht "Bestätige mit [READY]" enthalten + // (das wäre eine Anweisung, keine Bestätigung) + if (text.includes('Bestätige mit')) continue; + if (text.includes('antworte mit')) continue; + if (text.includes('Format muss EXAKT')) continue; + + // Wenn der Text kurz ist (<100 Zeichen), ist es wahrscheinlich + // Claudes echte [READY] Bestätigung + // Wenn er lang ist, ist es wahrscheinlich ein Container der Instruktionen enthält + if (text.length > 200) continue; + + console.log('Found [READY] in:', text.substring(0, 50)); + return true; + } + return false; + """) + if ready_found: + logger.info(f"[READY] via direkte DOM-Suche gefunden!") + return True + except Exception as e: + logger.debug(f"DOM-Suche nach [READY] fehlgeschlagen: {e}") + # Kurz warten bevor nächster Check time.sleep(1)