fix(codex-bridge): preserve tool model and stream preparation without Jev fallback

This commit is contained in:
yilsem committed 2026-10-11 15:51:43 +03:00
1 parent 8fbbe226db
commit 3726d2a553
6 files changed
+118 -14

No files matched your search

+16 -1
View File
@@ -13,6 +13,7 @@ import re
import sys
import urllib.parse
import urllib.request
import xml.etree.ElementTree as ET
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36"
ARAMA = "https://html.duckduckgo.com/html/?"
@@ -73,7 +74,21 @@ def ara(sorgu, adet=8, indirici=indir):
sayfa, _ = indirici(ARAMA + urllib.parse.urlencode({"q": sorgu}))
sonuc = sonuclari_coz(sayfa, adet)
if not sonuc:
return "Sonuç bulunamadı. Sorguyu daha kısa ya da farklı sözcüklerle yeniden dene."
if 'no-results' in sayfa.lower() or 'no results found' in sayfa.lower():
return "Sonuç bulunamadı. En fazla bir farklı sorgu deneyebilirsin."
# DDG bot kontrolünü/bozuk HTML'yi sonuç yok diye göstermeyiz. Tek yedek istek.
try:
rss, _ = indirici('https://www.bing.com/search?' + urllib.parse.urlencode({'format': 'rss', 'q': sorgu}))
kok = ET.fromstring(rss)
if kok.tag != 'rss' or kok.find('channel') is None:
raise ValueError('RSS arama yanıtı değil')
sonuc = [(i.findtext('title') or '', i.findtext('link') or '', _duz(i.findtext('description') or ''))
for i in kok.findall('./channel/item')
if (i.findtext('link') or '').startswith(('https://', 'http://'))][:adet]
except (ValueError, ET.ParseError, OSError) as hata:
raise RuntimeError('Arama hizmeti engellendi veya yanıtı okunamadı; sorguları değiştirerek tekrar etme.') from hata
if not sonuc:
return "Sonuç bulunamadı. En fazla bir farklı sorgu deneyebilirsin."
return "\n\n".join(f"{i}. {b}\n {a}\n {o}" for i, (b, a, o) in enumerate(sonuc, 1))