mirror of
https://github.com/fishyboteso/fishyboteso.git
synced 2024-08-30 18:32:13 +00:00
made config global
This commit is contained in:
parent
c63ff4c3ba
commit
51560f26d9
@ -10,7 +10,8 @@ import fishy
|
||||
from fishy import web, helper, gui
|
||||
from fishy.engine.common.event_handler import EngineEventHandler
|
||||
from fishy.gui import GUI, splash
|
||||
from fishy.helper import Config, hotkey
|
||||
from fishy.helper import hotkey
|
||||
from fishy.helper.config import config
|
||||
|
||||
|
||||
def check_window_name(title):
|
||||
@ -22,11 +23,11 @@ def check_window_name(title):
|
||||
|
||||
|
||||
# noinspection PyBroadException
|
||||
def initialize(c: Config, window_to_hide):
|
||||
helper.create_shortcut_first(c)
|
||||
helper.initialize_uid(c)
|
||||
def initialize(window_to_hide):
|
||||
helper.create_shortcut_first()
|
||||
helper.initialize_uid()
|
||||
|
||||
new_session = web.get_session(c)
|
||||
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}")
|
||||
@ -44,14 +45,14 @@ def initialize(c: Config, window_to_hide):
|
||||
except Exception:
|
||||
logging.error(traceback.format_exc())
|
||||
|
||||
if not c.get("debug", False) and check_window_name(win32gui.GetWindowText(window_to_hide)):
|
||||
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.check_addon("ProvisionsChalutier")
|
||||
|
||||
if c.get("debug", False):
|
||||
if config.get("debug", False):
|
||||
helper.check_addon("FooAddon")
|
||||
|
||||
|
||||
@ -63,20 +64,19 @@ def main():
|
||||
pil_logger.setLevel(logging.INFO)
|
||||
|
||||
window_to_hide = win32gui.GetForegroundWindow()
|
||||
c = Config()
|
||||
|
||||
if not gui.check_eula(c):
|
||||
if not gui.check_eula():
|
||||
return
|
||||
|
||||
bot = EngineEventHandler(c, lambda: gui_window)
|
||||
gui_window = GUI(c, lambda: bot)
|
||||
bot = EngineEventHandler(lambda: gui_window)
|
||||
gui_window = GUI(lambda: bot)
|
||||
|
||||
hotkey.initalize()
|
||||
|
||||
gui_window.start()
|
||||
|
||||
logging.info(f"Fishybot v{fishy.__version__}")
|
||||
initialize(c, window_to_hide)
|
||||
initialize(window_to_hide)
|
||||
|
||||
bot.start_event_handler()
|
||||
|
||||
|
@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
|
||||
from threading import Thread
|
||||
from typing import Callable
|
||||
|
||||
from fishy.gui.funcs import GUIFuncs, GUIFuncsMock
|
||||
from fishy.gui.funcs import GUIFuncsMock
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from fishy.gui import GUI
|
||||
@ -11,12 +11,11 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
class IEngine(ABC):
|
||||
|
||||
def __init__(self, config, gui_ref: 'Callable[[], GUI]'):
|
||||
def __init__(self, gui_ref: 'Callable[[], GUI]'):
|
||||
self.get_gui = gui_ref
|
||||
self.start = False
|
||||
self.window = None
|
||||
self.thread = None
|
||||
self.config = config
|
||||
|
||||
@property
|
||||
def gui(self):
|
||||
|
@ -4,12 +4,12 @@ from fishy.engine.fullautofisher.engine import FullAuto
|
||||
|
||||
|
||||
class EngineEventHandler:
|
||||
def __init__(self, config, gui_ref):
|
||||
def __init__(self, gui_ref):
|
||||
self.event_handler_running = True
|
||||
self.event = []
|
||||
|
||||
self.semi_fisher_engine = SemiFisherEngine(config, gui_ref)
|
||||
self.full_fisher_engine = FullAuto(config, gui_ref)
|
||||
self.semi_fisher_engine = SemiFisherEngine(gui_ref)
|
||||
self.full_fisher_engine = FullAuto(gui_ref)
|
||||
|
||||
def start_event_handler(self):
|
||||
while self.event_handler_running:
|
||||
|
@ -1,5 +1,4 @@
|
||||
import logging
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
|
||||
import cv2
|
||||
@ -82,7 +81,6 @@ class WindowClient:
|
||||
"""
|
||||
Displays the processed image for debugging purposes
|
||||
:param ready_img: send ready image, just show the `ready_img` directly
|
||||
:param name: unique name for the image, used to create a new window
|
||||
:param resize: scale the image to make small images more visible
|
||||
:param func: function to process the image
|
||||
"""
|
||||
|
@ -12,6 +12,7 @@ from win32api import GetSystemMetrics
|
||||
import numpy as np
|
||||
from PIL import ImageGrab
|
||||
|
||||
from fishy.helper.config import config
|
||||
|
||||
|
||||
class Status(Enum):
|
||||
@ -31,7 +32,7 @@ class WindowServer:
|
||||
status = Status.STOPPED
|
||||
|
||||
|
||||
def init(borderless: bool):
|
||||
def init():
|
||||
"""
|
||||
Executed once before the main loop,
|
||||
Finds the game window, and calculates the offset to remove the title bar
|
||||
@ -42,7 +43,7 @@ def init(borderless: bool):
|
||||
client_rect = win32gui.GetClientRect(WindowServer.hwnd)
|
||||
WindowServer.windowOffset = math.floor(((rect[2] - rect[0]) - client_rect[2]) / 2)
|
||||
WindowServer.titleOffset = ((rect[3] - rect[1]) - client_rect[3]) - WindowServer.windowOffset
|
||||
if borderless:
|
||||
if config.get("borderless"):
|
||||
WindowServer.titleOffset = 0
|
||||
WindowServer.status = Status.RUNNING
|
||||
except pywintypes.error:
|
||||
@ -93,7 +94,7 @@ def start():
|
||||
if WindowServer.status == Status.RUNNING:
|
||||
return
|
||||
|
||||
init(False)
|
||||
init()
|
||||
if WindowServer.status == Status.RUNNING:
|
||||
Thread(target=run).start()
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
import math
|
||||
import logging
|
||||
import time
|
||||
from threading import Thread
|
||||
|
||||
from fishy.engine.fullautofisher.engine import FullAuto
|
||||
from pynput import keyboard, mouse
|
||||
|
||||
from fishy.helper import hotkey
|
||||
from fishy.helper.config import config
|
||||
from fishy.helper.helper import wait_until
|
||||
from fishy.helper.hotkey import Key
|
||||
|
||||
@ -85,7 +85,7 @@ class Calibrate():
|
||||
time_to_reach_bottom = time.time() - y_cal_start_time
|
||||
|
||||
self.engine.factors = move_factor, rot_factor, time_to_reach_bottom
|
||||
self.engine.config.set("full_auto_factors", self.engine.factors)
|
||||
config.set("full_auto_factors", self.engine.factors)
|
||||
logging.info(self.engine.factors)
|
||||
|
||||
hotkey.free_key(Key.F8)
|
||||
|
@ -5,17 +5,17 @@ import logging
|
||||
import time
|
||||
|
||||
import numpy as np
|
||||
import pywintypes
|
||||
import pytesseract
|
||||
|
||||
from fishy.engine import SemiFisherEngine
|
||||
from fishy.engine.common.window import WindowClient
|
||||
from fishy.engine.semifisher import fishing_event, fishing_mode
|
||||
from fishy.engine.semifisher import fishing_mode
|
||||
|
||||
from fishy.engine.common.IEngine import IEngine
|
||||
from pynput import keyboard, mouse
|
||||
|
||||
from fishy.helper import Config, hotkey
|
||||
from fishy.helper import hotkey
|
||||
from fishy.helper.config import config
|
||||
from fishy.helper.hotkey import Key
|
||||
|
||||
mse = mouse.Controller()
|
||||
@ -78,9 +78,9 @@ def unassign_keys():
|
||||
class FullAuto(IEngine):
|
||||
rotate_by = 30
|
||||
|
||||
def __init__(self, config, gui_ref):
|
||||
super().__init__(config, gui_ref)
|
||||
self.factors = self.config.get("full_auto_factors", None)
|
||||
def __init__(self, gui_ref):
|
||||
super().__init__(gui_ref)
|
||||
self.factors = config.get("full_auto_factors", None)
|
||||
self._tesseract_dir = None
|
||||
self._target = None
|
||||
|
||||
@ -96,7 +96,7 @@ class FullAuto(IEngine):
|
||||
|
||||
self.window = WindowClient(color=cv2.COLOR_RGB2GRAY, show_name="Full auto debug")
|
||||
self.window.crop = get_crop_coods(self.window)
|
||||
self._tesseract_dir = self.config.get("tesseract_dir", None)
|
||||
self._tesseract_dir = config.get("tesseract_dir", None)
|
||||
|
||||
if self._tesseract_dir is None:
|
||||
logging.warning("Can't start without Tesseract Directory")
|
||||
@ -189,7 +189,7 @@ class FullAuto(IEngine):
|
||||
|
||||
def set_target(self):
|
||||
t = self.get_coods()[:-1]
|
||||
self.config.set("target", t)
|
||||
config.set("target", t)
|
||||
print(f"target_coods are {t}")
|
||||
|
||||
def initalize_keys(self):
|
||||
@ -213,9 +213,8 @@ class FullAuto(IEngine):
|
||||
if __name__ == '__main__':
|
||||
logging.getLogger("").setLevel(logging.DEBUG)
|
||||
# noinspection PyTypeChecker
|
||||
c = Config()
|
||||
bot = FullAuto(c, None)
|
||||
fisher = SemiFisherEngine(c, None)
|
||||
bot = FullAuto(None)
|
||||
fisher = SemiFisherEngine(None)
|
||||
hotkey.initalize()
|
||||
fisher.toggle_start()
|
||||
bot.toggle_start()
|
||||
|
@ -1,9 +1,6 @@
|
||||
import json
|
||||
import logging
|
||||
import pickle
|
||||
import time
|
||||
from threading import Thread
|
||||
from tkinter.filedialog import asksaveasfile, askopenfile
|
||||
from tkinter.filedialog import askopenfile
|
||||
|
||||
from fishy.engine.fullautofisher.engine import FullAuto
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
import json
|
||||
import logging
|
||||
import pickle
|
||||
import time
|
||||
from threading import Thread
|
||||
from tkinter.filedialog import asksaveasfile
|
||||
|
||||
from fishy.engine.fullautofisher.engine import FullAuto
|
||||
|
@ -20,8 +20,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
|
||||
class SemiFisherEngine(IEngine):
|
||||
def __init__(self, config, gui_ref: 'Callable[[], GUI]'):
|
||||
super().__init__(config, gui_ref)
|
||||
def __init__(self, gui_ref: 'Callable[[], GUI]'):
|
||||
super().__init__(gui_ref)
|
||||
self.fishPixWindow = None
|
||||
|
||||
def run(self):
|
||||
@ -76,6 +76,6 @@ class SemiFisherEngine(IEngine):
|
||||
if __name__ == '__main__':
|
||||
logging.getLogger("").setLevel(logging.DEBUG)
|
||||
# noinspection PyTypeChecker
|
||||
fisher = SemiFisherEngine(None, None)
|
||||
fisher = SemiFisherEngine(None)
|
||||
fisher.toggle_start()
|
||||
|
||||
|
@ -14,6 +14,8 @@ from fishy.engine.semifisher.fishing_mode import State
|
||||
from fishy.helper import helper
|
||||
import keyboard
|
||||
|
||||
from fishy.helper.config import config
|
||||
|
||||
|
||||
class FishEvent:
|
||||
fishCaught = 0
|
||||
@ -34,6 +36,9 @@ class FishEvent:
|
||||
def init():
|
||||
# todo load config
|
||||
fishing_mode.subscribers.append(fisher_callback)
|
||||
FishEvent.action_key = config.get("action_key", 'e')
|
||||
FishEvent.uid = config.get("uid")
|
||||
FishEvent.sound = config.get("sound_notification", False)
|
||||
|
||||
|
||||
def destroy():
|
||||
|
@ -6,6 +6,7 @@ from fishy.gui.notification import _give_notification_link
|
||||
from tkinter import *
|
||||
from tkinter.ttk import *
|
||||
|
||||
from fishy.helper.config import config
|
||||
from fishy.helper.popup import PopUp
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
@ -14,8 +15,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
def start_fullfisher_config(gui: 'GUI'):
|
||||
def save():
|
||||
gui._config.set("tesseract_dir", tesseract_entry.get(), False)
|
||||
gui._config.save_config()
|
||||
gui.config.set("tesseract_dir", tesseract_entry.get(), False)
|
||||
gui.config.save_config()
|
||||
|
||||
top = PopUp(save, gui._root, background=gui._root["background"])
|
||||
controls_frame = Frame(top)
|
||||
@ -23,7 +24,7 @@ def start_fullfisher_config(gui: 'GUI'):
|
||||
|
||||
Label(controls_frame, text="Tesseract Directory:").grid(row=0, column=0)
|
||||
tesseract_entry = Entry(controls_frame, justify=CENTER)
|
||||
tesseract_entry.insert(0, gui._config.get("tesseract_dir", ""))
|
||||
tesseract_entry.insert(0, config.get("tesseract_dir", ""))
|
||||
tesseract_entry.grid(row=0, column=1)
|
||||
|
||||
controls_frame.pack(padx=(5, 5), pady=(5, 5))
|
||||
@ -32,10 +33,10 @@ def start_fullfisher_config(gui: 'GUI'):
|
||||
|
||||
def start_semifisher_config(gui: 'GUI'):
|
||||
def save():
|
||||
gui._config.set("action_key", action_key_entry.get(), False)
|
||||
gui._config.set("borderless", borderless.instate(['selected']), False)
|
||||
gui._config.set("sound_notification", sound.instate(['selected']), False)
|
||||
gui._config.save_config()
|
||||
gui.config.set("action_key", action_key_entry.get(), False)
|
||||
gui.config.set("borderless", borderless.instate(['selected']), False)
|
||||
gui.config.set("sound_notification", sound.instate(['selected']), False)
|
||||
gui.config.save_config()
|
||||
|
||||
top = PopUp(save, gui._root, background=gui._root["background"])
|
||||
controls_frame = Frame(top)
|
||||
@ -48,22 +49,22 @@ def start_semifisher_config(gui: 'GUI'):
|
||||
variable=gui._notify)
|
||||
gui._notify_check.grid(row=0, column=1)
|
||||
gui._notify_check['state'] = DISABLED
|
||||
is_subbed = web.is_subbed(gui._config.get('uid'))
|
||||
is_subbed = web.is_subbed(config.get('uid'))
|
||||
if is_subbed[1]:
|
||||
gui._notify_check['state'] = NORMAL
|
||||
gui._notify.set(is_subbed[0])
|
||||
|
||||
Label(controls_frame, text="Fullscreen: ").grid(row=1, column=0, pady=(5, 5))
|
||||
borderless = Checkbutton(controls_frame, var=BooleanVar(value=gui._config.get("borderless")))
|
||||
borderless = Checkbutton(controls_frame, var=BooleanVar(value=config.get("borderless")))
|
||||
borderless.grid(row=1, column=1)
|
||||
|
||||
Label(controls_frame, text="Action Key:").grid(row=2, column=0)
|
||||
action_key_entry = Entry(controls_frame, justify=CENTER)
|
||||
action_key_entry.grid(row=2, column=1)
|
||||
action_key_entry.insert(0, gui._config.get("action_key", "e"))
|
||||
action_key_entry.insert(0, config.get("action_key", "e"))
|
||||
|
||||
Label(controls_frame, text="Sound Notification: ").grid(row=3, column=0, pady=(5, 5))
|
||||
sound = Checkbutton(controls_frame, var=BooleanVar(value=gui._config.get("sound_notification")))
|
||||
sound = Checkbutton(controls_frame, var=BooleanVar(value=config.get("sound_notification")))
|
||||
sound.grid(row=3, column=1)
|
||||
|
||||
controls_frame.pack(padx=(5, 5), pady=(5, 5))
|
||||
|
@ -1,6 +1,9 @@
|
||||
from tkinter import messagebox
|
||||
|
||||
import typing
|
||||
|
||||
from fishy.helper.config import config
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from fishy.gui import GUI
|
||||
|
||||
@ -47,6 +50,6 @@ class GUIFuncs:
|
||||
|
||||
def start_engine(self):
|
||||
def start_engine():
|
||||
self.gui._config.set("last_started", self.gui._engine_var.get())
|
||||
config.set("last_started", self.gui._engine_var.get())
|
||||
self.gui.engines[self.gui._engine_var.get()][1]()
|
||||
self.gui.call_in_thread(start_engine)
|
||||
|
@ -1,6 +1,6 @@
|
||||
import logging
|
||||
from tkinter import OptionMenu, Button
|
||||
from typing import List, Callable
|
||||
from typing import List, Callable, Optional
|
||||
import threading
|
||||
|
||||
from ttkthemes import ThemedTk
|
||||
@ -10,18 +10,15 @@ from fishy.gui import config_top
|
||||
from fishy.gui.funcs import GUIFuncs
|
||||
from . import main_gui
|
||||
from .log_config import GUIStreamHandler
|
||||
from fishy.helper import Config
|
||||
from ..helper.config import config
|
||||
|
||||
|
||||
class GUI:
|
||||
def __init__(self, config: Config, get_engine: Callable[[], EngineEventHandler]):
|
||||
"""
|
||||
:param config: used to get and set configuration settings
|
||||
"""
|
||||
def __init__(self, get_engine: Callable[[], EngineEventHandler]):
|
||||
self.funcs = GUIFuncs(self)
|
||||
self.get_engine = get_engine
|
||||
|
||||
self._config = config
|
||||
self.config = config
|
||||
self._start_restart = False
|
||||
self._destroyed = True
|
||||
self._log_strings = []
|
||||
@ -29,13 +26,13 @@ class GUI:
|
||||
self._bot_running = False
|
||||
|
||||
# UI items
|
||||
self._root: ThemedTk
|
||||
self._root: Optional[ThemedTk] = None
|
||||
self._console = None
|
||||
self._start_button = None
|
||||
self._notify = None
|
||||
self._notify_check = None
|
||||
self._engine_select: OptionMenu
|
||||
self._config_button: Button
|
||||
self._engine_select: Optional[OptionMenu] = None
|
||||
self._config_button: Optional[Button] = None
|
||||
self._engine_var = None
|
||||
|
||||
self._thread = threading.Thread(target=self.create, args=())
|
||||
@ -56,7 +53,7 @@ class GUI:
|
||||
"Semi Fisher": [lambda: config_top.start_semifisher_config(self), self.engine.toggle_semifisher],
|
||||
}
|
||||
|
||||
if self._config.get('debug', False):
|
||||
if config.get('debug', False):
|
||||
engines["Full-Auto Fisher"] = [lambda: config_top.start_fullfisher_config(self),
|
||||
self.engine.toggle_fullfisher]
|
||||
return engines
|
||||
|
@ -10,6 +10,7 @@ from fishy import helper
|
||||
import typing
|
||||
|
||||
from fishy.helper import hotkey
|
||||
from ..helper.config import config
|
||||
from ..helper.hotkey import Key
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
@ -17,7 +18,7 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
|
||||
def _apply_theme(gui: 'GUI'):
|
||||
dark = gui._config.get("dark_mode", True)
|
||||
dark = config.get("dark_mode", True)
|
||||
gui._root["theme"] = "equilux" if dark else "breeze"
|
||||
gui._console["background"] = "#707070" if dark else "#ffffff"
|
||||
gui._console["fg"] = "#ffffff" if dark else "#000000"
|
||||
@ -39,11 +40,11 @@ def _create(gui: 'GUI'):
|
||||
filemenu.add_command(label="Create Anti-Ghost Shortcut", command=lambda: helper.create_shortcut(True))
|
||||
|
||||
def _toggle_mode():
|
||||
gui._config.set("dark_mode", not gui._config.get("dark_mode", True))
|
||||
config.set("dark_mode", not config.get("dark_mode", True))
|
||||
gui._start_restart = True
|
||||
|
||||
dark_mode_var = IntVar()
|
||||
dark_mode_var.set(int(gui._config.get('dark_mode', True)))
|
||||
dark_mode_var.set(int(config.get('dark_mode', True)))
|
||||
filemenu.add_checkbutton(label="Dark Mode", command=_toggle_mode,
|
||||
variable=dark_mode_var)
|
||||
|
||||
@ -54,10 +55,10 @@ def _create(gui: 'GUI'):
|
||||
command=lambda: gui.engine.check_pixel_val())
|
||||
|
||||
debug_var = IntVar()
|
||||
debug_var.set(int(gui._config.get('debug', False)))
|
||||
debug_var.set(int(config.get('debug', False)))
|
||||
|
||||
def keep_console():
|
||||
gui._config.set("debug", bool(debug_var.get()))
|
||||
config.set("debug", bool(debug_var.get()))
|
||||
logging.debug("Restart to update the changes")
|
||||
|
||||
debug_menu.add_checkbutton(label="Keep Console", command=keep_console, variable=debug_var)
|
||||
@ -84,7 +85,7 @@ def _create(gui: 'GUI'):
|
||||
|
||||
gui._engine_var = StringVar(start_frame)
|
||||
labels = list(engines.keys())
|
||||
last_started = gui._config.get("last_started", labels[0])
|
||||
last_started = config.get("last_started", labels[0])
|
||||
gui._engine_select = OptionMenu(start_frame, gui._engine_var, last_started, *labels)
|
||||
gui._engine_select.pack(side=LEFT)
|
||||
|
||||
|
@ -7,6 +7,7 @@ from fishy import web
|
||||
import typing
|
||||
|
||||
from fishy.libs.tkhtmlview import HTMLLabel
|
||||
from ..helper.config import config
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from . import GUI
|
||||
@ -14,8 +15,8 @@ if typing.TYPE_CHECKING:
|
||||
|
||||
# noinspection PyProtectedMember
|
||||
def _give_notification_link(gui: 'GUI'):
|
||||
if web.is_subbed(gui._config.get("uid"))[0]:
|
||||
web.unsub(gui._config.get("uid"))
|
||||
if web.is_subbed(config.get("uid"))[0]:
|
||||
web.unsub(config.get("uid"))
|
||||
return
|
||||
|
||||
# set notification checkbutton
|
||||
@ -26,8 +27,8 @@ def _give_notification_link(gui: 'GUI'):
|
||||
top_running[0] = False
|
||||
|
||||
def check():
|
||||
if web.sub(gui._config.get("uid"), discord_name.get()):
|
||||
if web.is_subbed(gui._config.get("uid"), False)[0]:
|
||||
if web.sub(config.get("uid"), discord_name.get()):
|
||||
if web.is_subbed(config.get("uid"), False)[0]:
|
||||
gui._notify.set(1)
|
||||
messagebox.showinfo("Note!", "Notification configured successfully!")
|
||||
quit_top()
|
||||
|
@ -5,20 +5,20 @@ from tkinter.ttk import *
|
||||
from PIL import Image, ImageTk
|
||||
|
||||
from fishy import helper, web
|
||||
from fishy.helper import Config
|
||||
from fishy.helper.config import config
|
||||
|
||||
hyperlinkPattern = re.compile(r'\[(?P<title>.*?)\]\((?P<address>.*?)\)')
|
||||
hyperlinkPattern = re.compile(r'\[(?P<title>.*?)\]\((?P<address>.*?)\)')
|
||||
|
||||
|
||||
def check_eula(config):
|
||||
def check_eula():
|
||||
if not config.get("eula", False):
|
||||
_run_terms_window(config)
|
||||
_run_terms_window()
|
||||
return config.get("eula", False)
|
||||
|
||||
return config.get("eula", False)
|
||||
|
||||
|
||||
def _run_terms_window(config: Config):
|
||||
def _run_terms_window():
|
||||
def accept():
|
||||
config.set("eula", True)
|
||||
root.destroy()
|
||||
|
@ -54,3 +54,5 @@ class Config:
|
||||
with open(filename, 'w') as f:
|
||||
f.write(json.dumps(self.config_dict))
|
||||
|
||||
|
||||
config = Config()
|
||||
|
@ -18,6 +18,7 @@ import winshell
|
||||
|
||||
from fishy import web
|
||||
from . import Config
|
||||
from .config import config
|
||||
|
||||
|
||||
def not_implemented():
|
||||
@ -43,7 +44,7 @@ def open_web(website):
|
||||
Thread(target=lambda: webbrowser.open(website, new=2)).start()
|
||||
|
||||
|
||||
def initialize_uid(config: Config):
|
||||
def initialize_uid():
|
||||
if config.get("uid") is not None:
|
||||
return
|
||||
|
||||
@ -100,10 +101,10 @@ def manifest_file(rel_path):
|
||||
return os.path.join(os.path.dirname(fishy.__file__), rel_path)
|
||||
|
||||
|
||||
def create_shortcut_first(c):
|
||||
if not c.get("shortcut_created", False):
|
||||
def create_shortcut_first():
|
||||
if not config.get("shortcut_created", False):
|
||||
create_shortcut(False)
|
||||
c.set("shortcut_created", True)
|
||||
config.set("shortcut_created", True)
|
||||
|
||||
|
||||
# noinspection PyBroadException
|
||||
|
@ -5,6 +5,7 @@ from whatsmyip.providers import GoogleDnsProvider
|
||||
from fishy import helper
|
||||
from . import urls
|
||||
from .decorators import fallback, uses_session
|
||||
from ..helper.config import config
|
||||
|
||||
_is_subbed = None
|
||||
_session_id = None
|
||||
@ -79,7 +80,7 @@ def unsub(uid):
|
||||
|
||||
|
||||
@fallback(None)
|
||||
def get_session(config, lazy=True):
|
||||
def get_session(lazy=True):
|
||||
global _session_id
|
||||
|
||||
if lazy and _session_id is not None:
|
||||
|
Loading…
Reference in New Issue
Block a user