Amazing-Python-Scripts
71 строка · 1.7 Кб
1import tkinter as tk2from tkinter import messagebox3import os4import requests5
6
7def get_ext(url: str) -> str | None:8exts = [".png", ".jpeg", ".jpg"]9for ext in exts:10if ext in url:11return ext12return None13
14
15def download_img():16u = url_ent.get()17n = name_ent.get()18f = folder_ent.get()19
20if not u or not n or not f:21messagebox.showerror("Error", "Please fill in all fields.")22return23
24ext = get_ext(u)25if not ext:26messagebox.showerror("Error", "Invalid image URL.")27return28
29img_path = os.path.join(f, f"{n}{ext}")30
31if os.path.isfile(img_path):32messagebox.showerror(33"Error", "A file with the same name already exists.")34return35
36try:37img_content = requests.get(u).content38with open(img_path, "wb") as handler:39handler.write(img_content)40messagebox.showinfo("Success", f"Image downloaded to:\n{img_path}")41except Exception as e:42messagebox.showerror("Error", f"An error occurred: {e}")43
44
45root = tk.Tk()46root.title("Image Downloader")47root.configure(bg="#1e1e1e")48
49ul = tk.Label(root, text="Image URL:", bg="#1e1e1e", fg="white")50ul.pack(pady=5)51
52url_ent = tk.Entry(root, width=50)53url_ent.pack(pady=5)54
55nl = tk.Label(root, text="Image Name:", bg="#1e1e1e", fg="white")56nl.pack(pady=5)57
58name_ent = tk.Entry(root, width=50)59name_ent.pack(pady=5)60
61fl = tk.Label(root, text="Folder Path:", bg="#1e1e1e", fg="white")62fl.pack(pady=5)63
64folder_ent = tk.Entry(root, width=50)65folder_ent.pack(pady=5)66
67dl_btn = tk.Button(root, text="Download",68command=download_img, bg="#303030", fg="white")69dl_btn.pack(pady=10)70
71root.mainloop()72