mirror of
https://github.com/fishyboteso/fishyboteso.git
synced 2024-08-30 18:32:13 +00:00
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
This commit is contained in:
parent
8ae46dd5a5
commit
9f0974abb3
@ -1,2 +1,4 @@
|
|||||||
|
from fishy import constants
|
||||||
|
|
||||||
from fishy.__main__ import main
|
from fishy.__main__ import main
|
||||||
__version__ = "0.5.2"
|
__version__ = constants.version
|
||||||
|
@ -9,13 +9,14 @@ import win32gui
|
|||||||
|
|
||||||
import fishy
|
import fishy
|
||||||
from fishy import gui, helper, web
|
from fishy import gui, helper, web
|
||||||
from fishy.constants import chalutier, lam2
|
from fishy.constants import chalutier, lam2, fishyqr, libgps
|
||||||
from fishy.engine.common.event_handler import EngineEventHandler
|
from fishy.engine.common.event_handler import EngineEventHandler
|
||||||
from fishy.gui import GUI, splash, update_dialog
|
from fishy.gui import GUI, splash, update_dialog
|
||||||
from fishy.helper import hotkey
|
from fishy.helper import hotkey
|
||||||
from fishy.helper.active_poll import active
|
from fishy.helper.active_poll import active
|
||||||
from fishy.helper.config import config
|
from fishy.helper.config import config
|
||||||
from fishy.helper.hotkey.hotkey_process import hotkey
|
from fishy.helper.hotkey.hotkey_process import hotkey
|
||||||
|
from fishy.helper.migration import Migration
|
||||||
|
|
||||||
|
|
||||||
def check_window_name(title):
|
def check_window_name(title):
|
||||||
@ -28,6 +29,8 @@ def check_window_name(title):
|
|||||||
|
|
||||||
# noinspection PyBroadException
|
# noinspection PyBroadException
|
||||||
def initialize(window_to_hide):
|
def initialize(window_to_hide):
|
||||||
|
Migration.migrate()
|
||||||
|
|
||||||
helper.create_shortcut_first()
|
helper.create_shortcut_first()
|
||||||
helper.initialize_uid()
|
helper.initialize_uid()
|
||||||
|
|
||||||
@ -62,10 +65,7 @@ def initialize(window_to_hide):
|
|||||||
helper.install_thread_excepthook()
|
helper.install_thread_excepthook()
|
||||||
sys.excepthook = helper.unhandled_exception_logging
|
sys.excepthook = helper.unhandled_exception_logging
|
||||||
|
|
||||||
if not config.get("addoninstalled", 0) or helper.get_addonversion(chalutier[0]) < chalutier[2]:
|
helper.install_required_addons()
|
||||||
helper.install_addon(*chalutier)
|
|
||||||
helper.install_addon(*lam2)
|
|
||||||
config.set("addoninstalled", helper.get_addonversion(chalutier[0]))
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
apiversion = 2
|
apiversion = 2
|
||||||
chalutier = ("Chalutier", "https://www.esoui.com/downloads/dl2934/Chalutier_1.1.4.zip", 114)
|
|
||||||
lam2 = ("LibAddonMenu-2.0", "https://www.esoui.com/downloads/dl7/LibAddonMenu-2.0r32.zip", 32)
|
|
||||||
|
|
||||||
fishyqr = ("FishyQR", "https://github.com/fishyboteso/FishyQR/files/6329586/FishyQR.zip", 100)
|
# removed since 0.5.3
|
||||||
|
chalutier = ("Chalutier", "https://www.esoui.com/downloads/dl2934/Chalutier_1.1.4.zip", 114)
|
||||||
|
|
||||||
|
# addons used
|
||||||
|
lam2 = ("LibAddonMenu-2.0", "https://www.esoui.com/downloads/dl7/LibAddonMenu-2.0r32.zip", 32)
|
||||||
|
fishyqr = ("FishyQR", "https://github.com/fishyboteso/FishyQR/files/7575974/FishyQR.zip", 101)
|
||||||
libgps = ("LibGPS", "https://cdn.esoui.com/downloads/file601/LibGPS_3_0_3.zip", 30)
|
libgps = ("LibGPS", "https://cdn.esoui.com/downloads/file601/LibGPS_3_0_3.zip", 30)
|
||||||
|
|
||||||
|
version = "0.5.3"
|
||||||
|
@ -46,12 +46,6 @@ class FullAuto(IEngine):
|
|||||||
self.mode = None
|
self.mode = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
addons_req = [libgps, lam2, fishyqr]
|
|
||||||
for addon in addons_req:
|
|
||||||
if not helper.addon_exists(*addon):
|
|
||||||
helper.install_addon(*addon)
|
|
||||||
|
|
||||||
self.gui.bot_started(True)
|
self.gui.bot_started(True)
|
||||||
self.window = WindowClient(color=cv2.COLOR_RGB2GRAY, show_name="Full auto debug")
|
self.window = WindowClient(color=cv2.COLOR_RGB2GRAY, show_name="Full auto debug")
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from ttkthemes import ThemedTk
|
|||||||
from fishy import helper
|
from fishy import helper
|
||||||
from fishy.web import web
|
from fishy.web import web
|
||||||
|
|
||||||
from ..constants import chalutier, lam2
|
from ..constants import chalutier, lam2, fishyqr
|
||||||
from ..helper.config import config
|
from ..helper.config import config
|
||||||
from .discord_login import discord_login
|
from .discord_login import discord_login
|
||||||
from ..helper.hotkey.hotkey_process import hotkey
|
from ..helper.hotkey.hotkey_process import hotkey
|
||||||
@ -59,15 +59,13 @@ def _create(gui: 'GUI'):
|
|||||||
filemenu.add_command(label="Update", command=helper.update)
|
filemenu.add_command(label="Update", command=helper.update)
|
||||||
|
|
||||||
def installer():
|
def installer():
|
||||||
if filemenu.entrycget(4, 'label') == "Remove Chalutier":
|
if filemenu.entrycget(4, 'label') == "Remove FishyQR":
|
||||||
if helper.remove_addon(chalutier[0]) == 0:
|
if helper.remove_addon(fishyqr[0]) == 0:
|
||||||
filemenu.entryconfigure(4, label="Install Chalutier")
|
filemenu.entryconfigure(4, label="Install FishyQR")
|
||||||
else:
|
else:
|
||||||
r = helper.install_addon(*chalutier)
|
helper.install_required_addons(True)
|
||||||
r += helper.install_addon(*lam2)
|
filemenu.entryconfigure(4, label="Remove FishyQR")
|
||||||
if r == 0:
|
chaEntry = "Remove FishyQR" if helper.addon_exists(fishyqr[0]) else "Install FishyQR"
|
||||||
filemenu.entryconfigure(4, label="Remove Chalutier")
|
|
||||||
chaEntry = "Remove Chalutier" if helper.addon_exists(chalutier[0]) else "Install Chalutier"
|
|
||||||
filemenu.add_command(label=chaEntry, command=installer)
|
filemenu.add_command(label=chaEntry, command=installer)
|
||||||
menubar.add_cascade(label="Options", menu=filemenu)
|
menubar.add_cascade(label="Options", menu=filemenu)
|
||||||
|
|
||||||
|
@ -5,5 +5,5 @@ from .helper import (addon_exists, create_shortcut, create_shortcut_first,
|
|||||||
install_addon, install_thread_excepthook, manifest_file,
|
install_addon, install_thread_excepthook, manifest_file,
|
||||||
not_implemented, open_web, playsound_multiple,
|
not_implemented, open_web, playsound_multiple,
|
||||||
remove_addon, restart, unhandled_exception_logging,
|
remove_addon, restart, unhandled_exception_logging,
|
||||||
update)
|
update, install_required_addons)
|
||||||
from .luaparser import sv_color_extract
|
from .luaparser import sv_color_extract
|
||||||
|
@ -22,6 +22,8 @@ from win32gui import GetForegroundWindow, GetWindowText
|
|||||||
|
|
||||||
import fishy
|
import fishy
|
||||||
from fishy import web
|
from fishy import web
|
||||||
|
from fishy.constants import libgps, lam2, fishyqr
|
||||||
|
from fishy.helper.config import config
|
||||||
|
|
||||||
|
|
||||||
def playsound_multiple(path, count=2):
|
def playsound_multiple(path, count=2):
|
||||||
@ -190,17 +192,34 @@ def get_addonversion(name, url=None, v=None):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def install_required_addons(force=False):
|
||||||
|
addons_req = [libgps, lam2, fishyqr]
|
||||||
|
addon_version = config.get("addon_version", {})
|
||||||
|
installed = False
|
||||||
|
for addon in addons_req:
|
||||||
|
if force or (addon_exists(*addon) and
|
||||||
|
(addon[0] not in addon_version or (
|
||||||
|
addon[0] in addon_version and addon_version[addon[0]] < addon[2]))):
|
||||||
|
remove_addon(*addon)
|
||||||
|
install_addon(*addon)
|
||||||
|
addon_version[addon[0]] = addon[2]
|
||||||
|
installed = True
|
||||||
|
config.set("addon_version", addon_version)
|
||||||
|
if installed:
|
||||||
|
logging.info("Please make sure to enable \"Allow outdated addons\" in ESO")
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyBroadException
|
# noinspection PyBroadException
|
||||||
def install_addon(name, url, v=None):
|
def install_addon(name, url, v=None):
|
||||||
try:
|
try:
|
||||||
r = requests.get(url, stream=True)
|
r = requests.get(url, stream=True)
|
||||||
z = ZipFile(BytesIO(r.content))
|
z = ZipFile(BytesIO(r.content))
|
||||||
z.extractall(path=get_addondir())
|
z.extractall(path=get_addondir())
|
||||||
logging.info("Add-On " + name +
|
logging.info("Add-On " + name + " installed successfully!")
|
||||||
" installed successfully!\nPlease make sure to enable \"Allow outdated addons\" in ESO")
|
|
||||||
return 0
|
return 0
|
||||||
except Exception:
|
except Exception:
|
||||||
logging.error("Could not install Add-On " + name + ", try doing it manually")
|
logging.error("Could not install Add-On " + name + ", try doing it manually")
|
||||||
|
traceback.print_exc()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
33
fishy/helper/migration.py
Normal file
33
fishy/helper/migration.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from fishy.helper.auto_update import _normalize_version
|
||||||
|
|
||||||
|
from fishy.constants import chalutier, version
|
||||||
|
from fishy.helper import helper
|
||||||
|
from .config import config
|
||||||
|
|
||||||
|
|
||||||
|
class Migration:
|
||||||
|
@staticmethod
|
||||||
|
def up_to_0_5_3():
|
||||||
|
helper.remove_addon(*chalutier)
|
||||||
|
config.delete("addoninstalled")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def migrate():
|
||||||
|
prev_version = _normalize_version(config.get("prev_version", "0.0.0"))
|
||||||
|
current_version = _normalize_version(version)
|
||||||
|
|
||||||
|
if current_version > prev_version:
|
||||||
|
for v, f in migration_code:
|
||||||
|
if prev_version < _normalize_version(v) <= current_version:
|
||||||
|
logging.info(f"running migration for {v}")
|
||||||
|
f()
|
||||||
|
config.set("prev_version", version)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
migration_code = [
|
||||||
|
# version, upgrade_code
|
||||||
|
("0.5.3", Migration.up_to_0_5_3)
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user