findServerWidget.py 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. from PyQt6 import QtCore
  2. from PyQt6.QtCore import QThreadPool
  3. from UI.findserver import Ui_FormLink
  4. from UI.mapWeb import Ui_FormMapWeb
  5. from PyQt6.QtCore import Qt
  6. from PyQt6.QtGui import QColor,QFont
  7. from PyQt6.QtWidgets import QWidget,QAbstractItemView,QMessageBox, QTableWidgetItem
  8. from .Worker2 import Worker2
  9. from .LogerinTxt import app_logger
  10. import os
  11. import requests
  12. from Functions import serverFind
  13. class mapWebWidget(Ui_FormMapWeb, QWidget):
  14. def __init__(self):
  15. super().__init__()
  16. self.setupUi(self)
  17. # self.webEngineView.load(QUrl('http://192.168.2.22:6010/'))
  18. class findServerWidget(Ui_FormLink, QWidget):
  19. selectServer_signal = QtCore.pyqtSignal(str)
  20. def __init__(self, parent=None):
  21. super().__init__(parent)
  22. try:
  23. self.threadpool = QThreadPool()
  24. self.setupUi(self)
  25. self.serverList = []
  26. self.tableWidget.setColumnCount(2)
  27. self.tableWidget.setHorizontalHeaderLabels(['服务器地址', '备注'])
  28. self.threadWork_findServer()
  29. self.tableWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
  30. self.tableWidget.cellDoubleClicked.connect(self.selectServer)
  31. self.pushButton_manset.clicked.connect(self.setipinfo)
  32. except Exception as e:
  33. app_logger.log_error(e)
  34. def setipinfo(self):
  35. try:
  36. self.ipinfo = ""
  37. if os.path.exists("server.code") is True:
  38. read_path = os.getcwd() + "\\server.code"
  39. with open(read_path, "r", encoding="utf-8") as f2:
  40. rember_2 = f2.read()
  41. if ';' in rember_2:
  42. self.ipinfo = rember_2.split(';')[0]
  43. self.ipinfo1 = rember_2.split(':')[0]
  44. ip = "http://" + str(self.ipinfo) + "/static/linktest"
  45. try:
  46. res = requests.get(url=ip, timeout=30)
  47. self.selectServer_signal.emit(self.ipinfo1)
  48. if res.text == "ok":
  49. QMessageBox.warning(self, "提示", "服务器人工配置成功!")
  50. else:
  51. QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!")
  52. except Exception as e:
  53. QMessageBox.warning(self, "提示", "服务器人工配置失败,请联系管理员检查服务器!")
  54. app_logger.log_error(e)
  55. else:
  56. QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!")
  57. else:
  58. QMessageBox.warning(self, "提示", "服务器人工配置失败,系统缺少配置文件!")
  59. except Exception as e:
  60. app_logger.log_error(e)
  61. def setipinfo2(self):
  62. try:
  63. self.ipinfo = ""
  64. if os.path.exists("server.code") is True:
  65. read_path = os.getcwd() + "\\server.code"
  66. with open(read_path, "r", encoding="utf-8") as f2:
  67. rember_2 = f2.read()
  68. if ';' in rember_2:
  69. self.ipinfo = rember_2.split(';')[0]
  70. self.ipinfo1 = rember_2.split(':')[0]
  71. ip = "http://" + str(self.ipinfo) + "/static/linktest"
  72. try:
  73. res = requests.get(url=ip, timeout=30)
  74. self.selectServer_signal.emit(self.ipinfo1)
  75. if res.text == "ok":
  76. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功!")
  77. else:
  78. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!")
  79. except Exception as e:
  80. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!")
  81. app_logger.log_error(e)
  82. else:
  83. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,请检查配置文件或联系管理员检查服务器!")
  84. else:
  85. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,系统缺少配置文件!")
  86. except Exception as e:
  87. app_logger.log_error(e)
  88. def selectServer(self, row, col):
  89. # print(self.tableWidget.item(row,col).text())
  90. try:
  91. self.selectServer_signal.emit(self.tableWidget.item(row, 0).text())
  92. except Exception as e:
  93. app_logger.log_error(e)
  94. def threadWork_findServer(self):
  95. try:
  96. worker = Worker2(self.fn)
  97. worker.signals.result.connect(self.print_out_result)
  98. self.threadpool.start(worker)
  99. except Exception as e:
  100. app_logger.log_error(e)
  101. def fn(self):
  102. try:
  103. serverList = serverFind.findServer()
  104. return serverList
  105. except Exception as e:
  106. app_logger.log_error(e)
  107. def print_out_result(self, dlist):
  108. try:
  109. self.serverList = dlist
  110. # print(self.serverList)
  111. if self.serverList == [] or self.serverList ==None:
  112. self.setipinfo2()
  113. else:
  114. self.tableWidget.setRowCount(len(self.serverList))
  115. rowNum = 0
  116. for row in self.serverList:
  117. colNum = 0
  118. for col in row:
  119. self.tableWidget.setItem(rowNum, colNum, QTableWidgetItem(col))
  120. self.tableWidget.item(rowNum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  121. if "测试服务器" in row[1]:
  122. self.tableWidget.item(rowNum, colNum).setForeground(QColor('red'))
  123. elif "主服务器" in row[1]:
  124. self.tableWidget.item(rowNum, colNum).setForeground(QColor('green'))
  125. font = QFont()
  126. # font.setFamily("SimHei")
  127. font.setFamily("Microsoft YaHei")
  128. font.setBold(True)
  129. self.tableWidget.item(rowNum, colNum).setFont(font)
  130. else:
  131. self.tableWidget.item(rowNum, colNum).setForeground(QColor('blue'))
  132. colNum += 1
  133. rowNum += 1
  134. self.tableWidget.resizeColumnsToContents()
  135. except Exception as e:
  136. app_logger.log_error(e)