-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.py
57 lines (50 loc) · 1.59 KB
/
utils.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
import chardet
import re
from tkinter import font
import platform
import os
import subprocess
from tkinter import filedialog
def detect_encoding(file_path):
with open(file_path, 'rb') as file:
raw_data = file.read()
result = chardet.detect(raw_data)
return result['encoding']
def remove_html(string):
regex = re.compile(r'<[^>]+>')
return regex.sub('', string)
def detect_font():
fonts = font.families()
if "Vazirmatn" in fonts:
return "Vazirmatn"
elif "Vazir" in fonts:
return "Vazir"
elif "Times New Roman" in fonts:
return "Times New Roman"
else:
return "Arial"
def open_github(url):
if platform.system() == 'Windows':
os.startfile(url)
elif platform.system() == 'Darwin':
subprocess.run(['open', url])
else:
subprocess.run(['xdg-open', url])
def get_file_via_file_manager():
if platform.system() == "Linux":
try:
file_path = subprocess.check_output(["zenity", "--file-selection"], universal_newlines=True).strip()
return file_path
except subprocess.CalledProcessError:
return None
else:
return filedialog.askopenfilename(filetypes=[("Subtitles", "*.srt *.ass *.ssa")])
def get_directory_via_file_manager():
if platform.system() == "Linux":
try:
directory = subprocess.check_output(["zenity", "--file-selection", "--directory"], universal_newlines=True).strip()
return directory
except subprocess.CalledProcessError:
return None
else:
return filedialog.askdirectory()