-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
87 lines (66 loc) · 2.48 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import tkinter as tk
import configparser
from settings_ui import create_settings_frame
from subclip_ui import create_subclip_frame
from batch_tts_ui import create_batch_tts_frame
from main_ui import create_main_frame
from utils import load_settings
CONFIG_FILE = "settings.ini"
# Check if the config file exists
config = configparser.ConfigParser()
config.read(CONFIG_FILE)
# Create Tkinter window
root = tk.Tk()
root.title("Audio to SRT Converter, TTS Generator, and Subtitle Video Creator")
# Frames
main_frame = create_main_frame(root)
settings_frame, entry_api_key = create_settings_frame(root, main_frame)
subclip_frame = create_subclip_frame(root, main_frame)
batch_tts_frame = create_batch_tts_frame(root, main_frame)
def show_settings_page():
main_frame.pack_forget()
subclip_frame.pack_forget()
batch_tts_frame.pack_forget()
settings_frame.pack(padx=10, pady=10, fill="both", expand="yes")
load_settings(entry_api_key)
def show_main_page():
settings_frame.pack_forget()
subclip_frame.pack_forget()
batch_tts_frame.pack_forget()
main_frame.pack(padx=10, pady=10, fill="both", expand="yes")
def show_subclip_page():
main_frame.pack_forget()
settings_frame.pack_forget()
batch_tts_frame.pack_forget()
subclip_frame.pack(padx=10, pady=10, fill="both", expand="yes")
def show_batch_tts_page():
main_frame.pack_forget()
settings_frame.pack_forget()
subclip_frame.pack_forget()
batch_tts_frame.pack(padx=10, pady=10, fill="both", expand="yes")
# Menu bar
menu_bar = tk.Menu(root)
# Home menu
home_menu = tk.Menu(menu_bar, tearoff=0)
home_menu.add_command(label="Home", command=show_main_page)
menu_bar.add_cascade(label="Home", menu=home_menu)
# Create Video menu
create_video_menu = tk.Menu(menu_bar, tearoff=0)
create_video_menu.add_command(label="Create Video", command=show_subclip_page)
menu_bar.add_cascade(label="Create Video", menu=create_video_menu)
# Batch TTS menu
batch_tts_menu = tk.Menu(menu_bar, tearoff=0)
batch_tts_menu.add_command(label="Batch TTS", command=show_batch_tts_page)
menu_bar.add_cascade(label="Batch TTS", menu=batch_tts_menu)
# Settings menu
settings_menu = tk.Menu(menu_bar, tearoff=0)
settings_menu.add_command(label="Set OpenAI key", command=show_settings_page)
menu_bar.add_cascade(label="Settings", menu=settings_menu)
root.config(menu=menu_bar)
# Check config file
if config.has_option("Settings", "openai_key"):
show_main_page()
else:
show_settings_page()
# Start Tkinter main loop
root.mainloop()