import os import sys import gradio as gr import json from assets.i18n.i18n import I18nAuto from assets.discord_presence import RPCManager now_dir = os.getcwd() sys.path.append(now_dir) i18n = I18nAuto() config_file = os.path.join(now_dir, "assets", "config.json") def load_config_presence(): with open(config_file, "r", encoding="utf8") as file: config = json.load(file) return config["discord_presence"] def save_config(value): with open(config_file, "r", encoding="utf8") as file: config = json.load(file) config["discord_presence"] = value with open(config_file, "w", encoding="utf8") as file: json.dump(config, file, indent=2) def presence_tab(): with gr.Row(): with gr.Column(): presence = gr.Checkbox( label=i18n("Enable Applio integration with Discord presence"), info=i18n( "It will activate the possibility of displaying the current Applio activity in Discord." ), interactive=True, value=load_config_presence(), ) presence.change( fn=toggle, inputs=[presence], outputs=[], ) def toggle(checkbox): save_config(bool(checkbox)) if load_config_presence() == True: try: RPCManager.start_presence() except KeyboardInterrupt: RPCManager.stop_presence() else: RPCManager.stop_presence()