Import tkinter as tk
From tkinter import ttk, filedialog, messagebox
From search_engine import SearchEngine
From crawler import Crawler
From indexer import Indexer
Class App:
Def __init__(self, root):
Self.root = root
Self.root.title(„Moteur de recherche“)
Self.search_engine = SearchEngine()
Self.search_engine.load_index()
Self.crawler = Crawler(„“)
Self.indexer = Indexer()
Self.notebook = ttk.Notebook(self.root)
Self.notebook.pack(pady=10, expand=True)
Self.frame_search = tk.Frame(self.notebook)
Self.frame_crawler = tk.Frame(self.notebook)
Self.frame_indexer = tk.Frame(self.notebook)
Self.frame_settings = tk.Frame(self.notebook)
Self.notebook.add(self.frame_search, text=“Recherche“)
Self.notebook.add(self.frame_crawler, text=“Crawler“)
Self.notebook.add(self.frame_indexer, text=“Indexeur“)
Self.notebook.add(self.frame_settings, text=“Paramètres“)
Self.search_frame()
Self.crawler_frame()
Self.indexer_frame()
Self.settings_frame()
Def search_frame(self):
Tk.Label(self.frame_search, text=“Recherche“).pack()
Self.search_entry = tk.Entry(self.frame_search, width=50)
Self.search_entry.pack()
Tk.Button(self.frame_search, text=“Rechercher“,
command=self.search).pack()
Self.search_results = tk.Text(self.frame_search)
Self.search_results.pack()
Def crawler_frame(self):
Tk.Label(self.frame_crawler, text=“URL“).pack()
Self.crawler_entry = tk.Entry(self.frame_crawler, width=50)
Self.crawler_entry.pack()
Tk.Button(self.frame_crawler, text=“Crawler“,
command=self.crawl).pack()
Self.crawler_status = tk.Label(self.frame_crawler, text=““)
Self.crawler_status.pack()
Def indexer_frame(self):
Tk.Button(self.frame_indexer, text=“Indexer“,
command=self.index).pack()
Self.indexer_status = tk.Label(self.frame_indexer, text=““)
Self.indexer_status.pack()
Def settings_frame(self):
Tk.Label(self.frame_settings, text=“Paramètres“).pack()
Tk.Button(self.frame_settings, text=“Sauvegarder l’index“,
command=self.save_index).pack()
Def search(self):
Query = self.search_entry.get()
Results = self.search_engine.search(query)
Self.search_results.delete(1.0, tk.END)
Self.search_results.insert(tk.END, ‚\n‘.