Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/smart_advice.py
from defence360agent.rpc_tools import lookup
from defence360agent.utils import Scope
from defence360agent.contracts.config import ControlPanelConfig
from defence360agent.myimunify.advice.advice_manager import (
    get_advice_notifications,
    make_advice,
)
from defence360agent.myimunify.advice.hosting_smart_advice_api import (
    sync_advices,
)


class SmartAdviceEndpoints(lookup.RootEndpoints):
    SCOPE = Scope.IM360

    @lookup.bind("smart-advice", "notifications")
    async def smart_advice_notifications(self):
        if not ControlPanelConfig.SMART_ADVICE_ALLOWED:
            return []
        return await get_advice_notifications()

    @lookup.bind("smart-advice", "get-options")
    async def smart_advice_get_options(self):
        return {
            "mu_plugin_installation": ControlPanelConfig.SMART_ADVICE_ALLOWED,
            "advice_email_notification": ControlPanelConfig.ADVICE_EMAIL_NOTIFICATION,
        }

    @lookup.bind("smart-advice", "sync")
    async def sync_smart_advice(self):
        if not ControlPanelConfig.SMART_ADVICE_ALLOWED:
            return []
        advices = await make_advice()
        ok = await sync_advices(advices)
        if ok:
            return []
        else:
            raise Exception("Failed to sync advices")

F1le Man4ger