# coding:utf-8
import os
import sys
import platform
import stat
from PyQt6.QtCore import Qt, QTranslator
from PyQt6.QtGui import QFont
from PyQt6.QtWidgets import QApplication
from qfluentwidgets import FluentTranslator

from gui.common.config import cfg
from gui.main_window import MainWindow
from fsplit.filesplit import Filesplit
from demeter.core import *
# 指定ffmpeg可执行程序路径
path = File.path() + 'command/'
sys_str = platform.system()
if sys_str == "Windows":
    ffmpeg_bin = os.path.join('windows', 'ffmpeg.exe')
    realesrgan_bin = os.path.join('windows', 'realesrgan-ncnn-vulkan.exe')
elif sys_str == "Linux":
    ffmpeg_bin = os.path.join('linux', 'ffmpeg')
    realesrgan_bin = os.path.join('linux', 'realesrgan-ncnn-vulkan')
else:
    ffmpeg_bin = os.path.join('macos', 'ffmpeg')
    realesrgan_bin = os.path.join('macos', 'realesrgan-ncnn-vulkan')
Demeter.ffmpeg = os.path.join(path, '', 'ffmpeg', ffmpeg_bin)
Demeter.realesrgan = os.path.join(path, '', 'realesrgan', realesrgan_bin)
Demeter.split = True
os.chmod(Demeter.ffmpeg, stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO)
os.chmod(Demeter.realesrgan, stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO)

# 设置环境变量
os.environ["PATH"] += os.pathsep + Demeter.ffmpeg
os.environ["PATH"] += os.pathsep + Demeter.realesrgan

# enable dpi scale
if cfg.get(cfg.dpiScale) == "Auto":
    QApplication.setHighDpiScaleFactorRoundingPolicy(
        Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
else:
    os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "0"
    os.environ["QT_SCALE_FACTOR"] = str(cfg.get(cfg.dpiScale))

# create application
app = QApplication(sys.argv)

# internationalization
locale = cfg.get(cfg.language).value
translator = FluentTranslator(locale)
galleryTranslator = QTranslator()
galleryTranslator.load(locale, "gallery", ".", ":/gallery/i18n")

app.installTranslator(translator)
app.installTranslator(galleryTranslator)
# create main window
w = MainWindow()
w.show()

app.exec()