fishyboteso/fishy/__main__.py
Adam Saudagar 9f0974abb3 created migration code which is used to migrate data after an update
moved version code to constants so that code can access it too
changed Install/Remove Chalutier to FIshyQR in options
2021-11-21 16:30:41 +05:30

106 lines
2.7 KiB
Python

import ctypes
import logging
import os
import sys
import traceback
import win32con
import win32gui
import fishy
from fishy import gui, helper, web
from fishy.constants import chalutier, lam2, fishyqr, libgps
from fishy.engine.common.event_handler import EngineEventHandler
from fishy.gui import GUI, splash, update_dialog
from fishy.helper import hotkey
from fishy.helper.active_poll import active
from fishy.helper.config import config
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
def initialize(window_to_hide):
Migration.migrate()
helper.create_shortcut_first()
helper.initialize_uid()
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:
if helper.upgrade_avail() and not config.get("dont_ask_update", False):
cv, hv = helper.versions()
update_now, dont_ask_update = update_dialog.start(cv, hv)
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())
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():
active.init()
config.init()
splash.start()
hotkey.init()
print("launching please wait...")
pil_logger = logging.getLogger('PIL')
pil_logger.setLevel(logging.INFO)
window_to_hide = win32gui.GetForegroundWindow()
if not gui.check_eula():
return
bot = EngineEventHandler(lambda: gui_window)
gui_window = GUI(lambda: bot)
hotkey.start()
logging.info(f"Fishybot v{fishy.__version__}")
initialize(window_to_hide)
gui_window.start()
active.start()
bot.start_event_handler()
config.stop()
hotkey.stop()
active.stop()
if __name__ == "__main__":
main()