from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply from PyQt5.QtCore import QUrl, QByteArray from PyQt5.QtGui import QPixmap import json class KartOkumaSistemi(QWidget): def __init__(self): super().__init__() # Diğer ayarlar ve yapılandırmalar... self.network_manager = QNetworkAccessManager(self) # API İstekleri için self.network_manager.finished.connect(self.api_cevabi_isle) # Geri kalan kod... def kart_okuma(self): """Kart okuma işlemini gerçekleştir ve API'ye gönder.""" try: id, veri = self.reader.read() mevcut_zaman = datetime.now().strftime("%Y-%m-%d %H:%M:%S") try: isim, birim = veri.split("-", 1) except ValueError: isim = veri birim = "Birim bilgisi yok" # API'ye gönderilecek veri api_url = "https://pdks.damargrup.com/api/kayitoku" veri = { "id": id, "time": mevcut_zaman } json_data = QByteArray(json.dumps(veri).encode('utf-8')) request = QNetworkRequest(QUrl(api_url)) request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") self.network_manager.post(request, json_data) # API'ye POST isteği gönder except Exception as e: print("Kart okuma hatası:", e) def api_cevabi_isle(self, reply: QNetworkReply): """API'den gelen yanıtı işle.""" if reply.error() == QNetworkReply.NoError: data = json.loads(reply.readAll().data().decode('utf-8')) if data['status'] == 'success': # API'den gelen bilgileri arayüze yerleştir personel_bilgileri = data['message'] self.isim_label.setText(f"İsim: {personel_bilgileri['name']}") self.birim_label.setText(f"Birim: {personel_bilgileri['birim']}") self.kart_id_label.setText(f"Kart ID: {personel_bilgileri['kart_id']}") self.giris_saati_label.setText(f"Giriş Saati: {personel_bilgileri['giris_saati']}") # Profil fotoğrafını yükle profil_url = personel_bilgileri.get('profil_fotografi', None) if profil_url: self.set_profile_image(profil_url) # Buzzer'ı çaldır self.buzzer_beep() else: self.kart_bilgi_label.setText(f"Hata: {data['message']}") else: print("API Hatası:", reply.errorString()) self.kart_bilgi_label.setText("API bağlantısı hatası") reply.deleteLater() def set_profile_image(self, image_url): """Profil fotoğrafını yükle ve göster.""" try: pixmap = QPixmap() pixmap.loadFromData(requests.get(image_url).content) self.profile_image_label.setPixmap(pixmap.scaled(80, 80, Qt.KeepAspectRatio, Qt.SmoothTransformation)) except Exception as e: print("Profil fotoğrafı yükleme hatası:", e)