Skip to content

Instantly share code, notes, and snippets.

@blizzarddreams
Created December 8, 2015 22:40
Show Gist options
  • Select an option

  • Save blizzarddreams/f6fd156729fcc70bb6c9 to your computer and use it in GitHub Desktop.

Select an option

Save blizzarddreams/f6fd156729fcc70bb6c9 to your computer and use it in GitHub Desktop.
function addUserList(e,s){Object.keys(e).forEach(function(n){var a=e[n],t=md5(n).substr(0,6),c="<p class='user'>"+a+" <span style='color:#"+t+";'>"+n+"</p>";"&"===a&&(s===current_channel&&$("#user_list").append(c),void 0===users.get(s)&&users.set(s,[]),users.get(s).push(c))}),Object.keys(e).forEach(function(n){var a=e[n],t=md5(n).substr(0,6),c="<p class='user'>"+a+" <span style='color:#"+t+";'>"+n+"</p>";"@"===a&&(s===current_channel&&$("#user_list").append(c),void 0===users.get(s)&&users.set(s,[]),users.get(s).push(c))}),Object.keys(e).forEach(function(n){var a=e[n],t=md5(n).substr(0,6),c="<p class='user'>"+a+" <span style='color:#"+t+";'>"+n+"</p>";"+"===a&&(s===current_channel&&$("#user_list").append(c),void 0===users.get(s)&&users.set(s,[]),users.get(s).push(c))}),Object.keys(e).forEach(function(n){var a=e[n],t=md5(n).substr(0,6),c="<p class='user'>"+a+" <span style='color:#"+t+";'>"+n+"</p>";""===a.trim()&&(s===current_channel&&$("#user_list").append(c),void 0===users.get(s)&&users.set(s,[]),users.get(s).push(c))})}var socket=io(),messages=new Map,users=new Map,current_channel="",username="";$(document).ready(function(){$(document).on("click",".part-channel-button",function(e){$(this).closest("li").text().trim()===current_channel.trim()&&($("#messages").html(""),$("#user_list").html("")),$(this).closest("li").remove(),socket.emit("part channel",{channel:text})}),$(document).on("click",".channel",function(e){return $("#channel_list").find(".active").text()===$(this).text()?!1:($("#channel_list").find(".active").removeClass("active"),$(this).addClass("active"),$("#messages").html(""),current_channel=$(this).text(),$("#messages").append(messages.get(current_channel)),$("#messages").prepend("<div id='user-list-div'><div id='user_list'></div></div>"),void $("#user_list").html(users.get(current_channel)))}),$(".pre-channel-button").click(function(){var e=$(this).attr("data-src"),s=$(this).attr("data-channel");$("#channels").val(s),$("#server").val(e)}),$("#connect-to-irc").submit(function(e){e.preventDefault(),username=$("#username").val(),$("#user-name").html(window.username),$("#new-irc").fadeOut("slow");var s=$("#password").val()||"",n=$("#server").val(),a=$("#channels").val().replace(" ","").split(","),t=!1;a.forEach(function(e){t===!1?(current_channel=e,$("#channel_list").append("<li class='channel active'>"+e+"<i class='fa fa-times part-channel-button'></i></li>"),t=!0):$("#channel_list").append("<li class='channel'>"+e+"<i class='fa fa-times part-channel-button'></i></li>")}),$("#messages").append("<p class='announcement'>*** Connecting to "+n+" <i class='fa fa-spinner fa-pulse'></i></p>"),socket.emit("connected",{username:username,server:n,channels:a,password:s})}),$("#send-message").submit(function(e){e.preventDefault();var s=$("#message-box").val();if(""===s)return!1;if("/"===s[0])return $("#message-box").val(""),socket.emit("command",s.substr(1));$("#message-box").val("");var n=$(".active").text();void 0===messages.get(n)&&messages.set(n,[]),s=$("<p>").text(s).html();var a="<p class='message'>["+moment().format("H:mm:ss")+"] <b style='color:#"+md5(window.username).substr(0,6)+"'>"+window.username+"</b>: "+s+"</p>";socket.emit("sent message",{message:s,channel:n}),void 0===messages.get(n)&&messages.set(data.channel,[]),$("#messages").append(a),messages.get(n).push(a)}),socket.on("message",function(e){e.from=$("<p>").text(e.from).html();var s="<p class='message'>["+moment().format("H:mm:ss")+"] <b style='color:#"+md5(e.from).substr(0,6)+"'>"+e.from+"</b>: "+e.message+"</p>";e.channel===current_channel&&$("#messages").append(s),void 0===messages.get(e.channel)&&messages.set(e.channel,[]),messages.get(e.channel).push(s)}),socket.on("pm",function(e){e.from=$("<p>").text(e.from).html();var s="<p class='message'>["+moment().format("H:mm:ss")+"] <b style='color:#"+md5(e.from).substr(0,6)+"'>"+e.from+"</b>: "+e.message+"</p>";if(e.from===current_channel&&$("#messages").append(s),void 0===messages.get(e.from)&&messages.set(e.from,[]),0===$("li:contains("+e.from+")").length&&$("#channel_list").append("<li class='channel'>"+e.from+"<i class='fa fa-times part-channel-button'></i></li>"),"granted"===Notification.permission){new Notification(""+e.from+": "+e.message)}else"granted"!==Notification.permission&&Notification.requestPermission(function(s){if("granted"===s){new Notification(""+e.from+": "+e.message)}});messages.get(e.from).push(s)}),socket.on("topic",function(e){var s="<p class='topic'>"+e.topic+"</p>";e.channel===current_channel&&$("#messages").append(s),void 0===messages.get(e.channel)&&messages.set(e.channel,[]),messages.get(e.channel).push(s)}),socket.on("messaged user",function(e){$("#channel_list").append("<li class='channel'>"+e.user+"<i class='fa fa-times part-channel-button'></i></li>")}),socket.on("joined channel",function(e){$("#channel_list").append("<li class='channel'>"+e.channel+"<i class='fa fa-times part-channel-button'></i></li>")}),socket.on("part channel",function(e){e.channel.indexOf("#")>-1&&e.channel===current_channel&&($("#messages").html(""),$("#user_list").html("")),$("li:contains("+e.channel+")").remove()}),socket.on("names",function(e){addUserList(e.nicks,e.channel)}),socket.on("notice",function(e){var s="<p class='announcement'>"+e.text+"</p>";void 0===messages.get(e.channel)&&messages.set(e.channel,[]),e.channel===current_channel&&$("#messages").append(s),messages.get(e.channel).push(s)}),socket.on("ctcp",function(e){var s="<p class='announcement'>"+e+"</p>";void 0===messages.get(current_channel)&&messages.set(current_channel,[]),$("#messages").append(s),messages.get(current_channel).push(s)}),socket.on("new nick",function(e){window.username=e.nick,$("#user-name").html(window.username)}),socket.on("nick",function(e){var s="<p class='announcement'>"+e.old+" is now "+e["new"]+".</p>";e.channels.forEach(function(e){e===current_channel&&$("#messages").append(s),void 0===messages.get(e)&&messages.set(e,[]),messages.get(e).push(s)})}),socket.on("join",function(e){var s="<p class='announcement'>"+e.nick+" joined</p>";e.channel===current_channel&&$("#messages").append(s),void 0===messages.get(e.channel)&&messages.set(e.channel,[]),messages.get(e.channel).push(s)}),socket.on("error",function(e){var s="<p class='error'>Error: "+e+". Reload the page please.</p>";$("#messages").append(s)}),socket.on("part",function(e){var s="<p class='announcement'>"+e.nick+" left ("+e.reason+")";e.channel===current_channel&&$("#messages").append(s),void 0===messages.get(e.channel)&&messages.set(e.channel,[]),messages.get(e.channel).push(s)}),$("#messages").animate({scrollTop:$("#messages").prop("scrollHeight")},50)});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment