jameson512
Upload files via LFS
1f235c3
Raw
History Blame Contribute Delete
2.79 kB
from PySide6 import QtWidgets
from PySide6.QtGui import QIcon, Qt
from PySide6.QtWidgets import (
QDialog, QLabel, QLineEdit, QVBoxLayout, QHBoxLayout, QPushButton
)
from videotrans.configure.config import ROOT_DIR, tr, app_cfg, settings
from videotrans.util import tools
class SetThreadProxy(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.resize(400, 250)
self.setWindowIcon(QIcon(f"{ROOT_DIR}/videotrans/styles/icon.ico"))
# 布局
layout = QVBoxLayout()
# layout 顶部对齐
layout.setAlignment(Qt.AlignTop)
# 创建标签和输入框
self.label = QLabel(tr("Setting up a network proxy"))
self.input = QLineEdit()
self.input.setText(str(app_cfg.proxy or ''))
num_layout = QHBoxLayout()
num_layout.addWidget(self.label)
num_layout.addWidget(self.input)
layout.addLayout(num_layout)
self.setWindowTitle(tr("Setting up a network proxy"))
# 创建按钮
self.ok_button = QPushButton(tr("Save"))
self.ok_button.clicked.connect(self.check_proxy) # 点击OK按钮后关闭对话框
# 设置确认按钮高度为35
self.ok_button.setFixedHeight(35)
layout.addWidget(self.ok_button)
help_btn = QtWidgets.QPushButton()
help_btn.setStyleSheet("background-color: rgba(255, 255, 255,0);color:#777777")
help_btn.setObjectName("help_btn")
help_btn.setCursor(Qt.PointingHandCursor)
help_btn.setText(tr("Help document"))
help_btn.clicked.connect(lambda: tools.open_url(url='https://pyvideotrans.com/proxy'))
layout.addWidget(help_btn)
self.setLayout(layout)
def check_proxy(self):
proxy = self.input.text().strip()
if proxy:
import re
if not re.match(r'^(http|sock)', proxy, re.I):
proxy = f'http://{proxy}'
if not re.match(r'^(http|sock)(s|5)?://(\d+\.){3}\d+:\d+', proxy, re.I):
question = tools.show_popup(
tr("Please make sure the proxy address is correct"), tr('The network proxy address you fill in seems to be incorrect, the general proxy/vpn format is http://127.0.0.1:port, if you do not know what is the proxy please do not fill in arbitrarily, ChatGPT and other api address please fill in the menu - settings - corresponding configuration. If you confirm that the proxy address is correct, please click Yes to continue.'))
if question != QtWidgets.QMessageBox.Yes:
return False
settings['proxy']=proxy
settings.save()
self.accept()
def get_values(self):
proxy = self.input.text().strip()
return proxy