createjs.Sound.registerSound("/assets/packages/static/openvk/audio/notify.mp3", "notification");

function __actualPlayNotifSound() {
    createjs.Sound.play("notification");
}

window.playNotifSound = Function.noop;

async function setupNotificationListener() {
    console.warn("Setting up notifications listener...");
    
    while(true) {
        let notif;
        try {
            notif = await API.Notifications.fetch();
        } catch(rejection) {
            if(rejection.message !== "Nothing to report") {
                console.error(rejection);
                return;
            }
            
            console.info("No new notifications discovered... Redialing event broker");
            continue;
        }
        
        
        playNotifSound();
        NewNotification(notif.title, notif.body, notif.ava, Function.noop, notif.priority * 6000);
        console.info("New notification", notif);
        
        API.Notifications.ack();
    }
};

setupNotificationListener();

u(document.body).on("click", () => window.playNotifSound = window.__actualPlayNotifSound);