Example #1
0
def exit_gracefully(signum, frame):
    log.warning("Bye!")

    try:
        redis.save()
    except Exception:
        log.error("Exiting immediately!")
    os.kill(os.getpid(), signal.SIGUSR1)
Example #2
0
def _convert_time(__t: dict) -> str:
    from datetime import timedelta

    sec = timedelta(**__t).total_seconds()
    # this works on basis that days, hours, minutes are whole numbers!
    # check days first
    if sec % 86400 == 0:
        return f"{round(sec / 86400)}d"
    elif sec % 3600 == 0:
        # check hours
        return f"{round(sec / 3600)}h"
    elif sec % 60 == 0:
        # check minutes
        return f"{round(sec / 60)}m"
    else:
        log.warning(f"Found unexpected value {sec}...!")
Example #3
0
    for module_name in modules:
        # Load pm_menu at last
        if module_name == "pm_menu":
            continue
        log.debug(f"Importing <d><n>{module_name}</></>")
        imported_module = import_module("DaisyX.modules." + module_name)
        if hasattr(imported_module, "__help__"):
            if hasattr(imported_module, "__mod_name__"):
                MOD_HELP[
                    imported_module.__mod_name__] = imported_module.__help__
            else:
                MOD_HELP[imported_module.__name__] = imported_module.__help__
        LOADED_MODULES.append(imported_module)
    log.info("Modules loaded!")
else:
    log.warning("Not importing modules!")

loop = asyncio.get_event_loop()

import_module("DaisyX.modules.pm_menu")
# Import misc stuff
import_module("DaisyX.utils.exit_gracefully")
if not get_bool_key("DEBUG_MODE"):
    import_module("DaisyX.utils.sentry")


async def before_srv_task(loop):
    for module in [
            m for m in LOADED_MODULES if hasattr(m, "__before_serving__")
    ]:
        log.debug("Before serving: " + module.__name__)