Files
mhxyQA_GUI/setting.py
2026-03-03 00:22:55 +08:00

187 lines
6.0 KiB
Python

# -*- coding: utf-8 -*-
import os
import sys
import pyautogui
from core.maflagimg import MAFlagImg
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
screen_width, screen_height = pyautogui.size()
win_width = 710
card_width = win_width-30
win_height = 900
# version
VERSION = "2.0.11"
PROJECT = "mhbby"
WINTITLE = f"{PROJECT} {VERSION}"
# 截图存档目录
appdata_path = os.path.join(os.getenv('APPDATA'), r'mhxyQA')
appdata_user_ini = os.path.join(appdata_path, r'user.ini')
appdata_setting_ini = os.path.join(appdata_path, r'setting.ini')
appdata_annc_ini = os.path.join(appdata_path, r'annc.ini')
img_dir_path = resource_path(r'images')
shot_dir_path = resource_path(r'images/shot')
coord_dir_path = resource_path(r'images/shot/coord')
align_dir_path = resource_path(r'images/shot/align')
subscribe_dir_path = resource_path(r'images/shot/subscribe')
flag_dir_path = resource_path(r'images/flag')
flag_wp_dir_path = resource_path(r'images/flag/wp')
flag_tag_dir_path = resource_path(r'images/flag/tag')
flag_match_dir_path = resource_path(r'images/match')
flag_miss_dir_path = resource_path(r'images/miss')
map_dir_path = resource_path(r'images/map')
config_dir_path = resource_path(r'config')
subscribe_ini = os.path.join(config_dir_path, r'subscribe.ini')
shot_rect_ini = os.path.join(config_dir_path, r'shotrect.ini')
price_ini = os.path.join(config_dir_path, r'price.ini')
reward_ini = os.path.join(config_dir_path, r'reward.ini')
flag_audio_dir_path = resource_path(r'audio')
log_path = resource_path(r"logs")
#shot rect
coord_shot_rect_default = [650, 190, 780, 280]
coord_shot_rect_default_1k = [870, 191, 1036, 332]
qa_shot_rect_default = [
[140, 230, 670, 300],
[280, 230, 700, 330],
[180, 230, 700, 330],
[150, 350, 700, 400],
[290, 220, 710, 320],
[140, 230, 670, 300],
]
qa_shot_rect_default_1k = [
[140, 230, 670, 300],
[280, 230, 700, 330],
[180, 230, 700, 330],
[150, 350, 700, 400],
[290, 220, 710, 320],
[140, 230, 670, 300],
]
res_800 = (800, 600)
res_1k = (1036, 831)
def get_qa_shot_rect(w, h) :
if (w == res_800[0] and h == res_800[1]) :
return qa_shot_rect_default.copy()
elif (w == res_1k[0] and h == res_1k[1]) :
return qa_shot_rect_default_1k.copy()
else :
return None
def get_coord_shot_rect(w, h) :
if (w == res_800[0] and h == res_800[1]) :
return coord_shot_rect_default.copy()
elif (w == res_1k[0] and h == res_1k[1]) :
return coord_shot_rect_default_1k.copy()
else :
return None
#icon
icon_dir_path = resource_path(r'favicon.png')
# dt
DT_QA_LIST_NUM = 20
#subscribe
SUBSCRIBE_INTERVAL = 8
#auto
AUTO_INTERVAL = 1
#flag tag
flag_tag_fighting_cropbox = (793,182,805,436)
flag_tag_fighting = [
os.path.join(flag_tag_dir_path, r'fighting_flag.jpg'),
os.path.join(flag_tag_dir_path, r'fighting_flag2.png'),
]
flag_tag_mouse_name = [MAFlagImg('mouse_flag_1.jpg', -18, -15), MAFlagImg('mouse_flag_2.jpg', -18, -15), MAFlagImg('mouse_flag_3.jpg', -18, -15)]
flag_tag_mouse = [MAFlagImg(os.path.join(flag_tag_dir_path, name.img), name.offset_x, name.offset_y) for name in flag_tag_mouse_name]
flag_tag_panel_cropbox = (700,182,805,436)
#tips
TIPS_MAIN_SERVER = "<font color='red'>服务器公告</font>"
TIPS_MAIN_SPONSOR = "<font color='green'></font>"
TIPS_MAIN_ALERT = """为了您的游戏账户安全请从<a href="https://gitee.com/firemage/mhxyQA_GUI">官网</a> ,更新下载使用本软件。<br>请注意:使用本软件前,请确保您已了解相关风险,并愿意自行承担。"""
TIPS_QA_ALERT = """<font color='red'>请不要遮挡问题窗口!</font>"""
TIPS_SUBSCRIBE_ALERT = """<font color='red'>请不要遮挡监测窗口!</font>"""
TIPS_COORD_ALERT = """<font color='red'>请不要遮挡任务栏窗口!<br>仅开启一个任务显示和游戏设置色弱模式都可以提升识别成功率</font>"""
TIPS_CHARACTER_ALERT = """<font color='red'>仅供参考!仅供参考!仅供参考!</font>"""
TIPS_INVATATION = """<p>当新成员使用您的邀请码成功注册后,您将获得软件更高级别的权限以及<br>新功能的优先体验机会。这不只是开启更深层次软件功能的钥匙,更是加<br>入我们共同探索和成长社区的入场券。让我们一起携手,将这份独特的体验<br>分享给每一位新朋友,共同享受软件带来的无限可能。</p>"""
TIPS_OCR = """OCR 目前仅支持800x600分辨率"""
#announcement
annc_server = TIPS_MAIN_SERVER
annc_sponsor = TIPS_MAIN_SPONSOR
#exp
exp_ip = "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
exp_port = "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"
# request
REQUEST_TIMEOUT = 5
REQUEST_TIMEOUT_LONG = 10
# remote qa
URL_QA = ""
def URL_QA_OCR():
return f"{URL_QA}/mhxyqa/ocr"
def URL_QA_SEARCH():
return f"{URL_QA}/mhxyqa/search"
def URL_QA_SIGNUP():
return f"{URL_QA}/mhxyqa/signup"
def URL_QA_SIGNIN():
return f"{URL_QA}/mhxyqa/signin"
def URL_QA_SUBSCRIBE():
return f"{URL_QA}/mhxyqa/subscribe"
def URL_QA_COORD():
return f"{URL_QA}/mhxyqa/coord"
URL_IMAGE = "https://175dt.com/"
#ini
INI_USER_SECTION = "USER"
INI_USER_OPTION_USERNAME = "USERNAME"
INI_USER_OPTION_EMAIL = "EMAIL"
INI_USER_OPTION_TOKEN = "TOKEN"
INI_USER_OPTION_INVITATION = "INVITATION"
INI_SETTING_SECTION = "SETTING"
INI_SETTING_OPTION_IP = "IP"
INI_SETTING_OPTION_PORT = "PORT"
INI_SETTING_OPTION_VERSION = "VERSION"
INI_ANNC_SECTION = "ANNC"
INI_ANNC_OPTION_SERVER = "SERVER"
INI_ANNC_OPTION_SPONSOR = "SPONSOR"
INI_SUBSCRIBE_SECTION = "KEYWORD"
INI_SHOTRECT_SECTION = "SHOTRECTS"
INI_SHOTRECT_OPTION_QA = "QA"
INI_SHOTRECT_OPTION_COORD = "COORD"
INI_PRICE_SECTION = "KEYWORD"
INI_REWARD_SECTION = "KEYWORD"