Add alpha and beta versions

This commit is contained in:
2026-05-24 13:51:49 +03:00
commit 12ee7eee2d
27 changed files with 1305 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
import tkinter as tk
from tkinter import messagebox
from api import get_repo_data, get_commits, get_code_lines
from parser import parse_repo_info, parse_authors
class GiteaAnalyzer:
def __init__(self):
self.root = tk.Tk()
self.root.title("Gitea Analyzer")
self.root.geometry("1000x700")
self.root.minsize(850, 600)
self.root.configure(bg="#eef4ff")
self.build_interface()
self.root.mainloop()
def build_interface(self):
title = tk.Label(
self.root,
text="Gitea Repository Analyzer",
font=("Arial", 22, "bold"),
bg="#eef4ff",
fg="#1d3557",
)
title.pack(pady=(20, 5))
subtitle = tk.Label(
self.root,
text="Введите ссылку на репозиторий Gitea и получите информацию о нём",
font=("Arial", 12),
bg="#eef4ff",
fg="#333333",
)
subtitle.pack(pady=(0, 15))
input_frame = tk.Frame(self.root, bg="#eef4ff")
input_frame.pack(fill="x", padx=30)
self.repo_entry = tk.Entry(input_frame, font=("Arial", 12))
self.repo_entry.pack(side="left", fill="x", expand=True, ipady=6)
self.repo_entry.insert(0, "https://iux-gitea.myddns.me/owner/repo")
self.repo_entry.bind("<FocusIn>", self.clear_placeholder)
self.repo_entry.bind("<Return>", lambda event: self.analyze())
analyze_button = tk.Button(
input_frame,
text="Анализировать",
command=self.analyze,
bg="#4d8ee8",
fg="white",
font=("Arial", 11, "bold"),
relief="flat",
padx=20,
pady=7,
cursor="hand2",
)
analyze_button.pack(side="left", padx=(10, 0))
self.result_text = tk.Text(
self.root,
font=("Consolas", 11),
wrap="word",
state="disabled",
bg="#ffffff",
fg="#111111",
)
self.result_text.pack(fill="both", expand=True, padx=30, pady=20)
def clear_placeholder(self, event):
if self.repo_entry.get() == "https://iux-gitea.myddns.me/owner/repo":
self.repo_entry.delete(0, tk.END)
def set_text(self, text):
self.result_text.config(state="normal")
self.result_text.delete("1.0", tk.END)
self.result_text.insert(tk.END, text)
self.result_text.config(state="disabled")
def analyze(self):
repo_link = self.repo_entry.get().strip()
if not repo_link or repo_link == "https://iux-gitea.myddns.me/owner/repo":
messagebox.showerror("Ошибка", "Введите ссылку на репозиторий")
return
try:
self.set_text("Загрузка данных...\n")
self.root.update()
repo_data = get_repo_data(repo_link)
commits = get_commits(repo_link)
lines = get_code_lines(repo_link)
info = parse_repo_info(repo_data)
authors = parse_authors(commits)
output = []
output.append(f"Ссылка: {repo_link}\n")
output.append(info)
output.append("\nАвторы / соавторы по коммитам:\n")
if authors:
for author in sorted(authors):
output.append(f"- {author}\n")
else:
output.append("- нет данных\n")
output.append(f"\nСтрок Python-кода: {lines}\n")
self.set_text("".join(output))
except Exception as error:
self.set_text("")
messagebox.showerror("Ошибка", f"Не удалось получить данные:\n{error}")
if __name__ == "__main__":
GiteaAnalyzer()