shms adlı üyeden alıntı: mesajı görüntüle
kodu buraya yazin bakalım kodlarda sorun varmı ?
Hocam pes etmiştim en son ama buyurun birde siz inceleyin.
import os
import requests
import time
import tkinter as tk
from tkinter import messagebox, scrolledtext
from escpos.printer import Network

def save_credentials():
    new_token = token_entry.get()
    new_secret = secret_entry.get()
    # Dosyayı güncelleme modunda açıyoruz
    with open("credentials.txt", "w") as file:
        file.write(f"token = '{new_token}'\n")
        file.write(f"secret = '{new_secret}'\n")
    messagebox.showinfo("Bilgi", "Token ve secret bilgileri güncellendi.")

def print_receipts():
    response_text.delete(1.0, tk.END)  # Yanıt metnini temizle
    with open("credentials.txt", "r") as file:
        for line in file:
            if line.startswith("token"):
                token = line.split("=")[1].strip().strip("'")
            elif line.startswith("secret"):
                secret = line.split("=")[1].strip().strip("'")
    response_text.insert(tk.END, "**** PRINTER CLOUDA HOŞGELDİNİZ!\n")
    if token == "xxxxxxxxxxx":
        response_text.insert(tk.END, "Token ve Secret Bilgilerinizi giriniz.\n")
        messagebox.showwarning("Uyarı", "Token ve secret bilgilerini giriniz.")
        return
    api_url = (
        "https://*****.com/qr/inc/cloudorderPDF-windows.php?token="
        + token
        + "&secret="
        + secret
    )
    image_folder = "fis"  # Görsellerin kaydedileceği klasör
    fis_klasoru = "fis"
    if not os.path.exists(fis_klasoru):
        os.makedirs(fis_klasoru)
    while True:
        try:
            response = requests.get(api_url)
            if response.status_code == 200:
                data = response.json()
                if data is not None:
                    veriadedi = len(data)
                    for i in range(veriadedi):
                        try:
                            item = data[i]
                            if "giris" in item:
                                if item["giris"] is None:
                                    giris = 1
                                elif item["giris"] == 0:
                                    giris = 0
                                else:
                                    giris = 1
                            else:
                                giris = 1  # Varsayılan değer
                            if giris == 0:
                                response_text.insert(
                                    tk.END,
                                    "Giriş Yapılamadı. Token ve Secret Bilgilerinizi giriniz.\n",
                                )
                                messagebox.showwarning(
                                    "Uyarı", "Token ve secret bilgilerini giriniz."
                                )
                                return
                            else:
                                fis_img = item["fis_img"]
                                type = item["type"]
                                printers_key = item["printers_key"]
                                image_url = f"https://****.com/qr/inc/receiptpdf/{fis_img}.png"
                                if printers_key:
                                    if type == "1":
                                        # Network sınıfını kullanarak ağ yazıcısına bağlan
                                        printer = Network(
                                            printers_key, profile="CT-S651"
                                        )
                                    else:
                                        response_text.insert(
                                            tk.END, "Geçersiz 'type' değeri.\n"
                                        )
                                        continue  # Geçersiz bir 'type' değeri varsa bir sonraki işleme geç
                                    # Yazıcıya bir bip komutu gönder
                                    beep_command = b"\x1b\x42\x03\x03"  # Bipi kontrol etmek için değerleri ayarlayın
                                    printer._raw(beep_command)
                                    # Görseli indir
                                    response = requests.get(image_url)
                                    if response.status_code == 200:
                                        # Görseli "fis" klasörüne kaydet
                                        with open(
                                            os.path.join(fis_klasoru, fis_img + ".png"),
                                            "wb",
                                        ) as file:
                                            file.write(response.content)
                                    else:
                                        response_text.insert(
                                            tk.END, "Görsel indirilemedi.\n"
                                        )
                                    input_path = os.path.join(
                                        fis_klasoru, fis_img + ".png"
                                    )
                                    printer.image(input_path)
                                    # Görseli yazdır
                                    # Kağıdı kes
                                    printer.cut()
                                    # Bağlantıyı kapat
                                    printer.close()
                                else:
                                    response_text.insert(
                                        tk.END, "printers_key tanınmadı.\n"
                                    )
                        except Exception as e:
                            response_text.insert(tk.END, f"Hata oluştu: {str(e)}\n")
            else:
                response_text.insert(
                    tk.END, f"API isteği başarısız oldu: {response.status_code}\n"
                )
            time.sleep(1)
        except Exception as e:
            response_text.insert(tk.END, f"Hata oluştu: {str(e)}\n")

# Create the Tkinter window
window = tk.Tk()
window.title("**** Cloud Printer")
window.geometry("400x500")
# Create a button to trigger the printing
print_button = tk.Button(window, text="Çalıştır", command=print_receipts)
print_button.pack(pady=10)
# Create labels and entry fields for token and secret
token_label = tk.Label(window, text="Token:")
token_label.pack(pady=5)
token_entry = tk.Entry(window, width=40)
token_entry.pack(pady=5)
secret_label = tk.Label(window, text="Secret:")
secret_label.pack(pady=5)
secret_entry = tk.Entry(window, width=40)
secret_entry.pack(pady=5)
# Load the current token and secret values from credentials.txt
with open("credentials.txt", "r") as file:
    for line in file:
        if line.startswith("token"):
            token_value = line.split("=")[1].strip().strip("'")
            token_entry.insert(0, token_value)
        elif line.startswith("secret"):
            secret_value = line.split("=")[1].strip().strip("'")
            secret_entry.insert(0, secret_value)
# Create a button to save the entered credentials
save_button = tk.Button(window, text="Kaydet", command=save_credentials)
save_button.pack(pady=10)
# Create a scrolled text widget to display the responses
response_text = scrolledtext.ScrolledText(window, width=50, height=10)
response_text.pack(pady=10)
# Run the Tkinter event loop
window.mainloop()