吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1745|回复: 27
上一主题 下一主题
收起左侧

[Python 原创] 好分数

[复制链接]
跳转到指定楼层
楼主
nuz 发表于 2024-7-26 10:18 回帖奖励
学校使用流氓好分数查分,花钱才能查看排名。
本软件能够快速查看考试排名,年级排名信息。
排行榜功能可以快速看到朋友的成绩,前提是别人愿意给你他的账号


下载地址:https://www.123pan.com/s/z8tSVv-JnoQH.html

https://setup.lanzouv.com/iZKHu25ka98f    密码00

屏幕截图:


源代码:
[Python] 纯文本查看 复制代码
from PySide6.QtCore import (QCoreApplication,    QMetaObject, QRect,
    QSize,QThread,Signal)
from PySide6.QtWidgets import (QApplication, QFormLayout, QFrame, QGridLayout,
    QGroupBox, QHBoxLayout, QLabel,
    QMainWindow, QMenuBar, QProgressBar, QSizePolicy,
    QSpacerItem, QStackedWidget, QStatusBar, QVBoxLayout,
    QWidget, QMessageBox)
import sys,requests,time,os,base64,pathlib,random,locale
from qfluentwidgets import (BodyLabel, ComboBox, LineEdit, ListWidget,
    PushButton, TextEdit)
locale.setlocale(locale.LC_CTYPE, "Chinese")
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(673, 472)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setStyleSheet(u"")
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        self.formLayout = QFormLayout(self.centralwidget)
        self.formLayout.setObjectName(u"formLayout")
        self.verticalLayout = QVBoxLayout()
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.label = BodyLabel(self.centralwidget)
        self.label.setObjectName(u"label")
        sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        sizePolicy1.setHorizontalStretch(0)
        sizePolicy1.setVerticalStretch(0)
        sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy1)
        self.label.setMaximumSize(QSize(16777215, 16777215))
        self.label.setStyleSheet(u"")
        self.label.setScaledContents(False)

        self.verticalLayout.addWidget(self.label)

        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)

        self.verticalLayout.addItem(self.verticalSpacer)

        self.chafenButton = PushButton(self.centralwidget)
        self.chafenButton.setObjectName(u"chafenButton")
        sizePolicy1.setHeightForWidth(self.chafenButton.sizePolicy().hasHeightForWidth())
        self.chafenButton.setSizePolicy(sizePolicy1)
        self.chafenButton.setMinimumSize(QSize(0, 32))
        self.chafenButton.setStyleSheet(u"")

        self.verticalLayout.addWidget(self.chafenButton)

        self.paihangbangButton = PushButton(self.centralwidget)
        self.paihangbangButton.setObjectName(u"paihangbangButton")
        sizePolicy1.setHeightForWidth(self.paihangbangButton.sizePolicy().hasHeightForWidth())
        self.paihangbangButton.setSizePolicy(sizePolicy1)
        self.paihangbangButton.setMinimumSize(QSize(0, 32))
        self.paihangbangButton.setStyleSheet(u"")

        self.verticalLayout.addWidget(self.paihangbangButton)

        self.aboutButton = PushButton(self.centralwidget)
        self.aboutButton.setObjectName(u"aboutButton")
        sizePolicy1.setHeightForWidth(self.aboutButton.sizePolicy().hasHeightForWidth())
        self.aboutButton.setSizePolicy(sizePolicy1)
        self.aboutButton.setMinimumSize(QSize(0, 32))
        self.aboutButton.setStyleSheet(u"")

        self.verticalLayout.addWidget(self.aboutButton)


        self.formLayout.setLayout(1, QFormLayout.LabelRole, self.verticalLayout)

        self.stackedWidget = QStackedWidget(self.centralwidget)
        self.stackedWidget.setObjectName(u"stackedWidget")
        self.page = QWidget()
        self.page.setObjectName(u"page")
        self.verticalLayout_2 = QVBoxLayout(self.page)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.label_2 = QLabel(self.page)
        self.label_2.setObjectName(u"label_2")

        self.verticalLayout_2.addWidget(self.label_2)

        self.verticalLayout_3 = QVBoxLayout()
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.label_3 = BodyLabel(self.page)
        self.label_3.setObjectName(u"label_3")
        sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
        sizePolicy2.setHorizontalStretch(0)
        sizePolicy2.setVerticalStretch(0)
        sizePolicy2.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
        self.label_3.setSizePolicy(sizePolicy2)

        self.horizontalLayout.addWidget(self.label_3)

        self.chafen_usernameBox = LineEdit(self.page)
        self.chafen_usernameBox.setObjectName(u"chafen_usernameBox")
        sizePolicy3 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
        sizePolicy3.setHorizontalStretch(0)
        sizePolicy3.setVerticalStretch(0)
        sizePolicy3.setHeightForWidth(self.chafen_usernameBox.sizePolicy().hasHeightForWidth())
        self.chafen_usernameBox.setSizePolicy(sizePolicy3)

        self.horizontalLayout.addWidget(self.chafen_usernameBox)

        self.label_4 = BodyLabel(self.page)
        self.label_4.setObjectName(u"label_4")
        sizePolicy2.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
        self.label_4.setSizePolicy(sizePolicy2)

        self.horizontalLayout.addWidget(self.label_4)

        self.chafen_passwordBox = LineEdit(self.page)
        self.chafen_passwordBox.setObjectName(u"chafen_passwordBox")
        sizePolicy4 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
        sizePolicy4.setHorizontalStretch(0)
        sizePolicy4.setVerticalStretch(0)
        sizePolicy4.setHeightForWidth(self.chafen_passwordBox.sizePolicy().hasHeightForWidth())
        self.chafen_passwordBox.setSizePolicy(sizePolicy4)

        self.horizontalLayout.addWidget(self.chafen_passwordBox)

        self.login_ChafenButton = PushButton(self.page)
        self.login_ChafenButton.setObjectName(u"login_ChafenButton")
        sizePolicy5 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
        sizePolicy5.setHorizontalStretch(0)
        sizePolicy5.setVerticalStretch(0)
        sizePolicy5.setHeightForWidth(self.login_ChafenButton.sizePolicy().hasHeightForWidth())
        self.login_ChafenButton.setSizePolicy(sizePolicy5)

        self.horizontalLayout.addWidget(self.login_ChafenButton)


        self.verticalLayout_3.addLayout(self.horizontalLayout)

        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
        self.listWidget = ListWidget(self.page)
        self.listWidget.setObjectName(u"listWidget")
        sizePolicy6 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)
        sizePolicy6.setHorizontalStretch(0)
        sizePolicy6.setVerticalStretch(0)
        sizePolicy6.setHeightForWidth(self.listWidget.sizePolicy().hasHeightForWidth())
        self.listWidget.setSizePolicy(sizePolicy6)
        self.listWidget.setMinimumSize(QSize(340, 0))
        self.listWidget.setFrameShape(QFrame.StyledPanel)

        self.horizontalLayout_3.addWidget(self.listWidget)

        self.formLayout_2 = QFormLayout()
        self.formLayout_2.setObjectName(u"formLayout_2")
        self.label_5 = BodyLabel(self.page)
        self.label_5.setObjectName(u"label_5")
        sizePolicy1.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy1)
        self.label_5.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label_5)

        self.scoreSumLabel = BodyLabel(self.page)
        self.scoreSumLabel.setObjectName(u"scoreSumLabel")
        sizePolicy1.setHeightForWidth(self.scoreSumLabel.sizePolicy().hasHeightForWidth())
        self.scoreSumLabel.setSizePolicy(sizePolicy1)
        self.scoreSumLabel.setStyleSheet(u"font-size:52px;")

        self.formLayout_2.setWidget(1, QFormLayout.FieldRole, self.scoreSumLabel)

        self.label_7 = BodyLabel(self.page)
        self.label_7.setObjectName(u"label_7")
        sizePolicy1.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
        self.label_7.setSizePolicy(sizePolicy1)
        self.label_7.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_7)

        self.allScoresCombobox = ComboBox(self.page)
        self.allScoresCombobox.setObjectName(u"allScoresCombobox")
        sizePolicy1.setHeightForWidth(self.allScoresCombobox.sizePolicy().hasHeightForWidth())
        self.allScoresCombobox.setSizePolicy(sizePolicy1)

        self.formLayout_2.setWidget(2, QFormLayout.FieldRole, self.allScoresCombobox)

        self.label_14 = BodyLabel(self.page)
        self.label_14.setObjectName(u"label_14")
        sizePolicy1.setHeightForWidth(self.label_14.sizePolicy().hasHeightForWidth())
        self.label_14.setSizePolicy(sizePolicy1)
        self.label_14.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(3, QFormLayout.LabelRole, self.label_14)

        self.classRankLabel = BodyLabel(self.page)
        self.classRankLabel.setObjectName(u"classRankLabel")
        sizePolicy1.setHeightForWidth(self.classRankLabel.sizePolicy().hasHeightForWidth())
        self.classRankLabel.setSizePolicy(sizePolicy1)
        self.classRankLabel.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(3, QFormLayout.FieldRole, self.classRankLabel)

        self.label_12 = BodyLabel(self.page)
        self.label_12.setObjectName(u"label_12")
        sizePolicy1.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth())
        self.label_12.setSizePolicy(sizePolicy1)
        self.label_12.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(4, QFormLayout.LabelRole, self.label_12)

        self.gradeRankLabel = BodyLabel(self.page)
        self.gradeRankLabel.setObjectName(u"gradeRankLabel")
        sizePolicy1.setHeightForWidth(self.gradeRankLabel.sizePolicy().hasHeightForWidth())
        self.gradeRankLabel.setSizePolicy(sizePolicy1)
        self.gradeRankLabel.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(4, QFormLayout.FieldRole, self.gradeRankLabel)

        self.label_16 = BodyLabel(self.page)
        self.label_16.setObjectName(u"label_16")
        sizePolicy1.setHeightForWidth(self.label_16.sizePolicy().hasHeightForWidth())
        self.label_16.setSizePolicy(sizePolicy1)
        self.label_16.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(5, QFormLayout.LabelRole, self.label_16)

        self.gradeStuNumLabel = BodyLabel(self.page)
        self.gradeStuNumLabel.setObjectName(u"gradeStuNumLabel")
        sizePolicy1.setHeightForWidth(self.gradeStuNumLabel.sizePolicy().hasHeightForWidth())
        self.gradeStuNumLabel.setSizePolicy(sizePolicy1)
        self.gradeStuNumLabel.setStyleSheet(u"font-size:16px")

        self.formLayout_2.setWidget(5, QFormLayout.FieldRole, self.gradeStuNumLabel)

        self.verticalSpacer_16 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)

        self.formLayout_2.setItem(6, QFormLayout.LabelRole, self.verticalSpacer_16)

        self.verticalSpacer_17 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)

        self.formLayout_2.setItem(6, QFormLayout.FieldRole, self.verticalSpacer_17)

        self.nameLabel = QLabel(self.page)
        self.nameLabel.setObjectName(u"nameLabel")
        self.nameLabel.setStyleSheet(u"font-size:18px")

        self.formLayout_2.setWidget(0, QFormLayout.SpanningRole, self.nameLabel)


        self.horizontalLayout_3.addLayout(self.formLayout_2)


        self.verticalLayout_3.addLayout(self.horizontalLayout_3)


        self.verticalLayout_2.addLayout(self.verticalLayout_3)

        self.stackedWidget.addWidget(self.page)
        self.page_2 = QWidget()
        self.page_2.setObjectName(u"page_2")
        self.gridLayout_2 = QGridLayout(self.page_2)
        self.gridLayout_2.setObjectName(u"gridLayout_2")
        self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)

        self.gridLayout_2.addItem(self.verticalSpacer_2, 6, 0, 1, 1)

        self.progressBar = QProgressBar(self.page_2)
        self.progressBar.setObjectName(u"progressBar")
        self.progressBar.setMaximum(100)
        self.progressBar.setValue(99)

        self.gridLayout_2.addWidget(self.progressBar, 7, 0, 1, 2)

        self.phbTextBrowser = TextEdit(self.page_2)
        self.phbTextBrowser.setObjectName(u"phbTextBrowser")

        self.gridLayout_2.addWidget(self.phbTextBrowser, 4, 1, 3, 1)

        self.label_8 = QLabel(self.page_2)
        self.label_8.setObjectName(u"label_8")

        self.gridLayout_2.addWidget(self.label_8, 2, 0, 1, 1)

        self.groupBox = QGroupBox(self.page_2)
        self.groupBox.setObjectName(u"groupBox")
        sizePolicy7 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
        sizePolicy7.setHorizontalStretch(0)
        sizePolicy7.setVerticalStretch(0)
        sizePolicy7.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
        self.groupBox.setSizePolicy(sizePolicy7)
        self.groupBox.setMinimumSize(QSize(340, 0))
        self.gridLayout = QGridLayout(self.groupBox)
        self.gridLayout.setObjectName(u"gridLayout")
        self.phb_RefreshButton = PushButton(self.groupBox)
        self.phb_RefreshButton.setObjectName(u"phb_RefreshButton")
        sizePolicy5.setHeightForWidth(self.phb_RefreshButton.sizePolicy().hasHeightForWidth())
        self.phb_RefreshButton.setSizePolicy(sizePolicy5)

        self.gridLayout.addWidget(self.phb_RefreshButton, 2, 0, 1, 1)

        self.phb_OkButton = PushButton(self.groupBox)
        self.phb_OkButton.setObjectName(u"phb_OkButton")
        sizePolicy5.setHeightForWidth(self.phb_OkButton.sizePolicy().hasHeightForWidth())
        self.phb_OkButton.setSizePolicy(sizePolicy5)

        self.gridLayout.addWidget(self.phb_OkButton, 2, 1, 1, 1)

        self.phb_ExamListCombobox = ComboBox(self.groupBox)
        self.phb_ExamListCombobox.addItem("")
        self.phb_ExamListCombobox.setObjectName(u"phb_ExamListCombobox")
        sizePolicy3.setHeightForWidth(self.phb_ExamListCombobox.sizePolicy().hasHeightForWidth())
        self.phb_ExamListCombobox.setSizePolicy(sizePolicy3)

        self.gridLayout.addWidget(self.phb_ExamListCombobox, 1, 0, 1, 2)


        self.gridLayout_2.addWidget(self.groupBox, 4, 0, 1, 1)

        self.groupBox_2 = QGroupBox(self.page_2)
        self.groupBox_2.setObjectName(u"groupBox_2")
        sizePolicy7.setHeightForWidth(self.groupBox_2.sizePolicy().hasHeightForWidth())
        self.groupBox_2.setSizePolicy(sizePolicy7)
        self.groupBox_2.setMinimumSize(QSize(340, 0))
        self.formLayout_4 = QFormLayout(self.groupBox_2)
        self.formLayout_4.setObjectName(u"formLayout_4")
        self.label_9 = BodyLabel(self.groupBox_2)
        self.label_9.setObjectName(u"label_9")

        self.formLayout_4.setWidget(0, QFormLayout.LabelRole, self.label_9)

        self.phb_UserNameBox = LineEdit(self.groupBox_2)
        self.phb_UserNameBox.setObjectName(u"phb_UserNameBox")

        self.formLayout_4.setWidget(0, QFormLayout.FieldRole, self.phb_UserNameBox)

        self.label_11 = BodyLabel(self.groupBox_2)
        self.label_11.setObjectName(u"label_11")

        self.formLayout_4.setWidget(1, QFormLayout.LabelRole, self.label_11)

        self.phb_PasswordBox = LineEdit(self.groupBox_2)
        self.phb_PasswordBox.setObjectName(u"phb_PasswordBox")

        self.formLayout_4.setWidget(1, QFormLayout.FieldRole, self.phb_PasswordBox)

        self.label_6 = BodyLabel(self.groupBox_2)
        self.label_6.setObjectName(u"label_6")

        self.formLayout_4.setWidget(3, QFormLayout.LabelRole, self.label_6)

        self.phb_SubmitButton = PushButton(self.groupBox_2)
        self.phb_SubmitButton.setObjectName(u"phb_SubmitButton")

        self.formLayout_4.setWidget(2, QFormLayout.SpanningRole, self.phb_SubmitButton)

        self.chafen_SubmitedNumLabel = BodyLabel(self.groupBox_2)
        self.chafen_SubmitedNumLabel.setObjectName(u"chafen_SubmitedNumLabel")

        self.formLayout_4.setWidget(3, QFormLayout.FieldRole, self.chafen_SubmitedNumLabel)


        self.gridLayout_2.addWidget(self.groupBox_2, 5, 0, 1, 1)

        self.textBrowser = TextEdit(self.page_2)
        self.textBrowser.setObjectName(u"textBrowser")
        sizePolicy8 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
        sizePolicy8.setHorizontalStretch(0)
        sizePolicy8.setVerticalStretch(0)
        sizePolicy8.setHeightForWidth(self.textBrowser.sizePolicy().hasHeightForWidth())
        self.textBrowser.setSizePolicy(sizePolicy8)
        self.textBrowser.setMaximumSize(QSize(16777215, 100))

        self.gridLayout_2.addWidget(self.textBrowser, 3, 0, 1, 2)

        self.stackedWidget.addWidget(self.page_2)
        self.page_3 = QWidget()
        self.page_3.setObjectName(u"page_3")
        self.horizontalLayout_4 = QHBoxLayout(self.page_3)
        self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
        self.textBrowser_3 = TextEdit(self.page_3)
        self.textBrowser_3.setObjectName(u"textBrowser_3")

        self.horizontalLayout_4.addWidget(self.textBrowser_3)

        self.stackedWidget.addWidget(self.page_3)

        self.formLayout.setWidget(1, QFormLayout.FieldRole, self.stackedWidget)

        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 673, 21))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)

        self.stackedWidget.setCurrentIndex(0)


        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.label.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body><p><span style=\" font-size:24pt;\">\u597d\u5206\u6570</span></p></body></html>", None))
        self.chafenButton.setText(QCoreApplication.translate("MainWindow", u"\u67e5\u5206", None))
        self.paihangbangButton.setText(QCoreApplication.translate("MainWindow", u"\u6392\u884c\u699c", None))
        self.aboutButton.setText(QCoreApplication.translate("MainWindow", u"\u5173\u4e8e", None))
        self.label_2.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body><p><span style=\" font-size:16pt;\">\u67e5\u5206</span></p></body></html>", None))
        self.label_3.setText(QCoreApplication.translate("MainWindow", u"\u8d26\u53f7:", None))
        self.label_4.setText(QCoreApplication.translate("MainWindow", u"\u5bc6\u7801:", None))
        self.login_ChafenButton.setText(QCoreApplication.translate("MainWindow", u"\u767b\u5f55", None))
        self.label_5.setText(QCoreApplication.translate("MainWindow", u"\u603b\u5206:", None))
        self.scoreSumLabel.setText("")
        self.label_7.setText(QCoreApplication.translate("MainWindow", u"\u5404\u79d1\u6210\u7ee9:", None))
        self.label_14.setText(QCoreApplication.translate("MainWindow", u"\u73ed\u7ea7\u6392\u540d:", None))
        self.classRankLabel.setText("")
        self.label_12.setText(QCoreApplication.translate("MainWindow", u"\u5e74\u7ea7\u6392\u540d:", None))
        self.gradeRankLabel.setText("")
        self.label_16.setText(QCoreApplication.translate("MainWindow", u"\u5e74\u7ea7\u8003\u8bd5\u4eba\u6570:", None))
        self.gradeStuNumLabel.setText("")
        self.nameLabel.setText("")
        self.label_8.setText(QCoreApplication.translate("MainWindow", u"<html><head/><body><p><span style=\" font-size:16pt;\">\u6392\u884c\u699c</span></p></body></html>", None))
        self.groupBox.setTitle(QCoreApplication.translate("MainWindow", u"\u9009\u62e9\u8003\u8bd5", None))
        self.phb_RefreshButton.setText(QCoreApplication.translate("MainWindow", u"\u5237\u65b0", None))
        self.phb_OkButton.setText(QCoreApplication.translate("MainWindow", u"\u786e\u5b9a", None))
        self.phb_ExamListCombobox.setItemText(0, QCoreApplication.translate("MainWindow", u"(\u65e0)", None))

        self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"\u8d21\u732e\u8d26\u53f7", None))
        self.label_9.setText(QCoreApplication.translate("MainWindow", u"\u8d26\u53f7:", None))
        self.label_11.setText(QCoreApplication.translate("MainWindow", u"\u5bc6\u7801:", None))
        self.label_6.setText(QCoreApplication.translate("MainWindow", u"\u5df2\u8d21\u732e\u4eba\u6570:", None))
        self.phb_SubmitButton.setText(QCoreApplication.translate("MainWindow", u"\u8d21\u732e", None))
        self.chafen_SubmitedNumLabel.setText(QCoreApplication.translate("MainWindow", u"0", None))
        self.textBrowser.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
"li.unchecked::marker { content: \"\\2610\"; }\n"
"li.checked::marker { content: \"\\2612\"; }\n"
"</style></head><body style=\" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:16pt; font-weight:700;\">\u6e29\u99a8\u63d0\u793a</span><span style=\" font-size:16pt;\">:\u7531\u4e8e\u5b66\u6821</span><span style=\" font-size:16pt; font-weight:700; color:#ff0000;\">\u4e0d\u516c\u5f00</span><span style=\" font-size:16pt;\">\u6392\u540d\u4fe1\u606f\uff0c\u6240\u4ee5\u5efa\u8bae\u67e5\u770b\u6392\u884c\u699c\u7684\u4eba</span><span style=\" font-si"
                        "ze:16pt; font-weight:700; color:#ff0000;\">\u8d21\u732e\u81ea\u5df1\u7684\u597d\u5206\u6570\u8d26\u53f7</span><span style=\" font-size:16pt;\">\uff0c\u8d21\u732e\u8d8a\u591a\u6392\u884c\u699c\u8d8a\u5b8c\u5584\uff0c\u8c22\u8c22\u914d\u5408\uff01</span></p></body></html>", None))
        self.textBrowser_3.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
"li.unchecked::marker { content: \"\\2610\"; }\n"
"li.checked::marker { content: \"\\2612\"; }\n"
"</style></head><body style=\" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:24pt;\">\u5173\u4e8e</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">"
                        "<span style=\" font-size:14pt;\">\u597d\u5206\u6570 \uff0c\u966a\u4f34\u5b69\u5b50\u5b66\u4e60\u7684\u597d\u52a9\u624b</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Version 1.0 Build 2024.02</p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Copyright \u00a9 2024,nuz007 All right reserved</p>\n"
"<p align=\"center\" style=\" margin-top:22px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;\"><span style=\" background-color:#ffffff;\">\u672c\u7a0b\u5e8f\u4e3a\u81ea\u7531\u8f6f\u4ef6\uff1a\u5728\u81ea\u7531\u8f6f\u4ef6\u57fa\u91d1\u4f1a\u53d1\u5e03\u7684 GN"
                        "U \u901a\u7528\u516c\u5171\u8bb8\u53ef\u8bc1\u7684\u7ea6\u675f\u4e0b\uff0c</span></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" background-color:#ffffff;\">\u4f60\u53ef\u4ee5\u5bf9\u5176\u8fdb\u884c\u518d\u5206\u53d1\u53ca\u4fee\u6539\u3002\u8bb8\u53ef\u8bc1\u7248\u672c\u4e3a\u7b2c\u4e09\u7248\u6216\uff08\u4f60\u53ef\u9009\u7684\uff09\u540e\u7eed\u7248\u672c\u3002</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" background-color:#ffffff;\">\u6211\u4eec\u5e0c\u671b\u53d1\u5e03\u7684\u8fd9\u6b3e\u7a0b\u5e8f\u6709\u7528\uff0c\u4f46\u5176\u4e0d\u5e26\u4efb\u4f55\u62c5\u4fdd\uff1b\u751a\u81f3\u4e0d\u9ed8\u8ba4\u4fdd"
                        "\u8bc1\u5b83\u6709\u7ecf\u6d4e</span></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" background-color:#ffffff;\">\u4ef7\u503c\u548c\u9002\u5408\u7279\u5b9a\u7528\u9014\u3002\u8be6\u60c5\u53c2\u89c1 GNU \u901a\u7528\u516c\u5171\u8bb8\u53ef\u8bc1\u3002</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" background-color:#ffffff;\">\u4f60\u7406\u5f53\u5df2\u6536\u5230\u4e00\u4efd GNU \u901a\u7528\u516c\u5171\u8bb8\u53ef\u8bc1\u7684\u526f\u672c\u3002\u5982\u679c\u4f60\u6ca1\u6709\u6536\u5230\u5b83\uff0c\u8bf7\u67e5\u9605 <http://www.gnu.org/licenses/>\u3002</span></p></body></html>", None))
    # retranslateUi

chafen_examList=[]
phb_ExamList=[]
accountsLibPath=f"{str(pathlib.Path.home())}/.haofenshu/data/accounts"
phb_examId=""
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.39"}

def delenter(xn):
    y=[]
    for i in xn:
        z=i.replace("\n","")
        if z:y.append(z)
    return y
def getscore(x,y,id):#x为邮箱,y为id
    try:
        session=requests.session()
        session.post(
            url="https://hfs-be.yunxiao.com/v2/users/sessions",
            headers=headers,
            data={"loginName":x,"password":str(base64.b64encode(y.encode("utf-8")))[2:-1],"roleType":1,"loginType":1,"rememberMe":2}#password为密码的base64
        )
        考试信息x=session.get(
            url="https://hfs-be.yunxiao.com/v3/exam/list?start=-1",
            headers=headers
            ).json()['data']['list']
        姓名=session.get(
            url="https://hfs-be.yunxiao.com/v2/user-center/user-snapshot",
            headers=headers
            ).json()['data']['linkedStudent']['studentName']
        for i in 考试信息x:
            if i['examId']==id:考试信息=i
        tmp = session.get(f"https://hfs-be.yunxiao.com/v3/exam/{id}/overview").json()['data']
        tmp2=[]
        for i in tmp['papers']:tmp2.append(f"{i['subject']}:{i['score']}")
        tmp1=[姓名,tmp["score"],tmp2,tmp["classRank"],tmp["gradeRank"],tmp["gradeStuNum"]]
        return tmp1
    except:return False
def mklist(x):
    tmp=""
    for i in x:
        tmp=tmp+f"<td>{i}</td>"
    return tmp
class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        if not(os.path.exists(f"{str(pathlib.Path.home())}/.haofenshu/data")):os.makedirs(f"{str(pathlib.Path.home())}/.haofenshu/data")
        # 按钮
        self.ui.chafenButton.clicked.connect(lambda: self.switchStackedWidget(0))
        self.ui.paihangbangButton.clicked.connect(lambda: self.switchStackedWidget(1))
        self.ui.aboutButton.clicked.connect(lambda: self.switchStackedWidget(2))
        self.ui.login_ChafenButton.clicked.connect(self.login_ChaFen)
        self.ui.listWidget.currentItemChanged.connect(self.get_Chafen)
        self.ui.phb_SubmitButton.clicked.connect(self.phb_Submit)
        self.ui.phb_RefreshButton.clicked.connect(self.phb_Refresh)
        self.ui.phb_OkButton.clicked.connect(self.phb_Ok)
        self.chafenUsername=""
        self.chafenPassword=""

        if os.path.exists(accountsLibPath):
            with open(accountsLibPath) as g:submited=len(delenter(g.readlines()))
            if submited<=0:self.ui.phb_RefreshButton.setDisabled(True)
        else:
            submited=0
            self.ui.phb_RefreshButton.setDisabled(True)

        self.ui.chafen_SubmitedNumLabel.setText(str(submited))

    def switchStackedWidget(self,x):self.ui.stackedWidget.setCurrentIndex(x)# 切换页面


    def getAllExam(self,username,password):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        session=requests.session()
        session.post(
            url="https://hfs-be.yunxiao.com/v2/users/sessions",
            headers=headers,
            data={"loginName":username,"password":str(base64.b64encode(password.encode("utf-8")))[2:-1],"roleType":1,"loginType":1,"rememberMe":2}#password为密码的base64
        )
        tmp=session.get(
            url="https://hfs-be.yunxiao.com/v3/exam/list?start=-1",
            headers=headers
            ).json()['data']['list']
        姓名=session.get(
            url="https://hfs-be.yunxiao.com/v2/user-center/user-snapshot",
            headers=headers
            ).json()['data']['linkedStudent']['studentName']
        n=[]
        for i in tmp:
            n.append((i['name'],i['examId'],time.strftime("%Y年%m月%d日",time.localtime(int(i['time'])/1000)),int(i['time'])))

        return (n,姓名)



    def login_ChaFen(self):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        self.ui.listWidget.clear()
        self.ui.scoreSumLabel.setText("")
        self.ui.classRankLabel.setText("")
        self.ui.gradeRankLabel.setText("")
        self.ui.gradeStuNumLabel.setText("")
        self.ui.nameLabel.setText("")
        self.ui.allScoresCombobox.clear()
        try:chafen_examList=self.getAllExam(self.ui.chafen_usernameBox.text(),self.ui.chafen_passwordBox.text())
        except:
            QMessageBox.critical(self,"无效的用户密码或无互联网链接","无效的用户密码或无互联网链接",QMessageBox.Ok)
            return

        for i in chafen_examList[0]:
            self.ui.listWidget.addItem(f"{i[0]},{i[2]}")
        self.ui.nameLabel.setText(chafen_examList[1])

    def get_Chafen(self):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        examId=chafen_examList[0][self.ui.listWidget.currentRow()][1]
        examInfo=getscore(self.ui.chafen_usernameBox.text(),self.ui.chafen_passwordBox.text(),examId)
        self.ui.scoreSumLabel.setText(str(examInfo[1]))
        self.ui.allScoresCombobox.clear()
        for i in examInfo[2]:
            self.ui.allScoresCombobox.addItem(f"{i}")
        self.ui.classRankLabel.setText(str(examInfo[3]))
        self.ui.gradeRankLabel.setText(str(examInfo[4]))
        self.ui.gradeStuNumLabel.setText(str(examInfo[5]))



    ########################################################################################
    ############# 排行榜 ####################################################################
    ########################################################################################

    def phb_Submit(self):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        username=self.ui.phb_UserNameBox.text()
        password=self.ui.phb_PasswordBox.text()
        session=requests.session()
        x=session.post(
            url="https://hfs-be.yunxiao.com/v2/users/sessions",
            headers=headers,
            data={"loginName":username,"password":str(base64.b64encode(password.encode("utf-8")))[2:-1],"roleType":1,"loginType":1,"rememberMe":2}#password为密码的base64
        ).json()["msg"]
        if x=="登录成功":
            if os.path.exists(accountsLibPath):
                with open(accountsLibPath)as x:
                    if f"{username}:::{password}\n" in x:
                        QMessageBox.critical(self,"该用户已贡献","该用户已贡献",QMessageBox.Ok)
                        return
            with open(accountsLibPath,"a+") as x:
                x.write(f"{username}:::{password}\n")
                self.ui.chafen_SubmitedNumLabel.setText(str(int(self.ui.chafen_SubmitedNumLabel.text())+1))
                self.ui.phb_RefreshButton.setDisabled(False)
                QMessageBox.information(self,"贡献成功","贡献成功",QMessageBox.Ok)
        else:QMessageBox.critical(self,"无效的用户密码或无互联网链接","无效的用户密码或无互联网链接",QMessageBox.Ok)


    def phb_Refresh(self):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        with open(accountsLibPath,"r") as g:
            accountslist=[]
            for i in delenter(g.readlines()):
                accountslist.append(i.split(":::"))
            random.shuffle(accountslist)
            account_5=accountslist[:5] if len(accountslist) > 8 else accountslist
            exam_5=[]
            tmp_exam=[]
            for i in account_5:
                tmp_exam=self.getAllExam(i[0],i[1])
                QApplication.processEvents()
                for j in tmp_exam[0]:exam_5.append(j)
            phb_ExamList.clear()
            print(exam_5)
            phb_ExamList=list(set(exam_5))
            phb_ExamList.sort(key=lambda x:x[3])
            phb_ExamList.reverse()
            self.ui.phb_ExamListCombobox.clear()
            for i in phb_ExamList:self.ui.phb_ExamListCombobox.addItem(f"{i[0]},{i[2]}")

    def phb_Ok(self):
        global phb_examId,chafen_examList,phb_ExamList,accountsLibPath,headers
        self.ui.phbTextBrowser.setHtml("")
        phb_examId=phb_ExamList[self.ui.phb_ExamListCombobox.currentIndex()][1]
        self.thread=phb_Ok_Thread()
        self.thread.sinOut1.connect(self.phb_Ok1)
        self.thread.sinOut2.connect(self.phb_Ok2)
        self.thread.sinOut3.connect(self.phb_Ok3)
        self.thread.start()

    def phb_Ok1(self,x):
        self.ui.phbTextBrowser.setHtml(x)

    def phb_Ok2(self,x):
        self.ui.progressBar.setMaximum(x)
        self.ui.progressBar.setValue(0)

    def phb_Ok3(self,x):
        self.ui.progressBar.setValue(x)

class phb_Ok_Thread(QThread):
    def __init__(self):super().__init__()
    sinOut1=Signal(str)
    sinOut2=Signal(int)
    sinOut3=Signal(int)
    def run(self):
        with open(accountsLibPath,"r") as g:
            accountslist=[]
            for i in delenter(g.readlines()):
                accountslist.append(i.split(":::"))
        scorelist=[]
        self.sinOut2.emit(len(accountslist))
        value=0
        for i in accountslist:
            tmp=getscore(i[0],i[1],phb_examId)
            value+=1
            self.sinOut3.emit(value)
            if str(type(tmp)) !="<class 'list'>":continue
            tmp2=(tmp[4],tmp[0],tmp[1],tmp[2])
            scorelist.append(tmp2)
        scorelist.sort(key=lambda x:x[0])
        score2list=[]
        for i in scorelist:
            score2list.append(f"<tr><td>{i[0]}</td><td>{i[1]}</td><td>{i[2]}</td>{mklist(i[3])}</tr>")
        scoretxt='<style>td{font-size:14px;padding:6px}</style><table border="1" cellspacing="0"><thead><tr><td>排名</td><td>姓名</td><td>总分</td><td>单科</td></tr></thead><tbody>'+"".join(score2list)+"</tbody></table>"
        self.sinOut1.emit(scoretxt)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = MainWindow()
    widget.show()
    sys.exit(app.exec())

屏幕截图 2024-07-26 101726.png (57.73 KB, 下载次数: 12)

屏幕截图 2024-07-26 101726.png

image.png (57.73 KB, 下载次数: 12)

image.png

免费评分

参与人数 7吾爱币 +12 热心值 +5 收起 理由
jingtiaopi + 1 + 1 用心讨论,共获提升! 但是在获取所有考试列表的方法里,抛出了 无效的用户 ...
SnowDDD + 1 高中那会儿属实被这个搞得头皮发麻,怒火攻心
25308118 + 1 + 1 登录不对的输入孩子的用户名密码,查排名现在不好用了怎么都显示-1
chenghome + 1 没有用啊,提示登陆不对
lgshennong + 1 谢谢@Thanks!
yueyue1133 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
sourceyin 发表于 2024-9-23 14:25
不知什么原因,一直提示:无效的用户密码或无互联网链接。  反复确认 密码是对的啊,网也是有的
沙发
Yvaine 发表于 2024-7-26 12:29
3#
Arcticlyc 发表于 2024-7-26 13:54
4#
puzhiyuan134 发表于 2024-7-26 14:16
高手,这也能做出来
5#
dork 发表于 2024-7-26 14:39
可以,试试
6#
777444 发表于 2024-7-26 15:15
用的 还有个软件  也需要会员
7#
 楼主| nuz 发表于 2024-7-26 16:03 |楼主
Arcticlyc 发表于 2024-7-26 13:54
两张图片好像是一样的

不小心多复制了
8#
wangx19932003 发表于 2024-7-29 02:46
是需要知道所有人的账号密码,然后才能看到所有人的排名吗?
9#
小职boy 发表于 2024-8-4 15:29
高手,牛逼!有考虑出一个安卓版的吗?
10#
kelanazyl 发表于 2024-9-23 11:07
好用好用,楼主真牛逼!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 20:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表