瀏覽代碼

[add][Refs #28] /shrug command

B Thibault 8 年之前
父節點
當前提交
088d977dd0
共有 3 個文件被更改,包括 64 次插入49 次删除
  1. 1 11
      cli/ui.js
  2. 24 0
      cli/workflow.js
  3. 39 38
      srv/public/slack.min.js

+ 1 - 11
cli/ui.js

@@ -849,17 +849,7 @@ document.addEventListener('DOMContentLoaded', function() {
         e.preventDefault();
         var input =document.getElementById(R.id.message.input);
         if (SELECTED_ROOM && input.value) {
-            var success = true;
-            if (input.value[0] === '/' && !REPLYING_TO) {
-                var endCmd = input.value.indexOf(' ')
-                    ,cmd = input.value.substr(1, endCmd === -1 ? undefined : endCmd -1)
-                    ,args = endCmd === -1 ? "" : input.value.substr(endCmd);
-
-                success = doCommand(SELECTED_ROOM, cmd, args.trim());
-            } else {
-                sendMsg(SELECTED_ROOM, input.value, REPLYING_TO);
-            }
-            if (success) {
+            if (onTextEntered(input.value)) {
                 input.value = "";
                 if (REPLYING_TO) {
                     REPLYING_TO = null;

+ 24 - 0
cli/workflow.js

@@ -134,8 +134,14 @@ function uploadFile(chan, filename, file, callback) {
 **/
 function doCommand(chan, cmd, args) {
     if (cmd == "me") {
+        if (REPLYING_TO)
+            return false;
         sendMeMessage(chan, args);
         return true;
+    } else if (cmd == "shrug") {
+        if (args.length)
+            args += ' ';
+        return onTextEntered(args + "¯_(ツ)_/¯", true);
     }
     console.log("Unknown command " +cmd);
     return false;
@@ -186,6 +192,24 @@ function sendMeMessage(chan, msg) {
     xhr.send(null);
 }
 
+/**
+ * @param {string} input
+ * @param {boolean=} skipCommand
+ * @return {boolean} true on recognized input
+**/
+function onTextEntered(input, skipCommand) {
+    var success = true;
+    if (input[0] === '/' && skipCommand !== true) {
+        var endCmd = input.indexOf(' ')
+            ,cmd = input.substr(1, endCmd === -1 ? undefined : endCmd -1)
+            ,args = endCmd === -1 ? "" : input.substr(endCmd);
+
+        return doCommand(SELECTED_ROOM, cmd, args.trim());
+    }
+    sendMsg(SELECTED_ROOM, input, REPLYING_TO);
+    return true;
+}
+
 /**
  * @param {SlackChan|SlackGroup|SlackIms} chan
  * @param {SlackMessage|null=} msg

+ 39 - 38
srv/public/slack.min.js

@@ -1,51 +1,52 @@
 function aa(a){this.id=a;this.a={P:"",S:"",U:"",V:"",J:"",K:"",M:"",W:""}}function ba(a){this.id=a;this.a={}}function ca(a){this.id=a;this.a={}}function da(a,b){this.id=a;this.f=b}function ea(a){this.id=a;this.a={N:"",O:"",m:"",u:"",L:"",T:""};this.f={};this.c=this.b=null}function fa(){this.b={};this.a=[]}function ga(a,b){a.b=JSON.parse(b.emoji_use);b.highlight_words?a.a=(b.highlight_words||"").split(",").filter(function(a){return""!==a.trim()}):b.highlights&&(a.a=b.highlights)}
-function ha(a){this.id=a;this.a={R:"",m:"",u:""};this.c=this.b=null}function n(){this.f=null;this.h={};this.l={};this.A={};this.b={};this.a=null;this.j={};this.c={}}function t(a,b){return a.b[b]||a.j[b]||null}function y(a,b){return a.h[b]||a.A[b]||a.l[b]||null}"undefined"!==typeof module&&(module.I.X=n);function ia(a,b){this.c=a.user||a.bot_id;this.j=a.username;this.id=a.ts;this.b=b||parseFloat(a.ts);this.text=a.text||"";this.h=a.attachments||[];this.i=!!a.edited;this.f=a.removed||!1;this.l="me_message"===a.subtype||a.isMeMessage;this.a={};this.version=this.b;var d=this;a.reactions&&a.reactions.forEach(function(a){d.a[a.name]=[];a.users.forEach(function(b){d.a[a.name].push(b)})})}
-function ja(a,b,d){b?(a.text=b.text||"",b.attachments&&(a.h=b.attachments),a.i=!!b.edited,a.f=!!b.removed,b.reactions&&(a.a={},b.reactions.forEach(function(b){a.a[b.name]=[];b.users.forEach(function(d){a.a[b.name].push(d)})}))):a.f=!0;a.version=d}function z(a,b,d){this.id="string"===typeof a?a:a.id;this.a=[];this.b=b;d&&A(this,d)}function ka(a,b,d,c){var f=!1;a.a[b]&&(1===a.a[b].length&&a.a[b][0]===d?(delete a.a[b],f=!0):a.a[b]=a.a[b].filter(function(a){return a!==d?!1:f=!0}));f&&(a.version=c)}
-function A(a,b){var d=0;b.forEach(function(a){d=Math.max(this.push(a),d)}.bind(a));la(a)}
-z.prototype.push=function(a){var b=parseFloat(a.ts);if(a.type&&"message"!==a.type)if("reaction_added"===a.type){var d=B(this,a.item.ts);if(d){var c=a.reaction;a=a.user;d.a[c]||(d.a[c]=[]);d.a[c].push(a);d.version=b}}else if("reaction_removed"===a.type)(d=B(this,a.item.ts))&&ka(d,a.reaction,a.user,b);else return 0;else{var d=!1,c=a.ts,f=a;"message_changed"===a.subtype&&a.previous_message?(c=a.previous_message.ts,f=a.message):"message_deleted"===a.subtype&&a.previous_message&&(c=a.previous_message.ts,
-f=null);for(var e=0,m=this.a.length;e<m;e++)if(this.a[e].id===c){ja(this.a[e],f,b);d=!0;break}d||this.a.push(new ia(a,b))}for(;this.a.length>this.b;)this.a.shift();return b};function ma(a){for(var b=C.b[D.id],d=0,c=b.a.length;d<c&&a>=b.a[d].b;d++)if(b.a[d].b===a)return b.a[d];return null}function B(a,b){for(var d=0,c=a.a.length;d<c;d++)if(a.a[d].id==b)return a.a[d];return null}function la(a){a.a.sort(function(a,d){return a.b-d.b})}"undefined"!==typeof module&&(module.I.Y=z);var E={},F;function na(){var a;if(!a){for(var b=0,d=navigator.languages.length;b<d;b++)if(E.hasOwnProperty(navigator.languages[b])){a=navigator.languages[b];break}a||(a="en")}F=E[a];console.log("Loading language pack: "+a);if(F.g)for(b in F.g)document.getElementById(b).textContent=F.g[b]};E.fr={H:"Utilisateur inconnu",G:"Channel inconnu",C:"Nouveau message",B:"Reseau",i:"edit&eacute;",s:function(a){"string"!==typeof a&&(a=parseFloat(a));var b=new Date,d=new Date;a=new Date(1E3*a);b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0);d.setTime(b.getTime());d.setDate(d.getDate()-1);return a.getTime()>b.getTime()?a.toLocaleTimeString():a.getTime()>d.getTime()?"hier, "+a.toLocaleTimeString():a.toLocaleString()},g:{fileUploadCancel:"Annuler",neterror:"Impossible de se connecter au chat !"}};E.en={H:"Unknown member",G:"Unknown channel",C:"New message",B:"Network",i:"edited",s:function(a){"string"!==typeof a&&(a=parseFloat(a));var b=new Date,d=new Date;a=new Date(1E3*a);b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0);d.setTime(b.getTime());d.setDate(d.getDate()-1);return a.getTime()>b.getTime()?a.toLocaleTimeString():a.getTime()>d.getTime()?"yesterday, "+a.toLocaleTimeString():a.toLocaleString()},g:{fileUploadCancel:"Cancel",neterror:"Cannot connect to chat !"}};var H=null,I=0;
-function oa(){var a=document.createDocumentFragment(),b=C.a.a?Object.keys(C.a.a.f):[];b.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:y(C.a,a).name.localeCompare(y(C.a,b).name)});b.forEach(function(b){b=y(C.a,b);if(!b.b){var c=document.createElement("li"),d=document.createElement("a");c.id=b.id;d.href="#"+b.id;"D"===b.id[0]?c.className="slack-context-room slack-ims":"G"===b.id[0]?c.className="slack-context-room slack-group":"C"===b.id[0]&&(c.className="slack-context-room slack-channel");d.textContent=
-b.name;c.appendChild(d);c&&a.appendChild(c)}});b=C.a.b?Object.keys(C.a.b):[];b.sort(function(a,b){return C.a.b[a].name.localeCompare(C.a.b[b].name)});b.forEach(function(b){b=t(C.a,b);if(!b.h){b=b.b;var c=document.createElement("li"),d=document.createElement("a");c.id=b.id;d.href="#"+b.id;c.className="slack-context-room slack-ims";d.textContent=b.f.name;c.appendChild(d);c&&a.appendChild(c)}});document.getElementById("chanList").textContent="";document.getElementById("chanList").appendChild(a);K();
+function ha(a){this.id=a;this.a={R:"",m:"",u:""};this.c=this.b=null}function n(){this.f=null;this.h={};this.l={};this.A={};this.b={};this.a=null;this.j={};this.c={}}function t(a,b){return a.b[b]||a.j[b]||null}function y(a,b){return a.h[b]||a.A[b]||a.l[b]||null}"undefined"!==typeof module&&(module.I.X=n);function ia(a,b){this.c=a.user||a.bot_id;this.j=a.username;this.id=a.ts;this.b=b||parseFloat(a.ts);this.text=a.text||"";this.h=a.attachments||[];this.i=!!a.edited;this.f=a.removed||!1;this.l="me_message"===a.subtype||a.isMeMessage;this.a={};this.version=this.b;var c=this;a.reactions&&a.reactions.forEach(function(a){c.a[a.name]=[];a.users.forEach(function(b){c.a[a.name].push(b)})})}
+function ja(a,b,c){b?(a.text=b.text||"",b.attachments&&(a.h=b.attachments),a.i=!!b.edited,a.f=!!b.removed,b.reactions&&(a.a={},b.reactions.forEach(function(b){a.a[b.name]=[];b.users.forEach(function(c){a.a[b.name].push(c)})}))):a.f=!0;a.version=c}function z(a,b,c){this.id="string"===typeof a?a:a.id;this.a=[];this.b=b;c&&A(this,c)}function ka(a,b,c,d){var f=!1;a.a[b]&&(1===a.a[b].length&&a.a[b][0]===c?(delete a.a[b],f=!0):a.a[b]=a.a[b].filter(function(a){return a!==c?!1:f=!0}));f&&(a.version=d)}
+function A(a,b){var c=0;b.forEach(function(a){c=Math.max(this.push(a),c)}.bind(a));la(a)}
+z.prototype.push=function(a){var b=parseFloat(a.ts);if(a.type&&"message"!==a.type)if("reaction_added"===a.type){var c=B(this,a.item.ts);if(c){var d=a.reaction;a=a.user;c.a[d]||(c.a[d]=[]);c.a[d].push(a);c.version=b}}else if("reaction_removed"===a.type)(c=B(this,a.item.ts))&&ka(c,a.reaction,a.user,b);else return 0;else{var c=!1,d=a.ts,f=a;"message_changed"===a.subtype&&a.previous_message?(d=a.previous_message.ts,f=a.message):"message_deleted"===a.subtype&&a.previous_message&&(d=a.previous_message.ts,
+f=null);for(var e=0,m=this.a.length;e<m;e++)if(this.a[e].id===d){ja(this.a[e],f,b);c=!0;break}c||this.a.push(new ia(a,b))}for(;this.a.length>this.b;)this.a.shift();return b};function ma(a){for(var b=C.b[D.id],c=0,d=b.a.length;c<d&&a>=b.a[c].b;c++)if(b.a[c].b===a)return b.a[c];return null}function B(a,b){for(var c=0,d=a.a.length;c<d;c++)if(a.a[c].id==b)return a.a[c];return null}function la(a){a.a.sort(function(a,c){return a.b-c.b})}"undefined"!==typeof module&&(module.I.Y=z);var E={},F;function na(){var a;if(!a){for(var b=0,c=navigator.languages.length;b<c;b++)if(E.hasOwnProperty(navigator.languages[b])){a=navigator.languages[b];break}a||(a="en")}F=E[a];console.log("Loading language pack: "+a);if(F.g)for(b in F.g)document.getElementById(b).textContent=F.g[b]};E.fr={H:"Utilisateur inconnu",G:"Channel inconnu",C:"Nouveau message",B:"Reseau",i:"edit&eacute;",s:function(a){"string"!==typeof a&&(a=parseFloat(a));var b=new Date,c=new Date;a=new Date(1E3*a);b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0);c.setTime(b.getTime());c.setDate(c.getDate()-1);return a.getTime()>b.getTime()?a.toLocaleTimeString():a.getTime()>c.getTime()?"hier, "+a.toLocaleTimeString():a.toLocaleString()},g:{fileUploadCancel:"Annuler",neterror:"Impossible de se connecter au chat !"}};E.en={H:"Unknown member",G:"Unknown channel",C:"New message",B:"Network",i:"edited",s:function(a){"string"!==typeof a&&(a=parseFloat(a));var b=new Date,c=new Date;a=new Date(1E3*a);b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0);c.setTime(b.getTime());c.setDate(c.getDate()-1);return a.getTime()>b.getTime()?a.toLocaleTimeString():a.getTime()>c.getTime()?"yesterday, "+a.toLocaleTimeString():a.toLocaleString()},g:{fileUploadCancel:"Cancel",neterror:"Cannot connect to chat !"}};var H=null,I=0;
+function oa(){var a=document.createDocumentFragment(),b=C.a.a?Object.keys(C.a.a.f):[];b.sort(function(a,b){return a[0]!==b[0]?a[0]-b[0]:y(C.a,a).name.localeCompare(y(C.a,b).name)});b.forEach(function(b){b=y(C.a,b);if(!b.b){var c=document.createElement("li"),f=document.createElement("a");c.id=b.id;f.href="#"+b.id;"D"===b.id[0]?c.className="slack-context-room slack-ims":"G"===b.id[0]?c.className="slack-context-room slack-group":"C"===b.id[0]&&(c.className="slack-context-room slack-channel");f.textContent=
+b.name;c.appendChild(f);c&&a.appendChild(c)}});b=C.a.b?Object.keys(C.a.b):[];b.sort(function(a,b){return C.a.b[a].name.localeCompare(C.a.b[b].name)});b.forEach(function(b){b=t(C.a,b);if(!b.h){b=b.b;var c=document.createElement("li"),f=document.createElement("a");c.id=b.id;f.href="#"+b.id;c.className="slack-context-room slack-ims";f.textContent=b.f.name;c.appendChild(f);c&&a.appendChild(c)}});document.getElementById("chanList").textContent="";document.getElementById("chanList").appendChild(a);K();
 L()}function M(a){a?document.body.classList.remove("no-network"):document.body.classList.add("no-network");L()}function N(){if(H){document.body.classList.add("replyingTo");var a=document.getElementById("replyToContainer"),b=document.createElement("a");b.addEventListener("click",function(){H=null;N()});b.className="replyto-close";b.textContent="x";a.textContent="";a.appendChild(b);a.appendChild(O("reply_"+D.id,H,!0))}else document.body.classList.remove("replyingTo")}
-function pa(a,b,d,c){var f=Q(d);if(f){for(var e=document.createElement("li"),m=document.createElement("a"),g=document.createElement("span"),h=document.createElement("span"),l=[],k=0,p=c.length;k<p;k++){var q=t(C.a,c[k]);q&&l.push(q.name)}l.sort();h.textContent=l.join(", ");g.appendChild(f);g.className="emoji-small";m.href="javascript:toggleReaction('"+a+"', '"+b+"', '"+d+"')";m.appendChild(g);m.appendChild(h);e.className="slackmsg-reaction-item";e.appendChild(m);return e}return null}
-window.toggleReaction=function(a,b,d){var c=C.b[a];if(c&&(c=B(c,b))){var f=C.a.a.id;c.a[d]&&-1!==c.a[d].indexOf(f)?(c=new XMLHttpRequest,c.open("DELETE","api/reaction?room="+a+"&msg="+b+"&reaction="+encodeURIComponent(d),!0),c.send(null)):R(a,b,d)}};
-function S(a,b,d){var c=document.createElement("div"),f=document.createElement("div"),e=document.createElement("div"),m=document.createElement("div"),g=document.createElement("img"),h=document.createElement("span"),l=document.createElement("ul"),k=document.createElement("li"),p=document.createElement("ul"),q=document.createElement("ul"),u=t(C.a,b.c);c.id=a+"_"+b.b;c.className="slackmsg-item";e.className="slackmsg-ts";m.className="slackmsg-msg";g.className="slackmsg-author-img";h.className="slackmsg-author-name";
+function pa(a,b,c,d){var f=Q(c);if(f){for(var e=document.createElement("li"),m=document.createElement("a"),g=document.createElement("span"),h=document.createElement("span"),l=[],k=0,p=d.length;k<p;k++){var q=t(C.a,d[k]);q&&l.push(q.name)}l.sort();h.textContent=l.join(", ");g.appendChild(f);g.className="emoji-small";m.href="javascript:toggleReaction('"+a+"', '"+b+"', '"+c+"')";m.appendChild(g);m.appendChild(h);e.className="slackmsg-reaction-item";e.appendChild(m);return e}return null}
+window.toggleReaction=function(a,b,c){var d=C.b[a];if(d&&(d=B(d,b))){var f=C.a.a.id;d.a[c]&&-1!==d.a[c].indexOf(f)?(d=new XMLHttpRequest,d.open("DELETE","api/reaction?room="+a+"&msg="+b+"&reaction="+encodeURIComponent(c),!0),d.send(null)):R(a,b,c)}};
+function S(a,b,c){var d=document.createElement("div"),f=document.createElement("div"),e=document.createElement("div"),m=document.createElement("div"),g=document.createElement("img"),h=document.createElement("span"),l=document.createElement("ul"),k=document.createElement("li"),p=document.createElement("ul"),q=document.createElement("ul"),u=t(C.a,b.c);d.id=a+"_"+b.b;d.className="slackmsg-item";e.className="slackmsg-ts";m.className="slackmsg-msg";g.className="slackmsg-author-img";h.className="slackmsg-author-name";
 l.className="slackmsg-hover";k.className="slackmsg-hover-reply";e.innerHTML=F.s(b.b);m.innerHTML=T(b.text);h.textContent=u?u.name:b.j||"?";g.src=u?u.a.m:"";l.appendChild(k);if("makeEmoji"in window){var r=document.createElement("li"),x=window.makeEmoji("arrow_heading_down"),v=window.makeEmoji("smile"),u=window.makeEmoji("x");r.className="slackmsg-hover-reaction";v?(r.classList.add("emoji-small"),r.appendChild(v)):r.style.backgroundImage='url("smile.svg")';x?(k.classList.add("emoji-small"),k.appendChild(x)):
-k.style.backgroundImage='url("repl.svg")';l.appendChild(r);b.c===C.a.a.id&&(k=document.createElement("li"),k.className="slackmsg-hover-remove",u?k.classList.add("emoji-small"):k.style.backgroundImage='url("remove.svg")',k.appendChild(u),l.appendChild(k))}else k.style.backgroundImage='url("repl.svg")',b.c===C.a.a.id&&(k=document.createElement("li"),k.className="slackmsg-hover-remove",k.style.backgroundImage='url("remove.svg")',l.appendChild(k));c.appendChild(g);f.appendChild(h);f.appendChild(m);f.appendChild(e);
-f.appendChild(p);b.i&&(e=document.createElement("div"),e.textContent=F.i,e.className="slackmsg-edited",f.appendChild(e));f.appendChild(q);f.className="slackmsg-content";p.className="slackmsg-attachments";q.className="slackmsg-reactions";if(!0!==d){if(b.a)for(var w in b.a)(d=pa(a,b.id,w,b.a[w]))&&q.appendChild(d);b.h.forEach(function(a){var b=document.createElement("li"),c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("a"),f=document.createElement("div"),g=
+k.style.backgroundImage='url("repl.svg")';l.appendChild(r);b.c===C.a.a.id&&(k=document.createElement("li"),k.className="slackmsg-hover-remove",u?k.classList.add("emoji-small"):k.style.backgroundImage='url("remove.svg")',k.appendChild(u),l.appendChild(k))}else k.style.backgroundImage='url("repl.svg")',b.c===C.a.a.id&&(k=document.createElement("li"),k.className="slackmsg-hover-remove",k.style.backgroundImage='url("remove.svg")',l.appendChild(k));d.appendChild(g);f.appendChild(h);f.appendChild(m);f.appendChild(e);
+f.appendChild(p);b.i&&(e=document.createElement("div"),e.textContent=F.i,e.className="slackmsg-edited",f.appendChild(e));f.appendChild(q);f.className="slackmsg-content";p.className="slackmsg-attachments";q.className="slackmsg-reactions";if(!0!==c){if(b.a)for(var w in b.a)(c=pa(a,b.id,w,b.a[w]))&&q.appendChild(c);b.h.forEach(function(a){var b=document.createElement("li"),c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("a"),f=document.createElement("div"),g=
 document.createElement("img"),h=document.createElement("a"),m=document.createElement("div"),x=document.createElement("div"),k=document.createElement("img"),u=document.createElement("img"),r=document.createElement("div"),l=document.createElement("img"),q=document.createElement("span"),v=document.createElement("span");b.className="slackmsg-attachment";var w="#e3e4e6";a.color&&("#"===a.color[0]?w=a.color[0]:"good"===a.color?w="#2fa44f":"warning"===a.color?w="#de9e31":"danger"===a.color&&(w="#d50200"));
 c.style.borderColor=w;d.className="slackmsg-attachment-pretext";a.pretext?d.innerHTML=T(a.pretext):d.classList.add("hidden");e.target="_blank";a.title?(e.innerHTML=T(a.title),a.title_link&&(e.href=a.title_link),e.className="slackmsg-attachment-title"):e.className="hidden slackmsg-attachment-title";h.target="_blank";f.className="slackmsg-author";a.author_name?(h.innerHTML=T(a.author_name),h.href=a.author_link||"",h.className="slackmsg-author-name",g.className="slackmsg-author-img",a.author_icon?g.src=
 a.author_icon:g.classList.add("hidden")):f.classList.add("hidden");x.innerHTML=T(a.text||"");x.a="slackmsg-attachment-text";k.className="slackmsg-attachment-thumb";a.thumb_url?k.src=a.thumb_url:k.classList.add("hidden");u.className="slackmsg-attachment-img";a.image_url?u.src=a.image_url:u.classList.add("hidden");r.className="slackmsg-attachment-footer";q.className="slackmsg-attachment-footer-text";l.className="slackmsg-attachment-footer-icon";a.footer?(q.innerHTML=T(a.footer),a.footer_icon?l.src=
-a.footer_icon:l.classList.add("hidden")):(l.classList.add("hidden"),q.classList.add("hidden"));v.className="slackmsg-ts";a.ts?v.innerHTML=F.s(a.ts):v.classList.add("hidden");f.appendChild(g);f.appendChild(h);m.appendChild(x);m.appendChild(k);r.appendChild(l);r.appendChild(q);r.appendChild(v);c.appendChild(e);c.appendChild(f);c.appendChild(m);c.appendChild(u);c.appendChild(r);b.appendChild(d);b.appendChild(c);b&&p.appendChild(b)})}c.appendChild(f);c.appendChild(l);return c}
-function Q(a){a:{for(var b=a,d={};!d[b];){if(a=C.a.c[b])if("alias:"==a.substr(0,6))d[b]=!0,b=a.substr(6);else{b=document.createElement("span");b.className="emoji-custom emoji";b.style.backgroundImage="url('"+a+"')";a=b;break a}break}a=b}"string"===typeof a&&"makeEmoji"in window&&(a=window.makeEmoji(a));return"string"===typeof a?null:a}
-function qa(a){return a.replace(/:([^ \t:]+):/g,function(b,d){var c=Q(d);if(c){var f=document.createElement("span");f.className=b===a?"emoji-medium":"emoji-small";f.appendChild(c);return f.outerHTML}return b})}
-function T(a){a=a.split(/\r?\n/g);for(var b=0,d=a.length;b<d;b++){for(var c=a[b].trim(),f="",e={},m=!1,g=0,c=c.replace(RegExp("<([@#]?)([^>]*)>","g"),function(a,b,c){c=c.split("|");if("@"===b)c[1]?"@"!==c[1][0]&&(c[1]="@"+c[1]):(a=t(C.a,c[0]),c[1]=a?"@"+a.name:F.H),c[0]="#"+c[0],c[2]="slackmsg-link slackmsg-link-user";else if("#"===b)c[1]?"#"!==c[1][0]&&(c[1]="#"+c[1]):(a=y(C.a,c[0]),c[1]=a?"#"+a.name:F.G),c[0]="#"+c[0],c[2]="slackmsg-link slackmsg-link-chan";else if(-1!==c[0].indexOf("://"))c[1]||
-(c[1]=c[0]),c[2]="slackmsg-link";else return a;return'<a href="'+c[0]+'" class="'+c[2]+'"'+(b?"":' target="_blank"')+">"+c[1]+"</a>"}),c=qa(c),h=c.length,l=function(a,b,c){for(;a[b];){if(" "!=a[b]&&a[b]!=c&&a[b+1]==c)return!0;b++}return!1},k=function(a){return Object.keys(e).length?'<span class="'+Object.keys(a).join(" ")+'">':""};g<h&&(" "===c[g]||"\t"===c[g]);)g++;"&gt;"===c.substr(g,4)&&(m=!0,g+=4);for(;g<h;g++){var p=c[g];if("<"===p){do f+=c[g++];while(">"!==c[g-1]);g--}else if(!e["slackmsg-style-bold"]&&
-"*"===p&&c[g+1]&&l(c,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-bold"]=!0,f+=k(e);else if(!e["slackmsg-style-strike"]&&"~"===p&&c[g+1]&&l(c,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-strike"]=!0,f+=k(e);else if(!e["slackmsg-style-code"]&&"`"===p&&c[g+1]&&l(c,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-code"]=!0,f+=k(e);else if(!e["slackmsg-style-italic"]&&"_"===p&&c[g+1]&&l(c,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-italic"]=
-!0,f+=k(e);else{var q=!1,f=f+p;do{if(e["slackmsg-style-bold"]&&"*"!==p&&"*"===c[g+1])delete e["slackmsg-style-bold"],q=!0;else if(e["slackmsg-style-strike"]&&"~"!==p&&"~"===c[g+1])delete e["slackmsg-style-strike"],q=!0;else if(e["slackmsg-style-code"]&&"`"!==p&&"`"===c[g+1])delete e["slackmsg-style-code"],q=!0;else if(e["slackmsg-style-italic"]&&"_"!==p&&"_"===c[g+1])delete e["slackmsg-style-italic"],q=!0;else break;p=c[++g]}while(g<h);q&&(f+="</span>"+k(e))}}e&&(f+="</span>");a[b]=m?'<span class="slackmsg-style-quote">'+
-f+"</span>":f}return a.join("<br/>")}function O(a,b,d){b.l?(a=S(a,b,d),a.classList.add("slackmsg-me_message")):a=S(a,b,d);b.i&&a.classList.add("slackmsg-edited");return a}
-function L(){var a=0,b=0,d="";if(U)d="!"+F.B+" - ",document.getElementById("linkFavicon").href="favicon_err.png";else{for(var c in V)V.hasOwnProperty(c)&&(a+=V[c].w,b+=V[c].o);b?d="(!"+b+") - ":a&&(d="("+a+") - ");document.getElementById("linkFavicon").href=b||a?"favicon.png?h="+b+"&m="+a:"favicon_ok.png"}d+=C.a.f.name;document.title=d}
+a.footer_icon:l.classList.add("hidden")):(l.classList.add("hidden"),q.classList.add("hidden"));v.className="slackmsg-ts";a.ts?v.innerHTML=F.s(a.ts):v.classList.add("hidden");f.appendChild(g);f.appendChild(h);m.appendChild(x);m.appendChild(k);r.appendChild(l);r.appendChild(q);r.appendChild(v);c.appendChild(e);c.appendChild(f);c.appendChild(m);c.appendChild(u);c.appendChild(r);b.appendChild(d);b.appendChild(c);b&&p.appendChild(b)})}d.appendChild(f);d.appendChild(l);return d}
+function Q(a){a:{for(var b=a,c={};!c[b];){if(a=C.a.c[b])if("alias:"==a.substr(0,6))c[b]=!0,b=a.substr(6);else{b=document.createElement("span");b.className="emoji-custom emoji";b.style.backgroundImage="url('"+a+"')";a=b;break a}break}a=b}"string"===typeof a&&"makeEmoji"in window&&(a=window.makeEmoji(a));return"string"===typeof a?null:a}
+function qa(a){return a.replace(/:([^ \t:]+):/g,function(b,c){var d=Q(c);if(d){var f=document.createElement("span");f.className=b===a?"emoji-medium":"emoji-small";f.appendChild(d);return f.outerHTML}return b})}
+function T(a){a=a.split(/\r?\n/g);for(var b=0,c=a.length;b<c;b++){for(var d=a[b].trim(),f="",e={},m=!1,g=0,d=d.replace(RegExp("<([@#]?)([^>]*)>","g"),function(a,b,c){c=c.split("|");if("@"===b)c[1]?"@"!==c[1][0]&&(c[1]="@"+c[1]):(a=t(C.a,c[0]),c[1]=a?"@"+a.name:F.H),c[0]="#"+c[0],c[2]="slackmsg-link slackmsg-link-user";else if("#"===b)c[1]?"#"!==c[1][0]&&(c[1]="#"+c[1]):(a=y(C.a,c[0]),c[1]=a?"#"+a.name:F.G),c[0]="#"+c[0],c[2]="slackmsg-link slackmsg-link-chan";else if(-1!==c[0].indexOf("://"))c[1]||
+(c[1]=c[0]),c[2]="slackmsg-link";else return a;return'<a href="'+c[0]+'" class="'+c[2]+'"'+(b?"":' target="_blank"')+">"+c[1]+"</a>"}),d=qa(d),h=d.length,l=function(a,b,c){for(;a[b];){if(" "!=a[b]&&a[b]!=c&&a[b+1]==c)return!0;b++}return!1},k=function(a){return Object.keys(e).length?'<span class="'+Object.keys(a).join(" ")+'">':""};g<h&&(" "===d[g]||"\t"===d[g]);)g++;"&gt;"===d.substr(g,4)&&(m=!0,g+=4);for(;g<h;g++){var p=d[g];if("<"===p){do f+=d[g++];while(">"!==d[g-1]);g--}else if(!e["slackmsg-style-bold"]&&
+"*"===p&&d[g+1]&&l(d,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-bold"]=!0,f+=k(e);else if(!e["slackmsg-style-strike"]&&"~"===p&&d[g+1]&&l(d,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-strike"]=!0,f+=k(e);else if(!e["slackmsg-style-code"]&&"`"===p&&d[g+1]&&l(d,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-code"]=!0,f+=k(e);else if(!e["slackmsg-style-italic"]&&"_"===p&&d[g+1]&&l(d,g,p))Object.keys(e).length&&(f+="</span>"),e["slackmsg-style-italic"]=
+!0,f+=k(e);else{var q=!1,f=f+p;do{if(e["slackmsg-style-bold"]&&"*"!==p&&"*"===d[g+1])delete e["slackmsg-style-bold"],q=!0;else if(e["slackmsg-style-strike"]&&"~"!==p&&"~"===d[g+1])delete e["slackmsg-style-strike"],q=!0;else if(e["slackmsg-style-code"]&&"`"!==p&&"`"===d[g+1])delete e["slackmsg-style-code"],q=!0;else if(e["slackmsg-style-italic"]&&"_"!==p&&"_"===d[g+1])delete e["slackmsg-style-italic"],q=!0;else break;p=d[++g]}while(g<h);q&&(f+="</span>"+k(e))}}e&&(f+="</span>");a[b]=m?'<span class="slackmsg-style-quote">'+
+f+"</span>":f}return a.join("<br/>")}function O(a,b,c){b.l?(a=S(a,b,c),a.classList.add("slackmsg-me_message")):a=S(a,b,c);b.i&&a.classList.add("slackmsg-edited");return a}
+function L(){var a=0,b=0,c="";if(U)c="!"+F.B+" - ",document.getElementById("linkFavicon").href="favicon_err.png";else{for(var d in V)V.hasOwnProperty(d)&&(a+=V[d].w,b+=V[d].o);b?c="(!"+b+") - ":a&&(c="("+a+") - ");document.getElementById("linkFavicon").href=b||a?"favicon.png?h="+b+"&m="+a:"favicon_ok.png"}c+=C.a.f.name;document.title=c}
 function ra(){if("Notification"in window)if("granted"===Notification.permission){var a=Date.now();if(I+3E4<a){var b=new Notification(F.C);I=a;setTimeout(function(){b.close()},5E3)}}else"denied"!==Notification.permission&&Notification.requestPermission()}
-function W(){var a=document.createDocumentFragment(),b=D.id;C.b[b]&&C.b[b].a.forEach(function(c){c.f||(c=O(b,c),a.appendChild(c))});var d=document.getElementById("chatWindow");d.textContent="";d.appendChild(a);d.scrollTop=d.scrollHeight-d.clientHeight}
-function sa(a){function b(a,b){for(b=b||a.target;b!==a.currentTarget&&b;){if(b.classList.contains("slackmsg-item"))return b.id;b=b.parentElement}}for(var d=a.target;d!==a.currentTarget&&d&&!d.classList.contains("slackmsg-hover");){if(d.parentElement&&d.parentElement.classList.contains("slackmsg-hover")){if(a=b(a,d)){a=parseFloat(a.split("_")[1]);var c=ma(a);c&&d.classList.contains("slackmsg-hover-reply")?H!==c&&(H=c,N()):c&&d.classList.contains("slackmsg-hover-reaction")?X.F(document.body,function(a){a&&
-R(D.id,c.id,a)}):c&&d.classList.contains("slackmsg-hover-remove")&&(H&&(H=null,N()),ta(c))}break}d=d.parentElement}}function Y(){document.getElementById("msgInput").focus()}function K(){var a=document.location.hash.substr(1),b=y(C.a,a),a=t(C.a,a);b&&b!==D?ua(b):a&&a.b&&ua(a.b)}
+function W(){var a=document.createDocumentFragment(),b=D.id;C.b[b]&&C.b[b].a.forEach(function(c){c.f||(c=O(b,c),a.appendChild(c))});var c=document.getElementById("chatWindow");c.textContent="";c.appendChild(a);c.scrollTop=c.scrollHeight-c.clientHeight}
+function sa(a){function b(a,b){for(b=b||a.target;b!==a.currentTarget&&b;){if(b.classList.contains("slackmsg-item"))return b.id;b=b.parentElement}}for(var c=a.target;c!==a.currentTarget&&c&&!c.classList.contains("slackmsg-hover");){if(c.parentElement&&c.parentElement.classList.contains("slackmsg-hover")){if(a=b(a,c)){a=parseFloat(a.split("_")[1]);var d=ma(a);d&&c.classList.contains("slackmsg-hover-reply")?H!==d&&(H=d,N()):d&&c.classList.contains("slackmsg-hover-reaction")?X.F(document.body,function(a){a&&
+R(D.id,d.id,a)}):d&&c.classList.contains("slackmsg-hover-remove")&&(H&&(H=null,N()),ta(d))}break}c=c.parentElement}}function Y(){document.getElementById("msgInput").focus()}function K(){var a=document.location.hash.substr(1),b=y(C.a,a),a=t(C.a,a);b&&b!==D?ua(b):a&&a.b&&ua(a.b)}
 document.addEventListener("DOMContentLoaded",function(){na();document.getElementById("chatWindow").addEventListener("click",sa);window.addEventListener("hashchange",function(){document.location.hash&&"#"===document.location.hash[0]&&K()});document.getElementById("fileUploadCancel").addEventListener("click",function(a){a.preventDefault();document.getElementById("fileUploadError").classList.add("hidden");document.getElementById("fileUploadContainer").classList.add("hidden");document.getElementById("fileUploadInput").value=
 "";return!1});document.getElementById("fileUploadForm").addEventListener("submit",function(a){a.preventDefault();a=document.getElementById("fileUploadInput");var b=a.value;b&&(b=b.substr(b.lastIndexOf("\\")+1),va(b,a.files[0],function(a){var b=document.getElementById("fileUploadError");a?(b.textContent=a,b.classList.remove("hidden")):(b.classList.add("hidden"),document.getElementById("fileUploadInput").value="",document.getElementById("fileUploadContainer").classList.add("hidden"))}));return!1});
-document.getElementById("attachFile").addEventListener("click",function(a){a.preventDefault();D&&document.getElementById("fileUploadContainer").classList.remove("hidden");return!1});document.getElementById("msgForm").addEventListener("submit",function(a){a.preventDefault();a=document.getElementById("msgInput");if(D&&a.value){var b=!0;if("/"!==a.value[0]||H){var d=D,c=H,f=new XMLHttpRequest,e="api/msg?room="+d.id+"&text="+encodeURIComponent(a.value);if(c){var m=t(C.a,c.c),g="Message";"C"===d.id[0]?
-g="Channel message":"D"===d.id[0]?g="Direct message":"G"===d.id[0]&&(g="Group message");e+="&attachments="+encodeURIComponent(JSON.stringify([{fallback:c.text,author_name:"<@"+m.id+"|"+m.name+">",author_icon:m.a.m,text:c.text,footer:g,ts:c.b}]))}f.open("POST",e,!0);f.send(null)}else b=a.value.indexOf(" "),c=a.value.substr(1,-1===b?void 0:b-1),d=D,"me"==c?(c=new XMLHttpRequest,c.open("POST","api/msg?room="+d.id+"&me&text="+encodeURIComponent((-1===b?"":a.value.substr(b)).trim()),!0),c.send(null),b=
-!0):(console.log("Unknown command "+c),b=!1);b&&(a.value="",H&&(H=null,N()))}Y();return!1});window.addEventListener("blur",function(){window.hasFocus=!1});window.addEventListener("focus",function(){window.hasFocus=!0;I=0;D&&wa();Y()});window.hasFocus=!0;(function(){var a=document.getElementById("emojiButton");if("makeEmoji"in window){var b=window.makeEmoji("smile");b?a.innerHTML="<span class='emoji-small'>"+b.outerHTML+"</span>":a.style.backgroundImage='url("smile.svg")';(b=window.makeEmoji("paperclip"))?
-document.getElementById("attachFile").innerHTML="<span class='emoji-small'>"+b.outerHTML+"</span>":document.getElementById("attachFile").style.backgroundImage='url("public/paperclip.svg")';a.addEventListener("click",function(){X.F(document.body,function(a){a&&(document.getElementById("msgInput").value+=":"+a+":");Y()})})}else a.classList.add("hidden")})();Z()});var X=function(){function a(a,b){for(var c=a.target;c!==h&&c&&"LI"!==c.nodeName;)c=c.parentElement;c&&"LI"===c.nodeName&&c.id&&"emojibar-"===c.id.substr(0,9)?b(c.id.substr(9)):b(null)}function b(){if(!d())return!1;G&&G(null);return!0}function d(){return h.parentElement?(h.parentElement.removeChild(l),h.parentElement.removeChild(h),!0):!1}function c(a){var b=0,c;a=void 0===a?u.value:a;if(g()){var d=window.searchEmojis(a);c=f(d);for(var h in r)r[h].visible&&(r[h].visible=!1,p.removeChild(r[h].g));h=
+document.getElementById("attachFile").addEventListener("click",function(a){a.preventDefault();D&&document.getElementById("fileUploadContainer").classList.remove("hidden");return!1});document.getElementById("msgForm").addEventListener("submit",function(a){a.preventDefault();a=document.getElementById("msgInput");D&&a.value&&wa(a.value)&&(a.value="",H&&(H=null,N()));Y();return!1});window.addEventListener("blur",function(){window.hasFocus=!1});window.addEventListener("focus",function(){window.hasFocus=
+!0;I=0;D&&xa();Y()});window.hasFocus=!0;(function(){var a=document.getElementById("emojiButton");if("makeEmoji"in window){var b=window.makeEmoji("smile");b?a.innerHTML="<span class='emoji-small'>"+b.outerHTML+"</span>":a.style.backgroundImage='url("smile.svg")';(b=window.makeEmoji("paperclip"))?document.getElementById("attachFile").innerHTML="<span class='emoji-small'>"+b.outerHTML+"</span>":document.getElementById("attachFile").style.backgroundImage='url("public/paperclip.svg")';a.addEventListener("click",
+function(){X.F(document.body,function(a){a&&(document.getElementById("msgInput").value+=":"+a+":");Y()})})}else a.classList.add("hidden")})();Z()});var X=function(){function a(a,b){for(var c=a.target;c!==h&&c&&"LI"!==c.nodeName;)c=c.parentElement;c&&"LI"===c.nodeName&&c.id&&"emojibar-"===c.id.substr(0,9)?b(c.id.substr(9)):b(null)}function b(){if(!c())return!1;G&&G(null);return!0}function c(){return h.parentElement?(h.parentElement.removeChild(l),h.parentElement.removeChild(h),!0):!1}function d(a){var b=0,c;a=void 0===a?u.value:a;if(g()){var d=window.searchEmojis(a);c=f(d);for(var h in r)r[h].visible&&(r[h].visible=!1,p.removeChild(r[h].g));h=
 0;for(var m=c.length;h<m;h++){var k=c[h].name,l=r[k];if(!l){var l=r,P=k,w=k,k=window.makeEmoji(d[k]),v=document.createElement("span");v.appendChild(k);v.className="emoji-medium";k=e(w,v);l=l[P]=k}l.visible||(l.visible=!0,p.appendChild(l.g));b++}}for(h in x)x[h].visible&&(x[h].visible=!1,q.removeChild(x[h].g));c=f(C.a.c);h=0;for(m=c.length;h<m;h++)k=c[h].name,""!==a&&k.substr(0,a.length)!==a||"alias:"===C.a.c[k].substr(0,6)||(l=x[k],l||(d=x,P=l=k,k=C.a.c[k],w=document.createElement("span"),v=document.createElement("span"),
 w.className="emoji emoji-custom",w.style.backgroundImage='url("'+k+'")',v.appendChild(w),v.className="emoji-medium",k=e(P,v),l=d[l]=k),l.visible||(l.visible=!0,q.appendChild(l.g)),b++);return b}function f(a){var b=C.a.a.c.b,c=[],d;for(d in a)c.push({name:d,D:0,count:b[d]||0});return c=c.sort(function(a,b){var c=b.count-a.count;return c?c:a.D-b.D})}function e(a,b){var c=document.createElement("li");c.appendChild(b);c.className="emojibar-list-item";c.id="emojibar-"+a;return{visible:!1,g:c}}function m(a){var b=
 document.createElement("img"),c=document.createElement("div");b.src=a;c.appendChild(b);c.className="emojibar-header";return c}function g(){return"searchEmojis"in window}var h=document.createElement("div"),l=document.createElement("div"),k=document.createElement("div"),p=document.createElement("ul"),q=document.createElement("ul"),u=document.createElement("input"),r={},x={},v=document.createElement("div"),w=document.createElement("span"),J=document.createElement("span"),G;l.addEventListener("click",
 function(a){var c=h.getBoundingClientRect();(a.screenY<c.top||a.screenY>c.bottom||a.screenX<c.left||a.screenX>c.right)&&b()});l.className="emojibar-overlay";h.className="emojibar";k.className="emojibar-emojis";v.className="emojibar-detail";w.className="emojibar-detail-img";J.className="emojibar-detail-name";p.className=q.className="emojibar-list";u.className="emojibar-search";v.appendChild(w);v.appendChild(J);k.appendChild(m(window.emojiProviderHeader));k.appendChild(p);k.appendChild(m("emojicustom.png"));
-k.appendChild(q);h.appendChild(k);h.appendChild(v);h.appendChild(u);u.addEventListener("keyup",function(){c()});h.addEventListener("mousemove",function(b){a(b,function(a){var b=a?r[a]||x[a]:null;b?(w.innerHTML=b.g.outerHTML,J.textContent=":"+a+":"):(w.textContent="",J.textContent="")})});h.addEventListener("click",function(b){a(b,function(a){a&&d()&&G&&G(a)})});return{isSupported:g,F:function(a,b){return g()?(G=b,a.appendChild(l),a.appendChild(h),u.value="",c(),u.focus(),!0):!1},search:c,close:b}}();var C,V={};
-function xa(a,b){if(a!==D||!window.hasFocus){var d=new RegExp("<@"+C.a.a.id),c=!1,f=!1;V[a.id]||(V[a.id]={o:0,w:0});b.forEach(function(b){var e;if(!(e="D"===a.id[0]||b.text.match(d)))a:{b=b.text;e=C.a.a.c.a;for(var g=0,h=e.length;g<h;g++)if(-1!==b.indexOf(e[g])){console.log("Found highlight "+e[g]+" in "+b);e=!0;break a}e=!1}e?(f|=!V[a.id].o,V[a.id].o++,c=!0):V[a.id].w++});L();document.getElementById(a.id).classList.add("unread");c&&document.getElementById(a.id).classList.add("unreadHi");f&&!window.hasFocus&&
-ra()}}function wa(){var a=D;V[a.id]&&(V[a.id]={o:0,w:0},L());a=document.getElementById(a.id);a.classList.remove("unread");a.classList.remove("unreadHi")}C=new function(){this.c=0;this.a=new n;this.b={}};var U=0,D=null;function ya(a){var b=new XMLHttpRequest;b.timeout=6E4;b.onreadystatechange=function(){if(4===b.readyState)if(b.status){var d=null,c=2===Math.floor(b.status/100);if(c){U&&(U=0,M(!0));d=b.response;try{d=JSON.parse(d)}catch(f){d=null}}else U?(U+=Math.floor((U||5)/2),U=Math.min(60,U)):(U=5,M(!1));a(c,d)}else U&&(U=0,M(!0)),ya(a)};b.open("GET","api?v="+C.c,!0);b.send(null)}
-function za(a,b){if(a){if(b){var d=C;b.v&&(d.c=b.v);if(b["static"]){var c=d.a,f=b["static"];if(f.bots)for(var e=0,m=f.bots.length;e<m;e++){var g=c.j[f.bots[e].id];g||(g=c.j[f.bots[e].id]=new ha(f.bots[e].id));var h=f.bots[e];g.h=h.deleted;g.name=h.name;g.a.R=h.icons.image_36;g.a.m=h.icons.image_48;g.a.u=h.icons.image_72}if(f.users)for(e=0,m=f.users.length;e<m;e++)(g=c.b[f.users[e].id])||(g=c.b[f.users[e].id]=new ea(f.users[e].id)),h=f.users[e],g.name=h.name,g.h=h.deleted,g.status=h.status,g.a.N=h.profile.image_24,
-g.a.O=h.profile.image_32,g.a.m=h.profile.image_48,g.a.u=h.profile.image_72,g.a.L=h.profile.image_192,g.a.T=h.profile.image_512;if(f.ims)for(e=0,m=f.ims.length;e<m;e++)if(h=t(c,f.ims[e].user))h.b||(c.A[f.ims[e].id]=h.b=new da(f.ims[e].id,h)),g=h.b,g.c=parseFloat(f.ims[e].last_read),g.b=h.h;if(f.channels)for(e=0,m=f.channels.length;e<m;e++){(g=c.h[f.channels[e].id])||(g=c.h[f.channels[e].id]=new ba(f.channels[e].id));var h=f.channels[e],l=c;g.name=h.name;g.b=h.is_archived;g.c=parseFloat(h.last_read);
-g.a={};if(h.members)for(var k=0,p=h.members.length;k<p;k++){var q=t(l,h.members[k]);g.a[q.id]=q;q.f[g.id]=g}}e=0;for(m=f.groups.length;e<m;e++){(g=c.l[f.groups[e].id])||(g=c.l[f.groups[e].id]=new ca(f.groups[e].id));h=c;l=f.groups[e];k=[];g.a={};p=0;for(q=l.members.length;p<q;p++){var u=t(h,l.members[p]);g.a[l.members[p]]=u;u.f[g.id]=g;k.push(u.name)}g.name=k.join(", ");g.b=l.is_archived;g.c=parseFloat(l.last_read)}f.emojis&&(c.c=f.emojis);c.f||(c.f=new aa(f.team.id));e=c.f;m=f.team;e.name=m.name;
-e.a.P=m.icon.image_34;e.a.S=m.icon.image_44;e.a.U=m.icon.image_68;e.a.V=m.icon.image_88;e.a.J=m.icon.image_102;e.a.K=m.icon.image_132;e.a.M=m.icon.image_230;e.a.W=m.icon.image_default;f.self&&(c.a=t(c,f.self.id),c.a.c||(c.a.c=new fa),ga(c.a.c,f.self.prefs));oa()}if(b.live){for(var r in b.live)(c=d.b[r])?A(c,b.live[r]):d.b[r]=new z(r,250,b.live[r]);for(var x in b.live)(r=y(d.a,x))&&!r.b&&(xa(r,b.live[x]),D&&b.live[D.id]&&W())}}Z()}else setTimeout(Z,1E3*U)}function Z(){ya(za)}
-function ua(a){D&&document.getElementById(D.id).classList.remove("selected");document.getElementById(a.id).classList.add("selected");document.body.classList.remove("no-room-selected");D=a;a=D.name||(D.f?D.f.name:void 0);if(!a){a=[];for(var b in D.a)a.push(D.a[b].name);a=a.join(", ")}document.getElementById("currentRoomTitle").textContent=a;W();Y();document.getElementById("fileUploadContainer").classList.add("hidden");wa();H&&(H=null,N());D.c&&!C.b[D.id]&&(b=new XMLHttpRequest,b.open("GET","api/hist?room="+
-D.id,!0),b.send(null))}function va(a,b,d){var c=D;new FileReader;var f=new FormData,e=new XMLHttpRequest;f.append("file",b);f.append("filename",a);e.onreadystatechange=function(){4===e.readyState&&(204===e.status?d(null):d(e.statusText))};e.open("POST","api/file?room="+c.id);e.send(f)}function ta(a){var b=new XMLHttpRequest;b.open("DELETE","api/msg?room="+D.id+"&ts="+a.id,!0);b.send(null)}
-function R(a,b,d){var c=new XMLHttpRequest;c.open("POST","api/reaction?room="+a+"&msg="+b+"&reaction="+encodeURIComponent(d),!0);c.send(null)};
+k.appendChild(q);h.appendChild(k);h.appendChild(v);h.appendChild(u);u.addEventListener("keyup",function(){d()});h.addEventListener("mousemove",function(b){a(b,function(a){var b=a?r[a]||x[a]:null;b?(w.innerHTML=b.g.outerHTML,J.textContent=":"+a+":"):(w.textContent="",J.textContent="")})});h.addEventListener("click",function(b){a(b,function(a){a&&c()&&G&&G(a)})});return{isSupported:g,F:function(a,b){return g()?(G=b,a.appendChild(l),a.appendChild(h),u.value="",d(),u.focus(),!0):!1},search:d,close:b}}();var C,V={};
+function ya(a,b){if(a!==D||!window.hasFocus){var c=new RegExp("<@"+C.a.a.id),d=!1,f=!1;V[a.id]||(V[a.id]={o:0,w:0});b.forEach(function(b){var e;if(!(e="D"===a.id[0]||b.text.match(c)))a:{b=b.text;e=C.a.a.c.a;for(var g=0,h=e.length;g<h;g++)if(-1!==b.indexOf(e[g])){console.log("Found highlight "+e[g]+" in "+b);e=!0;break a}e=!1}e?(f|=!V[a.id].o,V[a.id].o++,d=!0):V[a.id].w++});L();document.getElementById(a.id).classList.add("unread");d&&document.getElementById(a.id).classList.add("unreadHi");f&&!window.hasFocus&&
+ra()}}function xa(){var a=D;V[a.id]&&(V[a.id]={o:0,w:0},L());a=document.getElementById(a.id);a.classList.remove("unread");a.classList.remove("unreadHi")}C=new function(){this.c=0;this.a=new n;this.b={}};var U=0,D=null;function za(a){var b=new XMLHttpRequest;b.timeout=6E4;b.onreadystatechange=function(){if(4===b.readyState)if(b.status){var c=null,d=2===Math.floor(b.status/100);if(d){U&&(U=0,M(!0));c=b.response;try{c=JSON.parse(c)}catch(f){c=null}}else U?(U+=Math.floor((U||5)/2),U=Math.min(60,U)):(U=5,M(!1));a(d,c)}else U&&(U=0,M(!0)),za(a)};b.open("GET","api?v="+C.c,!0);b.send(null)}
+function Aa(a,b){if(a){if(b){var c=C;b.v&&(c.c=b.v);if(b["static"]){var d=c.a,f=b["static"];if(f.bots)for(var e=0,m=f.bots.length;e<m;e++){var g=d.j[f.bots[e].id];g||(g=d.j[f.bots[e].id]=new ha(f.bots[e].id));var h=f.bots[e];g.h=h.deleted;g.name=h.name;g.a.R=h.icons.image_36;g.a.m=h.icons.image_48;g.a.u=h.icons.image_72}if(f.users)for(e=0,m=f.users.length;e<m;e++)(g=d.b[f.users[e].id])||(g=d.b[f.users[e].id]=new ea(f.users[e].id)),h=f.users[e],g.name=h.name,g.h=h.deleted,g.status=h.status,g.a.N=h.profile.image_24,
+g.a.O=h.profile.image_32,g.a.m=h.profile.image_48,g.a.u=h.profile.image_72,g.a.L=h.profile.image_192,g.a.T=h.profile.image_512;if(f.ims)for(e=0,m=f.ims.length;e<m;e++)if(h=t(d,f.ims[e].user))h.b||(d.A[f.ims[e].id]=h.b=new da(f.ims[e].id,h)),g=h.b,g.c=parseFloat(f.ims[e].last_read),g.b=h.h;if(f.channels)for(e=0,m=f.channels.length;e<m;e++){(g=d.h[f.channels[e].id])||(g=d.h[f.channels[e].id]=new ba(f.channels[e].id));var h=f.channels[e],l=d;g.name=h.name;g.b=h.is_archived;g.c=parseFloat(h.last_read);
+g.a={};if(h.members)for(var k=0,p=h.members.length;k<p;k++){var q=t(l,h.members[k]);g.a[q.id]=q;q.f[g.id]=g}}e=0;for(m=f.groups.length;e<m;e++){(g=d.l[f.groups[e].id])||(g=d.l[f.groups[e].id]=new ca(f.groups[e].id));h=d;l=f.groups[e];k=[];g.a={};p=0;for(q=l.members.length;p<q;p++){var u=t(h,l.members[p]);g.a[l.members[p]]=u;u.f[g.id]=g;k.push(u.name)}g.name=k.join(", ");g.b=l.is_archived;g.c=parseFloat(l.last_read)}f.emojis&&(d.c=f.emojis);d.f||(d.f=new aa(f.team.id));e=d.f;m=f.team;e.name=m.name;
+e.a.P=m.icon.image_34;e.a.S=m.icon.image_44;e.a.U=m.icon.image_68;e.a.V=m.icon.image_88;e.a.J=m.icon.image_102;e.a.K=m.icon.image_132;e.a.M=m.icon.image_230;e.a.W=m.icon.image_default;f.self&&(d.a=t(d,f.self.id),d.a.c||(d.a.c=new fa),ga(d.a.c,f.self.prefs));oa()}if(b.live){for(var r in b.live)(d=c.b[r])?A(d,b.live[r]):c.b[r]=new z(r,250,b.live[r]);for(var x in b.live)(r=y(c.a,x))&&!r.b&&(ya(r,b.live[x]),D&&b.live[D.id]&&W())}}Z()}else setTimeout(Z,1E3*U)}function Z(){za(Aa)}
+function ua(a){D&&document.getElementById(D.id).classList.remove("selected");document.getElementById(a.id).classList.add("selected");document.body.classList.remove("no-room-selected");D=a;a=D.name||(D.f?D.f.name:void 0);if(!a){a=[];for(var b in D.a)a.push(D.a[b].name);a=a.join(", ")}document.getElementById("currentRoomTitle").textContent=a;W();Y();document.getElementById("fileUploadContainer").classList.add("hidden");xa();H&&(H=null,N());D.c&&!C.b[D.id]&&(b=new XMLHttpRequest,b.open("GET","api/hist?room="+
+D.id,!0),b.send(null))}function va(a,b,c){var d=D;new FileReader;var f=new FormData,e=new XMLHttpRequest;f.append("file",b);f.append("filename",a);e.onreadystatechange=function(){4===e.readyState&&(204===e.status?c(null):c(e.statusText))};e.open("POST","api/file?room="+d.id);e.send(f)}
+function Ba(a,b){var c=D;if("me"==a){if(H)return!1;var d=new XMLHttpRequest;d.open("POST","api/msg?room="+c.id+"&me&text="+encodeURIComponent(b),!0);d.send(null);return!0}if("shrug"==a)return b.length&&(b+=" "),wa(b+"\u00af_(\u30c4)_/\u00af",!0);console.log("Unknown command "+a);return!1}
+function wa(a,b){if("/"===a[0]&&!0!==b){var c=a.indexOf(" ");return Ba(a.substr(1,-1===c?void 0:c-1),(-1===c?"":a.substr(c)).trim())}var c=D,d=H,f=new XMLHttpRequest,e="api/msg?room="+c.id+"&text="+encodeURIComponent(a);if(d){var m=t(C.a,d.c),g="Message";"C"===c.id[0]?g="Channel message":"D"===c.id[0]?g="Direct message":"G"===c.id[0]&&(g="Group message");e+="&attachments="+encodeURIComponent(JSON.stringify([{fallback:d.text,author_name:"<@"+m.id+"|"+m.name+">",author_icon:m.a.m,text:d.text,footer:g,
+ts:d.b}]))}f.open("POST",e,!0);f.send(null);return!0}function ta(a){var b=new XMLHttpRequest;b.open("DELETE","api/msg?room="+D.id+"&ts="+a.id,!0);b.send(null)}function R(a,b,c){var d=new XMLHttpRequest;d.open("POST","api/reaction?room="+a+"&msg="+b+"&reaction="+encodeURIComponent(c),!0);d.send(null)};