fishyboteso/fishy/__main__.py

106 lines
2.7 KiB
Python
Raw Normal View History

import ctypes
import logging
import os
import sys
import traceback
2021-05-09 07:05:51 +00:00
import win32con
import win32gui
import fishy
2021-05-09 07:05:51 +00:00
from fishy import gui, helper, web
from fishy.constants import chalutier, lam2, fishyqr, libgps
from fishy.engine.common.event_handler import EngineEventHandler
2021-02-14 18:07:49 +00:00
from fishy.gui import GUI, splash, update_dialog
2020-10-17 19:06:07 +00:00
from fishy.helper import hotkey
2021-05-16 03:04:35 +00:00
from fishy.helper.active_poll import active
2020-10-17 19:06:07 +00:00
from fishy.helper.config import config
2021-05-15 22:40:48 +00:00
from fishy.helper.hotkey.hotkey_process import hotkey
from fishy.helper.migration import Migration
def check_window_name(title):
titles = ["Command Prompt", "PowerShell", "Fishy"]
for t in titles:
if t in title:
return True
return False
# noinspection PyBroadException
2020-10-17 19:06:07 +00:00
def initialize(window_to_hide):
Migration.migrate()
2020-10-17 19:06:07 +00:00
helper.create_shortcut_first()
helper.initialize_uid()
2020-10-17 19:06:07 +00:00
new_session = web.get_session()
if new_session is None:
logging.error("Couldn't create a session, some features might not work")
print(f"created session {new_session}")
try:
is_admin = os.getuid() == 0
except AttributeError:
is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
if is_admin:
logging.info("Running with admin privileges")
try:
2021-02-14 18:07:49 +00:00
if helper.upgrade_avail() and not config.get("dont_ask_update", False):
2021-05-09 09:09:26 +00:00
cv, hv = helper.versions()
update_now, dont_ask_update = update_dialog.start(cv, hv)
2021-02-14 18:07:49 +00:00
if dont_ask_update:
config.set("dont_ask_update", dont_ask_update)
else:
config.delete("dont_ask_update")
if update_now:
helper.auto_upgrade()
except Exception:
logging.error(traceback.format_exc())
2020-10-17 19:06:07 +00:00
if not config.get("debug", False) and check_window_name(win32gui.GetWindowText(window_to_hide)):
win32gui.ShowWindow(window_to_hide, win32con.SW_HIDE)
helper.install_thread_excepthook()
sys.excepthook = helper.unhandled_exception_logging
helper.install_required_addons()
def main():
2021-05-16 03:04:35 +00:00
active.init()
config.init()
splash.start()
2021-05-15 22:40:48 +00:00
hotkey.init()
print("launching please wait...")
pil_logger = logging.getLogger('PIL')
pil_logger.setLevel(logging.INFO)
window_to_hide = win32gui.GetForegroundWindow()
2020-10-17 19:06:07 +00:00
if not gui.check_eula():
return
2020-10-17 19:06:07 +00:00
bot = EngineEventHandler(lambda: gui_window)
gui_window = GUI(lambda: bot)
2021-05-15 22:40:48 +00:00
hotkey.start()
logging.info(f"Fishybot v{fishy.__version__}")
2020-10-17 19:06:07 +00:00
initialize(window_to_hide)
2021-02-14 18:07:12 +00:00
gui_window.start()
2021-05-16 03:04:35 +00:00
active.start()
2021-02-14 18:07:12 +00:00
bot.start_event_handler()
config.stop()
2021-05-15 22:40:48 +00:00
hotkey.stop()
2021-05-16 03:04:35 +00:00
active.stop()
if __name__ == "__main__":
main()