ami/src/ami.js/main.js

62 lines
1.8 KiB
JavaScript

#buildvars
#include compat.js
#include common.js
#include ctx.js
#include loadoverlay.js
#include mszauth.js
#include ts_chat.js
#include mami/domaintrans.jsx
#include mami/settings.js
(function() {
var loading = new AmiLoadingOverlay(document.body, true);
FutamiCommon.load(function(futami) {
if(typeof futami !== 'object') {
alert('Failed to load environment settings!');
return;
}
window.futami = futami;
var auth = new AmiMisuzuAuth(futami.get('token'));
var refreshInfo = function(next) {
auth.refresh(function(token) {
if(token.ok === false) {
location.assign(futami.get('login') + '?legacy=1');
return;
}
if(typeof next === 'function')
next(token.ok);
});
};
var ami = new AmiContext(futami.get('title'), auth, loading);
window.ami = ami;
const actuallyLoadChat = function() {
Chat.Main(auth);
ami.sockChat.open();
window.addEventListener('beforeunload', () => ami.sockChat.close());
};
setInterval(refreshInfo, 600000);
refreshInfo(function() {
if(!ami.settings.get('tmpSkipDomainPopUpThing')) {
const adt = AmiDomainTransition(
MamiSettings.isSupported() ? () => MamiSettings.exportFile() : undefined,
() => {
ami.settings.set('tmpSkipDomainPopUpThing', true);
adt.remove();
actuallyLoadChat();
}
);
adt.appendTo(document.body);
} else actuallyLoadChat();
});
});
})();