示例#1
0
def _show(gui, currentversion, newversion, returns):
    def _clickYes():
        returns[0], returns[1] = True, False
        top.quit_top()

    def _clickNo():
        returns[0], returns[1] = False, bool(cbVar.get())
        top.quit_top()

    top = PopUp(helper.empty_function, gui._root)
    top.title("A wild fishy update appeared!")

    dialogLabel = tk.Label(top,
                           text="There is a new fishy update available (" +
                           currentversion + "->" + newversion +
                           "). Do you want to update now?")
    dialogLabel.grid(row=0, columnspan=2, padx=5, pady=5)

    cbVar = tk.IntVar()
    dialogCheckbutton = tk.Checkbutton(top,
                                       text="don't ask again",
                                       variable=cbVar)
    dialogCheckbutton.grid(row=1, columnspan=2, padx=5, pady=0)
    top.update()
    buttonWidth = int(dialogLabel.winfo_width() / 2) - 20

    pixelVirtual = tk.PhotoImage(
        width=1, height=1)  # trick to use buttonWidth as pixels, not #symbols
    dialogBtnNo = tk.Button(top,
                            text="No " + str(chr(10005)),
                            fg='red4',
                            command=_clickNo,
                            image=pixelVirtual,
                            width=buttonWidth,
                            compound="c")
    dialogBtnNo.grid(row=2, column=0, padx=5, pady=5)
    dialogBtnYes = tk.Button(top,
                             text="Yes " + str(chr(10003)),
                             fg='green',
                             command=_clickYes,
                             image=pixelVirtual,
                             width=buttonWidth,
                             compound="c")
    dialogBtnYes.grid(row=2, column=1, padx=5, pady=5)
    dialogBtnYes.focus_set()
    dialogBtnYes.update()

    top.protocol('WM_DELETE_WINDOW', _clickNo)
    top.start()
示例#2
0
def start_fullfisher_config(gui: 'GUI'):
    top = PopUp(helper.empty_function,
                gui._root,
                background=gui._root["background"])
    controls_frame = Frame(top)
    top.title("Config")

    def file_name():
        file = config.get("full_auto_rec_file", None)
        if file is None:
            return "Not Selected"
        return os.path.basename(file)

    def select_file():
        file = askopenfilename(filetypes=[('Python Files', '*.fishy')])
        if not file:
            logging.error("file not selected")
        else:
            config.set("full_auto_rec_file", file)
            logging.info(f"loaded {file}")

        file_name_label.set(file_name())

    file_name_label = StringVar(value=file_name())
    Label(controls_frame, textvariable=file_name_label).grid(row=0, column=0)
    Button(controls_frame, text="Select fishy file",
           command=select_file).grid(row=0, column=1)
    Label(controls_frame,
          text="Use semi-fisher config for rest").grid(row=2,
                                                       column=0,
                                                       columnspan=2)

    controls_frame.pack(padx=(5, 5), pady=(5, 5))
    top.start()
示例#3
0
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.save_config()

    top = PopUp(save, gui._root, background=gui._root["background"])
    controls_frame = Frame(top)
    top.title("Config")

    Label(controls_frame, text="Notification:").grid(row=0, column=0)

    gui._notify = IntVar(0)
    gui._notify_check = Checkbutton(controls_frame, command=lambda: _give_notification_link(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'))
    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.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"))

    controls_frame.pack(padx=(5, 5), pady=(5, 5))
    top.start()
示例#4
0
def start_fullfisher_config(gui: 'GUI'):
    def save():
        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)
    top.title("Config")

    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.grid(row=0, column=1)

    controls_frame.pack(padx=(5, 5), pady=(5, 5))
    top.start()
示例#5
0
    def _open_save_popup(self):
        top = PopUp(empty_function,
                    self.engine.get_gui()._root,
                    background=self.engine.get_gui()._root["background"])
        recorder_frame = ttk.Frame(top)
        top.title("Save Recording?")

        button = [-1]

        def button_pressed(_button):
            button[0] = _button
            top.quit_top()

        selected_text = f"\n\nSelected: {os.path.basename(config.get('full_auto_rec_file'))}" if config.get(
            'edit_recorder_mode') else ""
        ttk.Label(
            recorder_frame,
            text=f"Do you want to save the recording?{selected_text}").grid(
                row=0, column=0, columnspan=3, pady=(0, 5))

        _overwrite = tk.NORMAL if config.get(
            "edit_recorder_mode") else tk.DISABLED
        ttk.Button(recorder_frame,
                   text="Overwrite",
                   command=lambda: button_pressed(0),
                   state=_overwrite).grid(row=1, column=0, pady=(5, 0))
        ttk.Button(recorder_frame,
                   text="Save As",
                   command=lambda: button_pressed(1)).grid(row=1, column=1)
        ttk.Button(recorder_frame,
                   text="Cancel",
                   command=lambda: button_pressed(2)).grid(row=1, column=2)

        recorder_frame.pack(padx=(5, 5), pady=(5, 5))
        recorder_frame.update()
        top.start()

        return button[0]
示例#6
0
def start_semifisher_config(gui: 'GUI'):
    def save():
        gui.config.set("action_key", action_key_entry.get(), False)
        gui.config.set("collect_key", collect_key_entry.get(), False)
        gui.config.set("collect_allow_auto",
                       collect_allow_auto.instate(['selected']), False)
        gui.config.set("borderless", borderless.instate(['selected']), False)
        gui.config.set("jitter", jitter.instate(['selected']), False)
        gui.config.set("sound_notification", sound.instate(['selected']),
                       False)
        gui.config.save_config()

    def toggle_sub():
        if web.is_subbed()[0]:
            if web.unsub():
                gui._notify.set(0)
        else:
            if web.sub():
                gui._notify.set(1)

    def toggle_collect():
        gui.config.set("collect_allow_auto",
                       collect_allow_auto.instate(['selected']), False)
        collect_key_entry['state'] = NORMAL if config.get(
            "collect_allow_auto") else DISABLED

    def del_entry_key(event):
        event.widget.delete(0, "end")
        event.widget.insert(0, str(event.char))

    top = PopUp(save, gui._root, background=gui._root["background"])
    controls_frame = Frame(top)
    top.title("Config")

    Label(controls_frame, text="Notification:").grid(row=0, column=0)

    gui._notify = IntVar(0)
    gui._notify_check = Checkbutton(controls_frame,
                                    command=toggle_sub,
                                    variable=gui._notify)
    gui._notify_check.grid(row=0, column=1)
    gui._notify_check['state'] = DISABLED
    is_subbed = web.is_subbed()
    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=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, config.get("action_key", "e"))
    action_key_entry.bind("<KeyRelease>", del_entry_key)

    Label(controls_frame, text="Auto-Looting: ").grid(row=3,
                                                      column=0,
                                                      pady=(15, 0))
    collect_allow_auto = Checkbutton(
        controls_frame,
        command=toggle_collect,
        var=BooleanVar(value=config.get("collect_allow_auto")))
    collect_allow_auto.grid(row=3, column=1, pady=(15, 0))

    Label(controls_frame, text="Looting Key:").grid(row=4,
                                                    column=0,
                                                    pady=(0, 15))
    collect_key_entry = Entry(controls_frame, justify=CENTER)
    collect_key_entry.grid(row=4, column=1, pady=(0, 15))
    collect_key_entry.insert(0, config.get("collect_key", "r"))
    collect_key_entry['state'] = NORMAL if config.get(
        "collect_allow_auto") else DISABLED
    collect_key_entry.bind("<KeyRelease>", del_entry_key)

    Label(controls_frame, text="Sound Notification: ").grid(row=5,
                                                            column=0,
                                                            pady=(5, 5))
    sound = Checkbutton(controls_frame,
                        var=BooleanVar(value=config.get("sound_notification")))
    sound.grid(row=5, column=1)

    Label(controls_frame, text="Human-Like Delay: ").grid(row=6,
                                                          column=0,
                                                          pady=(5, 5))
    jitter = Checkbutton(controls_frame,
                         var=BooleanVar(value=config.get("jitter")))
    jitter.grid(row=6, column=1)

    controls_frame.pack(padx=(5, 5), pady=(5, 5))
    top.start()
示例#7
0
def start_fullfisher_config(gui: 'GUI'):
    top = PopUp(helper.empty_function,
                gui._root,
                background=gui._root["background"])
    controls_frame = ttk.Frame(top)
    top.title("Config")

    def file_name():
        file = config.get("full_auto_rec_file", None)
        if file is None:
            return "Not Selected"
        return os.path.basename(file)

    def select_file():
        file = askopenfilename(filetypes=[('Python Files', '*.fishy')])
        if not file:
            logging.error("file not selected")
        else:
            config.set("full_auto_rec_file", file)
            logging.info(f"loaded {file}")

        file_name_label.set(file_name())

    def start_calibrate():
        top.quit_top()
        config.set("calibrate", True)
        gui.engine.toggle_fullfisher()

    def mode_command():
        config.set("full_auto_mode", mode_var.get())
        edit_cb['state'] = "normal" if config.get(
            "full_auto_mode", 0) == FullAutoMode.Recorder.value else "disable"

    # todo repetitive code fix
    file_name_label = tk.StringVar(value=file_name())
    mode_var = tk.IntVar(value=config.get("full_auto_mode", 0))
    edit_var = tk.IntVar(value=config.get("edit_recorder_mode", 0))
    tabout_var = tk.IntVar(value=config.get("tabout_stop", 1))
    look_for_hole = tk.IntVar(value=config.get("look_for_hole", 1))
    row = 0

    ttk.Label(controls_frame, text="Calibration: ").grid(row=row,
                                                         column=0,
                                                         pady=(5, 0))
    ttk.Button(controls_frame, text="RUN",
               command=start_calibrate).grid(row=row, column=1)

    row += 1

    ttk.Label(controls_frame, text="Mode: ").grid(row=row, column=0, rowspan=2)
    ttk.Radiobutton(controls_frame,
                    text="Player",
                    variable=mode_var,
                    value=FullAutoMode.Player.value,
                    command=mode_command).grid(row=row,
                                               column=1,
                                               sticky="w",
                                               pady=(5, 0))
    row += 1
    ttk.Radiobutton(controls_frame,
                    text="Recorder",
                    variable=mode_var,
                    value=FullAutoMode.Recorder.value,
                    command=mode_command).grid(row=2, column=1, sticky="w")

    row += 1

    ttk.Label(controls_frame, text="Edit Mode: ").grid(row=row, column=0)
    edit_state = tk.NORMAL if config.get(
        "full_auto_mode", 0) == FullAutoMode.Recorder.value else tk.DISABLED
    edit_cb = ttk.Checkbutton(
        controls_frame,
        variable=edit_var,
        state=edit_state,
        command=lambda: config.set("edit_recorder_mode", edit_var.get()))
    edit_cb.grid(row=row, column=1, pady=(5, 0))

    row += 1

    ttk.Label(controls_frame, text="Tabout Stop: ").grid(row=row, column=0)
    ttk.Checkbutton(
        controls_frame,
        variable=tabout_var,
        command=lambda: config.set("tabout_stop", tabout_var.get())).grid(
            row=row, column=1, pady=(5, 0))

    row += 1

    ttk.Label(controls_frame, text="Look for hole: ").grid(row=row, column=0)
    ttk.Checkbutton(
        controls_frame,
        variable=look_for_hole,
        command=lambda: config.set("look_for_hole", look_for_hole.get())).grid(
            row=row, column=1, pady=(5, 0))

    row += 1

    ttk.Label(controls_frame, text="Fishy file: ").grid(row=row,
                                                        column=0,
                                                        rowspan=2)
    ttk.Button(controls_frame, text="Select",
               command=select_file).grid(row=row, column=1, pady=(5, 0))
    row += 1
    ttk.Label(controls_frame, textvariable=file_name_label).grid(row=row,
                                                                 column=1,
                                                                 columnspan=2)

    row += 1

    ttk.Label(controls_frame,
              text="Use semi-fisher config for rest").grid(row=row,
                                                           column=0,
                                                           columnspan=2,
                                                           pady=(20, 0))

    controls_frame.pack(padx=(5, 5), pady=(5, 10))
    controls_frame.update()

    top.start()