Пример #1
0
    def __init__(self, tab_thermopylae, api: API_SIX, user_ships: dict,
                 map_data: dict):
        self.api = api
        self.tab_thermopylae = tab_thermopylae
        self.logger = get_logger(QLOGS.TAB_THER)
        self.user_ships = user_ships
        self.map_data = map_data

        self.qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
        if self.qsettings.contains(QKEYS.CONN_THER_RTY):
            self.reconnection_limit = self.qsettings.value(QKEYS.CONN_THER_RTY,
                                                           type=int)
        else:
            self.reconnection_limit = 3
        if self.qsettings.contains(QKEYS.THER_BOSS_RTY):
            self.boss_retry_limit = list(
                map(int, self.qsettings.value(QKEYS.THER_BOSS_RTY)))
        else:
            self.boss_retry_limit = [3, 5, 10]
        if self.qsettings.contains(QKEYS.THER_BOSS_STD):
            self.boss_retry_standard = list(
                map(int, self.qsettings.value(QKEYS.THER_BOSS_STD)))
        else:
            self.boss_retry_standard = [1, 2, 2]
        if self.qsettings.contains(QKEYS.THER_SHIP_STARS):
            self.ship_star: dict = self.qsettings.value(QKEYS.THER_SHIP_STARS)
        else:
            self.ship_star: dict = {}

        self.boss_retry_count: list = [0, 0, 0]
        self.points: int = 10
        self.adjutant_info: dict = {}  # level, curr_exp, exp_cap
Пример #2
0
    def __init__(self, parent, threadpool: QThreadPool, is_realrun: bool):
        super().__init__()
        logger.info("Creating Main Interface Tabs...")
        self.parent = parent
        self.threadpool = threadpool
        self.is_realrun = is_realrun

        self.qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
        self.has_tab = False

        # do NOT change the order of creation
        self.layout = QGridLayout()
        self.tab_ships = None
        self.tab_exp = None
        self.tab_adv = None
        self.tab_thermopylae = None
        self.tabs = QTabWidget()
        self._msg_label = None
        self.init_ui()

        self.layout.addWidget(self.tabs, 0, 0)
        if self.has_tab is True:
            pass
        else:
            self.add_warning_message()
        self.setLayout(self.layout)
Пример #3
0
    def __init__(self, parent, api: API_SIX, dd: list, cv: list,
                 main_fleet: list, is_realrun: bool):
        super().__init__()
        self.parent = parent
        self.api = api
        self.escort_DD = dd
        self.escort_CV = cv
        self.main_fleet = main_fleet  # main fleet (6SS)
        self.battle_fleet = set()  # ships that on battle
        self.logger = get_logger(QLOGS.TAB_THER)

        self.is_running: bool = True

        self.qsettings = QSettings(wgv_data.get_qsettings_file(),
                                   QSettings.IniFormat)
        if self.qsettings.contains(QKEYS.THER_REPAIRS):
            self.repair_levels: list = list(
                map(int, self.qsettings.value(QKEYS.THER_REPAIRS)))
        else:
            self.repair_levels: list = [2]

        # Used for pre-battle
        self.map_data: dict = {}
        self.user_data: dict = {}

        self.helper = None
        self.boat_pool: set = set()  # host existing boats
        self.curr_node: str = '0'
        self.curr_sub_map: str = '0'
        self.final_fleet: list = []  # fill up required number of boats
        self.tickets: int = 0
        self.user_ships: dict = wgv_data.get_processed_userShipVo()

        self.pre_sortie = PreSortieCheck(self.api, is_realrun)
        self.logger.info("Init E6...")
Пример #4
0
    def __init__(self,
                 cookies: dict,
                 login_form: pyqtSignal,
                 realrun: bool = True):
        super().__init__()
        self.hide()
        self.cookies = cookies
        self.sig_close_login = login_form
        self.is_realrun = realrun

        self.qsettings = QSettings(wgv_data.get_qsettings_file(),
                                   QSettings.IniFormat)
        self.threadpool = QThreadPool()
        self.api = WGR_API(self.cookies)

        self.side_dock_on = False
        self.side_dock = None
        self.tray = None
        self.main_tabs = None
        self.menu_bar = None
        # This widget is deleted upon completion
        self.progress_bar = QtProgressBar(
            self, title="Downloading Essential Resource Zips")
        self.sig_progress_bar.connect(self.progress_bar.update_value)
        # This bee is deleted upon completion
        self.bee_download_zip = CallbackWorker(self.init_zip_files,
                                               ([self.sig_progress_bar]),
                                               self.zip_download_finished)
        self.bee_download_zip.terminate()
Пример #5
0
 def __init__(self):
     super().__init__()
     self.qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
     self.setTabBar(TabBar())
     self.setTabPosition(QTabWidget.West)
     # can also add QIcon as 2nd argument
     self.ui_settings = UISettings(self.qsettings)
     self.addTab(self.ui_settings, "UI")
     self.game_settings = GameSettings(self.qsettings)
     self.addTab(self.game_settings, "GAME")
     self.tabs_settings = TabsSettings(self.qsettings)
     self.addTab(self.tabs_settings, "TABS")
Пример #6
0
    def __init__(self, parent, realrun: bool):
        super(SideDock, self).__init__(parent)
        self.is_realrun = realrun

        _, self.user_screen_h = wgv_utils.get_user_resolution()
        self.qsettings = QSettings(wgv_data.get_qsettings_file(), QSettings.IniFormat)
        if self.qsettings.contains(QKEYS.EXP_AUTO) and self.qsettings.value(QKEYS.EXP_AUTO, type=bool):
            logger.debug("Auto expedition is on")
            self.is_exp_auto = True
        else:
            logger.debug("Auto expedition is off")
            self.is_exp_auto = False

        self.equipment_names = wgv_data.get_shipEquipmnt()
        self.ship_names = wgv_data.get_processed_userShipVo()

        # index 0 for daily, 1 for weekly, 2+ for tasks/events
        self.task_counter_desc_labels = []
        self.task_counter_labels = []
        self.task_counter_timers = []
        self.task_counters = []

        self.name_layout_widget = QWidget(self)
        self.name_layout = QHBoxLayout(self.name_layout_widget)
        self.name_label = QLabel(self.name_layout_widget)
        self.lvl_label = QLabel(self.name_layout_widget)
        self.ship_count_label = QLabel(self.name_layout_widget)
        self.equip_count_label = QLabel(self.name_layout_widget)
        self.collect_count_label = QLabel(self.name_layout_widget)

        self.sign_widget = QLineEdit(self)
        self.table_model = ResourceTableModel()
        self.table_view = QTableView(self)
        self.bath_list_view = BathListView()
        self.bath_list_view_widget = QWidget(self)
        self.bath_list_view_layout = QVBoxLayout(self.bath_list_view_widget)
        self.triple_list_view_widget = QWidget(self)
        self.triple_list_view = QHBoxLayout(self.triple_list_view_widget)
        self.build_list_view = BuildListView()
        self.dev_list_view = DevListView()
        self.exp_list_view = ExpListView(parent.main_tabs)
        self.task_list_view = TaskListView()
        self.task_panel_widget = QWidget(self)
        self.task_panel_view = QHBoxLayout(self.task_panel_widget)
        self.countdowns_layout_widget = QWidget(self)
        self.countdowns_layout = QVBoxLayout(self.countdowns_layout_widget)

        self.sig_resized.connect(self.update_geometry)
        self.sig_closed.connect(parent.on_dock_closed)

        self._init_ui()
        self.set_data()
Пример #7
0
    def __init__(self, parent):
        super().__init__()
        self.parent = parent
        self.qsettings = QSettings(wgv_data.get_qsettings_file(), QSettings.IniFormat)
        self.version_log = None
        self.data_graph = UserDataGraph()

        self.init_file_menu()
        self.init_view_menu()
        self.init_links_menu()
        self.init_preferences_menu()
        # self.init_developers_menu()
        self.init_help_menu()
Пример #8
0
    def __init__(self, cookies: dict):
        self.server = cookies['server']
        self.channel = cookies['channel']
        self.cookies = cookies['cookies']

        self.hlp = LoginHelper()
        qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
        if qsettings.contains(QKEYS.CONN_API_RTY) is True:
            self.max_retry = qsettings.value(QKEYS.CONN_API_RTY, type=int)
        else:
            self.max_retry = 5
        if qsettings.contains(QKEYS.CONN_API_SLP) is True:
            self.sleep_time = qsettings.value(QKEYS.CONN_API_SLP, type=int)
        else:
            self.sleep_time = 3
Пример #9
0
    def __init__(self):
        self.session = requests.sessions.Session()
        self.qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
        if self.qsettings.contains(QKEYS.CONN_SESS_RTY) is True:
            self.max_retry = self.qsettings.value(QKEYS.CONN_SESS_RTY,
                                                  type=int)
        else:
            self.max_retry = 5
        if self.qsettings.contains(QKEYS.CONN_SESS_SLP) is True:
            self.sleep_time = self.qsettings.value(QKEYS.CONN_SESS_SLP,
                                                   type=int)
        else:
            self.sleep_time = 3

        self.accept_errors = (requests.exceptions.ConnectTimeout,
                              requests.exceptions.ConnectionError)
Пример #10
0
    def __init__(self):
        super().__init__()
        self._version_check = WGViewerVersionCheck()

        self.sig_login.connect(self.start_login)
        self.sig_close.connect(self.on_main_interface_setup)
        self.qsettings = QSettings(wgv_data.get_qsettings_file(),
                                   QSettings.IniFormat)
        self.encryptor = Encryptor()
        self.channel = ""
        self.server = ""
        self.mi = None
        self.res1: bool = False
        self.res2: bool = False

        self.lineEdit_username = QLineEdit()
        self.lineEdit_password = QLineEdit()
        self.combo_platform = QComboBox()
        self.combo_server = QComboBox()
        # TODO? it's hard to get this checkbox to render the same way across platforms (even with get_user_resolution())
        self.check_disclaimer = QCheckBox('I have read')
        # TODO? trailing space
        # To limit the trailing space of the checkbox text with max width; still, there is ~2 whitespaces width space presents
        # set text all in label would cause user unable to click text to toggle checkbox; differs from other checkbox, (bad design IMO)
        user_w, _ = wgv_utils.get_user_resolution()
        self.check_disclaimer.setMaximumWidth(int(0.08 * user_w))
        self.check_save = QCheckBox("Store login info locally with encryption")
        self.check_auto = QCheckBox("Auto login on the application start")
        self.button_login = QPushButton("Login")
        self.button_bypass = QPushButton("Bypass Login with Existing Cookie")
        self.button_bypass.setToolTip(
            "If you previously logged in with WGViewer AND haven't logged in through other means,\n"
            "you may use this option to bypass login.")

        self.container = QWidget()
        main_layout = QVBoxLayout()
        main_layout.addWidget(self.container)
        self.layout = QGridLayout(self.container)

        self.init_ui()
        self.setLayout(main_layout)

        self.auto_start()
Пример #11
0
    def __init__(self, tab_name: str, side_dock: SideDock, is_realrun: bool):
        super().__init__()
        self.setObjectName(tab_name)
        self.side_dock = side_dock
        self.resource_info: ResourceTableModel = self.side_dock.table_model
        self.is_realrun = is_realrun

        # Signals
        self.sig_fuel.connect(self.resource_info.update_fuel)
        self.sig_ammo.connect(self.resource_info.update_ammo)
        self.sig_steel.connect(self.resource_info.update_steel)
        self.sig_baux.connect(self.resource_info.update_bauxite)
        self.sig_repair.connect(self.resource_info.update_repair)
        self.sig_exp.connect(self.side_dock.update_lvl_label)

        # Members
        self.api = API_SIX(wgv_data.load_cookies())
        self.qsettings = QSettings(wgv_data.get_qsettings_file(),
                                   QSettings.IniFormat)
        self.user_ships = wgv_data.get_processed_userShipVo()
        self.battle_fleet: list = [None] * 6
        self.escort_DD: list = [None] * 2
        self.escort_CV: list = [None]
        self.user_chosen_cid: list = [None] * 9
        self.ship_select_window = None

        self.sortie = None
        # Threads
        self.bee_pre_battle = None
        self.bee_fresh_sortie = None
        self.bee_resume_sortie = None

        # UI members
        self.main_layout = QHBoxLayout(self)
        self.left_layout = QGridLayout()
        self.right_layout = QVBoxLayout()

        self.ticket_label = QLabel("?")
        self.button_purchase = QPushButton("?")
        self.adjutant_label = QLabel("?")
        self.adjutant_exp_label = QLabel("?/?")
        self.points_label = QLabel("?")

        self._label = None
        self._is_first_timer: bool = True
        self._is_speed_mode: bool = False
        self._clicks: int = 0
        self._is_timer_start: bool = False
        self._timer = QTimer(self)
        self._timer.timeout.connect(self._check_label)

        self.set_ticket_display()
        self.set_adjutant_display()

        self.ship_button_group = QButtonGroup()
        self.boat_pool_label = QLabel()
        self.fleet_label = QLabel()
        self.ui_buttons = QButtonGroup()
        self.button_set_ships = QPushButton('&Set fleet')
        self.button_pre_battle = QPushButton('&Pre-Battle Check')
        self.button_fresh_sortie = QPushButton('Fresh &Combat')
        self.button_resume_sortie = QPushButton('&Resume Combat')
        self.button_stop_sortie = QPushButton('Stop Task')
        self.multi_runs = QSpinBox()
        self.init_left_layout()

        self.right_text_box = QTextEdit()
        # after right_text_box creation
        self.logger = get_new_logger(name=QLOGS.TAB_THER,
                                     level=QLOGS.LVL_INFO,
                                     signal=self.right_text_box.append)
        self.init_right_layout()
        self.init_ui()
Пример #12
0
import logging
import os
import qdarkstyle
import re
import time

from random import randint
from threading import Event
from typing import List
from PyQt5.QtCore import QSettings, pyqtSlot

from src.data import get_qsettings_file
from src.func import qsettings_keys as QKEYS
from src.func.worker import Worker

_qsettings = QSettings(get_qsettings_file(), QSettings.IniFormat)
_sleep_event = Event()


def clear_desc(text: str) -> str:
    # This garbage code (like ^C454545FF00000000) is probably due to cocoa?
    return re.sub(r'\^.+?00000000', '', text)


def get_app_version() -> str:
    return '0.2.3.1dev'


def get_color_scheme() -> str:
    if get_color_option() == "native":
        return ""