π Title: Clone Any GitHub Repo with 1 Click – FuzzuTech Python GUI App
Demo :
Click Video πππ
Description: Clone GitHub repos with a single click using this powerful Python GUI app by FuzzuTech. Offline, fast, and hacker-style interface!
π Features:
-
Clone GitHub repos offline
-
Threaded GUI operations
-
tkinter + customtkinter interface
-
Dark mode GUI
-
Python subprocess integration
Code :
import tkinter as tk
import customtkinter as ctk
from tkinter import messagebox
import subprocess
import os
import threading
# === Configure CTk Appearance ===
ctk.set_appearance_mode("Dark")
ctk.set_default_color_theme("blue")
# === Create Main Window ===
app = ctk.CTk()
app.title("GitHub Repo Downloader")
app.geometry("500x350")
app.resizable(False, False)
# === Function to Clone GitHub Repo (in separate thread) ===
def clone_repo():
repo_url = url_entry.get()
download_path = path_entry.get()
if not repo_url.strip() or not download_path.strip():
messagebox.showwarning("Input Error", "Please fill in all fields.")
return
# Show Preloader
preloader_label.configure(text="⏳ Processing... Please wait")
download_button.configure(state="disabled")
def do_clone():
try:
os.makedirs(download_path, exist_ok=True)
subprocess.run(["git", "clone", repo_url], cwd=download_path, check=True)
preloader_label.configure(text="")
messagebox.showinfo("Success", "Repository cloned successfully!")
except subprocess.CalledProcessError:
preloader_label.configure(text="")
messagebox.showerror("Git Error", "Failed to clone repository. Check the URL.")
except Exception as e:
preloader_label.configure(text="")
messagebox.showerror("Error", str(e))
finally:
download_button.configure(state="normal")
threading.Thread(target=do_clone).start()
# === UI Components ===
title_label = ctk.CTkLabel(app, text="GitHub Repo Downloader", font=ctk.CTkFont(size=22, weight="bold"))
title_label.pack(pady=(20, 10))
url_label = ctk.CTkLabel(app, text="Enter GitHub Repo URL:")
url_label.pack(anchor="w", padx=40, pady=(10, 0))
url_entry = ctk.CTkEntry(app, placeholder_text="https://github.com/username/repo", width=400)
url_entry.pack(pady=5)
path_label = ctk.CTkLabel(app, text="Enter Download Folder Path:")
path_label.pack(anchor="w", padx=40, pady=(10, 0))
path_entry = ctk.CTkEntry(app, placeholder_text="C:/Users/YourName/Downloads", width=400)
path_entry.pack(pady=5)
download_button = ctk.CTkButton(app, text="Download Repository", command=clone_repo)
download_button.pack(pady=20)
# π Preloader Label (Hidden Initially)
preloader_label = ctk.CTkLabel(app, text="", font=ctk.CTkFont(size=14, slant="italic"))
preloader_label.pack()
footer = ctk.CTkLabel(app, text="Developed by FuzzuTech", font=ctk.CTkFont(size=12))
footer.pack(side="bottom", pady=10)
# === Run the App ===
app.mainloop()
Comments
Post a Comment