from contextlib import suppress class NobetciEczane: def __init__(self, il:str, ilce:str): """il ve ilçe bilgisini eczaneler.gen.tr'de arayarak bs4'ile ayrıştırır.""" il = il.replace("İ", "i").lower() ilce = ilce.lower() tr2eng = str.maketrans(" .,-*/+-ıİüÜöÖçÇşŞğĞ", "________iIuUoOcCsSgG") il = il.translate(tr2eng) ilce = ilce.translate(tr2eng) self.kaynak = "eczaneler.gen.tr" self.kimlik = { # <-- Bu kısmı ekledik "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} istek = get(f"https://www.{self.kaynak}/nobetci-{il}-{ilce}", headers=self.kimlik) corba = BeautifulSoup(istek.content, "lxml") bugun = corba.find("div", id="nav-bugun") eczane_json = {"kaynak": self.kaynak, "veri" : []} with suppress(AttributeError): for bak in bugun.findAll("tr")[1:]: ad = bak.find("span", class_="isim").text mah = (None if bak.find("div", class_="my-2") is None else bak.find("div", class_="my-2").text) adres = bak.find("div", class_="col-lg-6").text.split("(")[0] tarif = (None if bak.find("span", class_="text-secondary font-italic") is None else bak.find("span", class_="text-secondary font-italic").text) telf = bak.find("div", class_="col-lg-3 py-lg-2").text eczane_json["veri"].append({ "ad" : ad, "mahalle" : mah, "adres" : adres, "tarif" : tarif, "telefon" : telf }) self.veri = eczane_json["veri"] if eczane_json["veri"] else None @jarviss.on(events.NewMessage(pattern='/nobetci (.+) (.+)')) async def handle_nobetci_command(event): komut, il_ilce = event.raw_text.split(' ', 1) il, ilce = il_ilce.split(' ', 1) # Kullanıcıdan eksik bilgi girilirse uyarı mesajı gönderin if not il or not ilce: message = "❌ Hatalı Kullanım Lütfen Geçerli Bir İl ve İlçe Yazın\n\n✅ Doğru Kullanım:\n\n `/nobetci İstanbul Avcılar`" await event.reply(message) return # NobetciEczane verilerini alın nobetci_eczane = NobetciEczane(il=il, ilce=ilce) veriler = nobetci_eczane.veri # Eczaneler hakkında mesajı oluşturun message = f"📍 {il.capitalize()} - {ilce.capitalize()} İlçesi\nNöbetçi Eczane Bilgileri:\n" for eczane in veriler: message += f"Ad: {eczane['ad']}\n\n" message += f"Mahalle: {eczane['mahalle']}\n\n" message += f"Adres: {eczane['adres']}\n\n" message += f"Tarif: __{eczane['tarif']}__\n\n" message += f"Telefon: __{eczane['telefon']}__\n\n" # Mesajı gönderin await event.reply(message)