-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmuutio.min.js
1 lines (1 loc) · 4.5 KB
/
muutio.min.js
1
!function(){function e(e,t){var o="https://app.muut.com/account/auth/login/?path="+t;o+="&sessionId="+e.sessionId;o+="&channelId="+e.channelId;n(o,750,500)}function n(e,n,t){var o=window,i=(o.screenX||o.screenLeft)+(o.outerWidth-n)/2,r=(o.screenY||o.screenTop)+50,s="left="+i+",top="+r+",status=0,scrollbars=0,menubar=0";o.open(e,"moot_popup",s+",width="+n+",height="+t).focus()}window.muutio=function(n,s,a){if(o(s)){a=s;s={}}if(typeof n=="string")n={path:"/"+n};s=s||{};var c=t({},["ready","close","reconnect"]),f=s.host||"https://client-api.muut.com",u=navigator.onLine;if(u===undefined)u=true;c.session=s.session||{sessionId:localStorage["jsonrpc.session"]};c.path=n.path;c.openLogin=function(){e(c.session,c.path)};c.call=function(e){if(!u)throw"not connected";var n={method:e,session:c.session,transport:"ajax"},i=[].slice.call(arguments),s=i.slice(1,-1),a=i.slice(-1)[0];if(!o(a)){if(a!==undefined)s=i.slice(1);a=undefined}n.params=s;c.emit("send",e,n.params);var p=s&&s[0]&&s[0].files,d=t({},["done","fail","always"]);d.done(function(e){a&&a.call(c,e.result)});if(window.File&&p){delete s[0].files;l(d,n,p)}else{r(f,n,function(n){c.emit("receive",n,e);if(n.error)d.fail(n.error);else d.done(n);d.always(n)})}return d};function l(e,n,t){var o=new FormData;t.forEach(function(e){o.append(e.altname||e.name,e)});o.append("jsonrpc",JSON.stringify(n));var i=new XMLHttpRequest;i.onload=function(n){var t=JSON.parse(n.target.response);e.emit("done",t).emit("always",n)};i.onerror=function(n){e.emit("fail",n).emit("always",n)};i.open("POST",f);i.send(o)}function p(e){if(e&&e.sessionId&&e.channelId){c.session=i({},e);try{localStorage["jsonrpc.session"]=e.sessionId}catch(n){}}}c.on("receive",function(e,n){p(e.session);if(n=="init"){v();p(e.session);c.time_offset=Date.now()-e.server_time*1e3;c.ready(e.result)}});c.on("moot",function(e,n){c.emit("thread",e,n)});c.start=function(e,n){c.call("init",e,function(e){n&&n.call(c,e);var t=!navigator.userAgent.toLowerCase().split("googlebot")[1]&&s.poll!==false;if(c.session&&t){try{if(window.EventSource)y();else S()}catch(o){console.error(o.stack||o);S()}}})};var d;if(navigator.onLine!==undefined){setInterval(function(){var e=navigator.onLine;if(e!=u){c.emit(e?"online":"offline");u=e}var n=d&&Date.now()-d;if(n>60*1e3&&u){d=Date.now();setTimeout(h,2e3)}},272)}function m(e){d=Date.now();if(!e||e=="ok"||e=="ping")return;var n=e.error||e.params&&e.params.error;if(!n){c.emit("receive",e);c.emit.apply(c,e.params)}else if(n=="error_invalid_channel"){h()}else{throw n}}function v(){delete c.session.channelId;if(w&&w.readyState==1){w.close();c.emit("close")}else if(I&&I.readyState==1){I.abort();c.emit("close")}}function h(){v();c.emit("reconnect")}function g(){var e=1+Math.round(Math.random()*2);return f.replace("client-api","events-"+e)}var w;function y(){var e=c.session;if(!e.channelId)return;w=new EventSource(g()+"/sse/"+e.sessionId+"/"+e.channelId);w.onmessage=function(e){m(JSON.parse(e.data))};w.onerror=function(e){w.close();setTimeout(y,2700)}}var I;function S(){if(!c.session.channelId)return;var e=i({transport:"ajax"},c.session);I=r(g()+"/notifications",e,function(e){m(e);if(e.error)I.abort();else S()}).fail(function(e,n){setTimeout(S,2700);try{I.abort()}catch(t){}})}c.start(n,a);return c};function t(e,n){var t=[].slice,r={};i(e,{on:function(n,t,i){n=n.split(" ");if(o(t)){i=t;t=0}if(o(i)){for(var s=0,a=n.length,c;s<a;s++){c=n[s].trim();(r[c]=r[c]||[]).push(i);if(a>1||n=="*")i.typed=true}if(t)i.typed?i("inline",t):i(t)}return e},off:function(n,t){if(n=="*")return r={};n=n.split(" ");for(var o=0,i;o<n.length;o++){i=n[o].trim();if(!t){r[i]=[];continue}var s=r[i]||[],a=-1;for(var c=0,f=s.length;c<f;c++){if(s[c]===t||s[c].listener===t){a=c;break}}if(a>=0)s.splice(a,1)}return e},one:function(n,t){function i(){e.off(n,t);t.apply(e,arguments)}if(o(t)){i.listener=t;e.on(n,i)}return e},emit:function(n){var o=t.call(arguments,1),i=r[n]||[],s=r["*"];if(s)i=i.concat(s);for(var a=0,c=i.length,f,u,l;a<c;++a){f=i[a];if(!f)continue;l=f.typed?[n].concat(o):o;if(f.apply(e,l)===false)return e}return e}});n.forEach(function(n){e[n]=function(i){return o(i)?e.on(n,i):e.emit.apply(e,[n].concat(t.call(arguments)))}});return e}function o(e){return typeof e=="function"}function i(e,n){n&&Object.keys(n).forEach(function(t){e[t]=n[t]});return e}function r(e,n,t){var o=new XMLHttpRequest;o.onload=function(e){var n=o.status;if(n>=200&&n<400){t(JSON.parse(e.target.response))}else{t({error:o.statusText,status:n})}};o.onerror=function(e){t({error:e})};o.open("POST",e);var i=JSON.stringify(n).replace(/\?\?/g,"??");o.send(i);return o}}();