Spaces:
Running
Running
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() | |