init
This commit is contained in:
206
app/ui/tool/get_bias_addr/getBiasAddrUi.py
Normal file
206
app/ui/tool/get_bias_addr/getBiasAddrUi.py
Normal file
@@ -0,0 +1,206 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'getBiasAddrUi.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.10
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_Form(object):
|
||||
def setupUi(self, Form):
|
||||
Form.setObjectName("Form")
|
||||
Form.resize(650, 580)
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(Form)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.scrollArea = QtWidgets.QScrollArea(Form)
|
||||
self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
|
||||
self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||
self.scrollArea.setWidgetResizable(True)
|
||||
self.scrollArea.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.scrollArea.setObjectName("scrollArea")
|
||||
self.scrollAreaWidgetContents = QtWidgets.QWidget()
|
||||
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 632, 562))
|
||||
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.label_4 = QtWidgets.QLabel(self.scrollAreaWidgetContents)
|
||||
self.label_4.setMaximumSize(QtCore.QSize(16777215, 20))
|
||||
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalLayout_3.addWidget(self.label_4)
|
||||
self.widget = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||
self.widget.setStyleSheet("QWidget{\n"
|
||||
" background-color:rgb(251,251,251);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"QPushButton{\n"
|
||||
" background-color: rgb(250,252,253);\n"
|
||||
" border-radius: 5px;\n"
|
||||
" padding: 8px;\n"
|
||||
" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
"}\n"
|
||||
"QPushButton:hover { \n"
|
||||
" background-color: lightgray;\n"
|
||||
"}")
|
||||
self.widget.setObjectName("widget")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.label = QtWidgets.QLabel(self.widget)
|
||||
self.label.setMinimumSize(QtCore.QSize(80, 0))
|
||||
self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||
self.label.setObjectName("label")
|
||||
self.horizontalLayout.addWidget(self.label)
|
||||
self.lineEdit_tel = QtWidgets.QLineEdit(self.widget)
|
||||
self.lineEdit_tel.setObjectName("lineEdit_tel")
|
||||
self.horizontalLayout.addWidget(self.lineEdit_tel)
|
||||
self.verticalLayout_3.addWidget(self.widget)
|
||||
self.widget_3 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||
self.widget_3.setStyleSheet("QWidget{\n"
|
||||
" background-color:rgb(251,251,251);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"QPushButton{\n"
|
||||
" background-color: rgb(250,252,253);\n"
|
||||
" border-radius: 5px;\n"
|
||||
" padding: 8px;\n"
|
||||
" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
"}\n"
|
||||
"QPushButton:hover { \n"
|
||||
" background-color: lightgray;\n"
|
||||
"}")
|
||||
self.widget_3.setObjectName("widget_3")
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_3)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.label_2 = QtWidgets.QLabel(self.widget_3)
|
||||
self.label_2.setMinimumSize(QtCore.QSize(80, 0))
|
||||
self.label_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.horizontalLayout_3.addWidget(self.label_2)
|
||||
self.lineEdit_wx_alias = QtWidgets.QLineEdit(self.widget_3)
|
||||
self.lineEdit_wx_alias.setObjectName("lineEdit_wx_alias")
|
||||
self.horizontalLayout_3.addWidget(self.lineEdit_wx_alias)
|
||||
self.verticalLayout_3.addWidget(self.widget_3)
|
||||
self.widget_4 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||
self.widget_4.setStyleSheet("QWidget{\n"
|
||||
" background-color:rgb(251,251,251);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"QPushButton{\n"
|
||||
" background-color: rgb(250,252,253);\n"
|
||||
" border-radius: 5px;\n"
|
||||
" padding: 8px;\n"
|
||||
" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
"}\n"
|
||||
"QPushButton:hover { \n"
|
||||
" background-color: lightgray;\n"
|
||||
"}")
|
||||
self.widget_4.setObjectName("widget_4")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_4)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.label_3 = QtWidgets.QLabel(self.widget_4)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(80, 0))
|
||||
self.label_3.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.horizontalLayout_4.addWidget(self.label_3)
|
||||
self.lineEdit_wx_name = QtWidgets.QLineEdit(self.widget_4)
|
||||
self.lineEdit_wx_name.setObjectName("lineEdit_wx_name")
|
||||
self.horizontalLayout_4.addWidget(self.lineEdit_wx_name)
|
||||
self.verticalLayout_3.addWidget(self.widget_4)
|
||||
self.btn_get_bias_addr = QtWidgets.QPushButton(self.scrollAreaWidgetContents)
|
||||
self.btn_get_bias_addr.setObjectName("btn_get_bias_addr")
|
||||
self.verticalLayout_3.addWidget(self.btn_get_bias_addr)
|
||||
self.widget_2 = QtWidgets.QWidget(self.scrollAreaWidgetContents)
|
||||
self.widget_2.setStyleSheet("QWidget{\n"
|
||||
" background-color:rgb(251,251,251);\n"
|
||||
" border-radius: 10px;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"QPushButton{\n"
|
||||
" background-color: rgb(250,252,253);\n"
|
||||
" border-radius: 5px;\n"
|
||||
" padding: 8px;\n"
|
||||
" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n"
|
||||
"}\n"
|
||||
"QPushButton:hover { \n"
|
||||
" background-color: lightgray;\n"
|
||||
"}")
|
||||
self.widget_2.setObjectName("widget_2")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_2)
|
||||
self.horizontalLayout_2.setContentsMargins(9, -1, -1, -1)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.commandLinkButton = QtWidgets.QCommandLinkButton(self.widget_2)
|
||||
self.commandLinkButton.setEnabled(True)
|
||||
self.commandLinkButton.setTabletTracking(False)
|
||||
self.commandLinkButton.setFocusPolicy(QtCore.Qt.StrongFocus)
|
||||
self.commandLinkButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
|
||||
self.commandLinkButton.setToolTipDuration(-1)
|
||||
self.commandLinkButton.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.commandLinkButton.setAutoFillBackground(False)
|
||||
self.commandLinkButton.setCheckable(False)
|
||||
self.commandLinkButton.setChecked(False)
|
||||
self.commandLinkButton.setAutoRepeat(False)
|
||||
self.commandLinkButton.setAutoExclusive(False)
|
||||
self.commandLinkButton.setAutoDefault(False)
|
||||
self.commandLinkButton.setDefault(False)
|
||||
self.commandLinkButton.setObjectName("commandLinkButton")
|
||||
self.horizontalLayout_2.addWidget(self.commandLinkButton)
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem)
|
||||
self.label_error_log = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_error_log.sizePolicy().hasHeightForWidth())
|
||||
self.label_error_log.setSizePolicy(sizePolicy)
|
||||
self.label_error_log.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||
self.label_error_log.setObjectName("label_error_log")
|
||||
self.horizontalLayout_2.addWidget(self.label_error_log)
|
||||
self.checkBox_send_error_log = QtWidgets.QCheckBox(self.widget_2)
|
||||
self.checkBox_send_error_log.setText("")
|
||||
self.checkBox_send_error_log.setIconSize(QtCore.QSize(64, 64))
|
||||
self.checkBox_send_error_log.setChecked(True)
|
||||
self.checkBox_send_error_log.setObjectName("checkBox_send_error_log")
|
||||
self.horizontalLayout_2.addWidget(self.checkBox_send_error_log)
|
||||
self.verticalLayout_3.addWidget(self.widget_2)
|
||||
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
|
||||
self.verticalLayout.addWidget(self.scrollArea)
|
||||
|
||||
self.retranslateUi(Form)
|
||||
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||
|
||||
def retranslateUi(self, Form):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Form.setWindowTitle(_translate("Form", "Form"))
|
||||
self.label_4.setText(_translate("Form", "为避免输入错误,下面信息请从微信里复制"))
|
||||
self.label.setText(_translate("Form", "手机号:"))
|
||||
self.lineEdit_tel.setPlaceholderText(_translate("Form", "填入微信绑定的手机号"))
|
||||
self.label_2.setText(_translate("Form", "微信号:"))
|
||||
self.lineEdit_wx_alias.setPlaceholderText(_translate("Form", "填入您的微信号"))
|
||||
self.label_3.setText(_translate("Form", "微信昵称:"))
|
||||
self.lineEdit_wx_name.setPlaceholderText(_translate("Form", "填入您的微信昵称"))
|
||||
self.btn_get_bias_addr.setText(_translate("Form", "获取信息"))
|
||||
self.commandLinkButton.setText(_translate("Form", "收集版本信息"))
|
||||
self.commandLinkButton.setDescription(_translate("Form", "需要收集微信版本信息以支持更多用户"))
|
||||
self.label_error_log.setText(_translate("Form", "开"))
|
||||
146
app/ui/tool/get_bias_addr/get_bias_addr.py
Normal file
146
app/ui/tool/get_bias_addr/get_bias_addr.py
Normal file
@@ -0,0 +1,146 @@
|
||||
import json
|
||||
import os.path
|
||||
from urllib.parse import urljoin
|
||||
|
||||
import requests
|
||||
from PyQt5.QtCore import pyqtSignal, QThread
|
||||
from PyQt5.QtWidgets import QWidget, QMessageBox
|
||||
|
||||
from app.components.QCursorGif import QCursorGif
|
||||
from app.config import SERVER_API_URL
|
||||
from app.decrypt.get_bias_addr import BiasAddr
|
||||
from .getBiasAddrUi import Ui_Form
|
||||
|
||||
Stylesheet = """
|
||||
QPushButton{
|
||||
background-color: rgb(250,252,253);
|
||||
border-radius: 5px;
|
||||
padding: 8px;
|
||||
border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */
|
||||
border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */
|
||||
border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */
|
||||
border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: lightgray;
|
||||
}
|
||||
/*去掉item虚线边框*/
|
||||
QListWidget, QListView, QTreeWidget, QTreeView {
|
||||
outline: 0px;
|
||||
border:none;
|
||||
}
|
||||
/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/
|
||||
QListWidget {
|
||||
min-width: 400px;
|
||||
max-width: 400px;
|
||||
min-height: 80px;
|
||||
max-height: 80px;
|
||||
color: black;
|
||||
border:none;
|
||||
}
|
||||
QListWidget::item{
|
||||
min-width: 80px;
|
||||
max-width: 400px;
|
||||
min-height: 80px;
|
||||
max-height: 80px;
|
||||
}
|
||||
/*被选中时的背景颜色和左边框颜色*/
|
||||
QListWidget::item:selected {
|
||||
border-left:none;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
QCheckBox::indicator {
|
||||
background: rgb(251, 251, 251);
|
||||
Width:60px;
|
||||
Height:60px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
QCheckBox::indicator:unchecked{
|
||||
Width:60px;
|
||||
Height:60px;
|
||||
image: url(:/icons/icons/按钮_关闭.svg);
|
||||
}
|
||||
QCheckBox::indicator:checked{
|
||||
Width:60px;
|
||||
Height:60px;
|
||||
image: url(:/icons/icons/按钮_开启.svg);
|
||||
}
|
||||
|
||||
"""
|
||||
|
||||
|
||||
class GetBiasAddrControl(QWidget, Ui_Form, QCursorGif):
|
||||
biasAddrSignal = pyqtSignal(dict)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super(GetBiasAddrControl, self).__init__(parent)
|
||||
self.thread = None
|
||||
self.setStyleSheet(Stylesheet)
|
||||
self.setupUi(self)
|
||||
self.init_ui()
|
||||
|
||||
def init_ui(self):
|
||||
self.initCursor([':/icons/icons/Cursors/%d.png' %
|
||||
i for i in range(8)], self)
|
||||
self.setCursorTimeout(100)
|
||||
self.btn_get_bias_addr.clicked.connect(self.get_bias_addr)
|
||||
self.commandLinkButton.clicked.connect(self.show_info)
|
||||
self.checkBox_send_error_log.clicked.connect(self.set_error_log)
|
||||
|
||||
def set_error_log(self):
|
||||
if self.checkBox_send_error_log.isChecked():
|
||||
self.label_error_log.setText('开')
|
||||
else:
|
||||
self.label_error_log.setText('关')
|
||||
|
||||
def show_info(self):
|
||||
QMessageBox.information(self, "收集版本信息",
|
||||
"为了适配更多版本,需要收集微信的版本信息,该操作不会上传包括手机号、微信号、昵称等在内的任何信息\n示例数据:\n\"3.9.9.27\": [68065304, 0, 68065112, 0, 68066576]"
|
||||
)
|
||||
|
||||
def upload(self, version_data):
|
||||
url = urljoin(SERVER_API_URL, 'wxBiasAddr')
|
||||
try:
|
||||
requests.post(url, json={'bias_dict': version_data})
|
||||
print('版本信息上传成功')
|
||||
except:
|
||||
pass
|
||||
|
||||
def get_bias_addr(self):
|
||||
account = self.lineEdit_wx_alias.text()
|
||||
mobile = self.lineEdit_tel.text()
|
||||
name = self.lineEdit_wx_name.text()
|
||||
if not all([account, mobile, name]):
|
||||
QMessageBox.critical(self, "错误",
|
||||
"请把所有信息填写完整")
|
||||
return
|
||||
key = None
|
||||
db_path = "test"
|
||||
self.startBusy()
|
||||
self.thread = MyThread(account, mobile, name, key, db_path)
|
||||
self.thread.signal.connect(self.set_bias_addr)
|
||||
self.thread.start()
|
||||
|
||||
def set_bias_addr(self, data):
|
||||
if self.checkBox_send_error_log.isChecked():
|
||||
self.upload(data)
|
||||
self.stopBusy()
|
||||
self.biasAddrSignal.emit(data)
|
||||
|
||||
|
||||
class MyThread(QThread):
|
||||
signal = pyqtSignal(dict)
|
||||
|
||||
def __init__(self, account, mobile, name, key, db_path):
|
||||
super(MyThread, self).__init__()
|
||||
self.account = account
|
||||
self.mobile = mobile
|
||||
self.name = name
|
||||
self.key = key
|
||||
self.db_path = db_path
|
||||
|
||||
def run(self):
|
||||
bias_addr = BiasAddr(self.account, self.mobile, self.name, self.key, self.db_path)
|
||||
data = bias_addr.run(logging_path=True)
|
||||
self.signal.emit(data)
|
||||
Reference in New Issue
Block a user