Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function utf8_encode(str_data) {
- str_data = str_data.replace(/\r\n/g, "\n");
- var utftext = "";
- for (var n = 0; n < str_data.length; n++) {
- var c = str_data.charCodeAt(n);
- if (c < 128) {
- utftext += String.fromCharCode(c)
- } else if ((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128)
- } else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128)
- }
- }
- return utftext
- }
- function md5(str) {
- var RotateLeft = function(lValue, iShiftBits) {
- return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits))
- };
- var AddUnsigned = function(lX, lY) {
- var lX4, lY4, lX8, lY8, lResult;
- lX8 = (lX & 0x80000000);
- lY8 = (lY & 0x80000000);
- lX4 = (lX & 0x40000000);
- lY4 = (lY & 0x40000000);
- lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
- if (lX4 & lY4) {
- return (lResult ^ 0x80000000 ^ lX8 ^ lY8)
- }
- if (lX4 | lY4) {
- if (lResult & 0x40000000) {
- return (lResult ^ 0xC0000000 ^ lX8 ^ lY8)
- } else {
- return (lResult ^ 0x40000000 ^ lX8 ^ lY8)
- }
- } else {
- return (lResult ^ lX8 ^ lY8)
- }
- };
- var F = function(x, y, z) {
- return (x & y) | ((~x) & z)
- };
- var G = function(x, y, z) {
- return (x & z) | (y & (~z))
- };
- var H = function(x, y, z) {
- return (x ^ y ^ z)
- };
- var I = function(x, y, z) {
- return (y ^ (x | (~z)))
- };
- var FF = function(a, b, c, d, x, s, ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b)
- };
- var GG = function(a, b, c, d, x, s, ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b)
- };
- var HH = function(a, b, c, d, x, s, ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b)
- };
- var II = function(a, b, c, d, x, s, ac) {
- a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
- return AddUnsigned(RotateLeft(a, s), b)
- };
- var ConvertToWordArray = function(str) {
- var lWordCount;
- var lMessageLength = str.length;
- var lNumberOfWords_temp1 = lMessageLength + 8;
- var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
- var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
- var lWordArray = Array(lNumberOfWords - 1);
- var lBytePosition = 0;
- var lByteCount = 0;
- while (lByteCount < lMessageLength) {
- lWordCount = (lByteCount - (lByteCount % 4)) / 4;
- lBytePosition = (lByteCount % 4) * 8;
- lWordArray[lWordCount] = (lWordArray[lWordCount] | (str.charCodeAt(lByteCount) << lBytePosition));
- lByteCount++
- }
- lWordCount = (lByteCount - (lByteCount % 4)) / 4;
- lBytePosition = (lByteCount % 4) * 8;
- lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
- lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
- lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
- return lWordArray
- };
- var WordToHex = function(lValue) {
- var WordToHexValue = "",
- WordToHexValue_temp = "",
- lByte, lCount;
- for (lCount = 0; lCount <= 3; lCount++) {
- lByte = (lValue >>> (lCount * 8)) & 255;
- WordToHexValue_temp = "0" + lByte.toString(16);
- WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2)
- }
- return WordToHexValue
- };
- var x = Array();
- var k, AA, BB, CC, DD, a, b, c, d;
- var S11 = 7,
- S12 = 12,
- S13 = 17,
- S14 = 22;
- var S21 = 5,
- S22 = 9,
- S23 = 14,
- S24 = 20;
- var S31 = 4,
- S32 = 11,
- S33 = 16,
- S34 = 23;
- var S41 = 6,
- S42 = 10,
- S43 = 15,
- S44 = 21;
- str = this.utf8_encode(str);
- x = ConvertToWordArray(str);
- a = 0x67452301;
- b = 0xEFCDAB89;
- c = 0x98BADCFE;
- d = 0x10325476;
- for (k = 0; k < x.length; k += 16) {
- AA = a;
- BB = b;
- CC = c;
- DD = d;
- a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
- d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
- c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
- b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
- a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
- d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
- c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
- b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
- a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
- d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
- c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
- b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
- a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
- d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
- c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
- b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
- a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
- d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
- c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
- b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
- a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
- d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
- c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
- b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
- a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
- d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
- c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
- b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
- a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
- d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
- c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
- b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
- a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
- d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
- c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
- b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
- a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
- d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
- c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
- b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
- a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
- d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
- c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
- b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
- a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
- d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
- c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
- b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
- a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
- d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
- c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
- b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
- a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
- d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
- c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
- b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
- a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
- d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
- c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
- b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
- a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
- d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
- c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
- b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
- a = AddUnsigned(a, AA);
- b = AddUnsigned(b, BB);
- c = AddUnsigned(c, CC);
- d = AddUnsigned(d, DD)
- }
- var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
- return temp.toLowerCase()
- }(function() {
- window.formatChatMessage = function(data, last) {
- if (!data.meta || data.msgclass) {
- data.meta = {
- addClass: data.msgclass,
- addClassToNameAndTimestamp: data.msgclass
- }
- }
- var skip = data.username === last.name;
- if (data.meta.addClass === "server-whisper")
- skip = !0;
- if (data.msg.match(/^\s*<strong>\w+\s*:\s*<\/strong>\s*/))
- skip = !1;
- if (data.meta.forceShowName)
- skip = !1;
- data.msg = stripImages(data.msg);
- data.msg = execEmotes(data.msg);
- last.name = data.username;
- var div = $("<div/>");
- if (data.meta.addClass === "drink") {
- div.addClass("drink");
- data.meta.addClass = ""
- }
- if (USEROPTS.show_timestamps) {
- var time = $("<span/>").addClass("timestamp").appendTo(div);
- var timestamp = new Date(data.time).toTimeString().split(" ")[0];
- time.text("[" + timestamp + "] ");
- if (data.meta.addClass && data.meta.addClassToNameAndTimestamp) {
- time.addClass(data.meta.addClass)
- }
- }
- var name = $("<span/>");
- var safeUsername = data.username.replace(/[^\w-]/g, '\\$');
- if (!skip) {
- name.appendTo(div)
- }
- $("<strong/>").addClass("username username-" + safeUsername).text(data.username + ": ").appendTo(name);
- if (data.meta.modflair) {
- name.addClass(getNameColor(data.meta.modflair))
- }
- if (data.meta.addClass && data.meta.addClassToNameAndTimestamp) {
- name.addClass(data.meta.addClass)
- }
- if (data.meta.superadminflair) {
- name.addClass("label").addClass(data.meta.superadminflair.labelclass);
- $("<span/>").addClass(data.meta.superadminflair.icon).addClass("glyphicon").css("margin-right", "3px").prependTo(name)
- }
- var message = $("<span/>").appendTo(div);
- message[0].innerHTML = data.msg;
- if (data.meta.action) {
- name.remove();
- message[0].innerHTML = data.username + " " + data.msg
- }
- if (data.meta.addClass) {
- message.addClass(data.meta.addClass)
- }
- if (data.meta.shadow) {
- div.addClass("chat-shadow")
- }
- return div
- }
- window.nickcolors = {};
- document.body.appendChild(document.createElement('style'));
- window.nickcolorssheet = document.styleSheets[document.styleSheets.length - 1];
- Callbacks.chatMsg = function(data) {
- if (window.nickcolors[data.username] == undefined) {
- var rule, m;
- var safeUsername = data.username.replace(/[^\w-]/g, '\\$');
- m = md5(data.username);
- window.nickcolors[data.username] = '#' + m[0] + m[2] + m[4] + m[6] + m[8] + m[10];
- rule = '.username-' + safeUsername + ' {color:' + window.nickcolors[data.username] + ';}'
- window.nickcolorssheet.insertRule(rule, window.nickcolorssheet.cssRules.length)
- }
- addChatMessage(data)
- }
- })();
- function markup(start, end) {
- element = $('#chatline').get(0);
- if (document.selection) {
- element.focus();
- sel = document.selection.createRange();
- sel.text = start + sel.text + end
- } else if (element.selectionStart || element.selectionStart == '0') {
- element.focus();
- var startPos = element.selectionStart;
- var endPos = element.selectionEnd;
- element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length)
- } else {
- element.value += start + end
- }
- }(function() {
- $('#leftcontrols').append('<div id="text-controls" class="btn-group pull-right" style="display:none;"><button class="btn btn-sm btn-default" id="textctrl-bold" title="Жирный текст" onclick="javascript:markup(\'**\', \'**\')">B</button><button class="btn btn-sm btn-default" id="textctrl-code" title="Код" onclick="javascript:markup(\'`\', \'`\')"><></button><button class="btn btn-sm btn-default" style="font-style: italic;" id="textctrl-italic" title="Курсив" onclick="javascript:markup(\'//\', \'//\')">I</button><button class="btn btn-sm btn-default" id="textctrl-strike" title="Зачеркнутый" onclick="javascript:markup(\'~~\', \'~~\')">S</button><button class="btn btn-sm btn-default" id="textctrl-spoiler" title="Спойлер" onclick="javascript:markup(\'[sp]\', \'[/sp]\')">[]</button></div>');
- $('#chatline').focus(function() {
- $('#text-controls').fadeIn('slow')
- }).blur(function() {
- if (window.textcontrolsfocustimeout) return;
- window.textcontrolsfocustimeout = setTimeout(function() {
- if (!$('#chatline').is(':focus')) {
- $('#text-controls').fadeOut('slow')
- }
- window.textcontrolsfocustimeout = !1
- }, 3000)
- })
- })();
- function handleVideoResize() {
- if ($("#ytapiplayer").length === 0) return;
- var intv, ticks = 0;
- var resize = function() {
- if (++ticks > 10) clearInterval(intv);
- if ($("#ytapiplayer").parent().outerHeight() <= 0) return;
- clearInterval(intv);
- var responsiveFrame = $("#ytapiplayer").parent();
- var height = responsiveFrame.outerHeight() - $("#chatline").outerHeight() - 2;
- $("#messagebuffer").height(height + 3);
- $("#userlist").height(height - 3);
- $("#ytapiplayer").attr("height", VHEIGHT = responsiveFrame.outerHeight());
- $("#ytapiplayer").attr("width", VWIDTH = responsiveFrame.outerWidth())
- };
- if ($("#ytapiplayer").height() > 0) resize();
- else intv = setInterval(resize, 500)
- }
- $('body').on('click', '.chat-picture', function(event) {
- event.preventDefault()
- var _source = $(this).attr('src')
- $('#js_image_container').find('.cmds-content').html('<img class="chat-picture-modal" src="' + _source + '">')
- $('#js_image_container').modal('show')
- })
- $('body').on('click', '#js_image_container', function(event) {
- event.preventDefault()
- $('#js_image_container').modal('hide')
- })
- var imgurUpload = function() {
- if ($("#uploadbtn").length == 0)
- $("#leftcontrols").append('<button id="uploadbtn" class="btn btn-sm btn-default" title="Загрузить изображение" data-toggle="modal" data-target="#imgupload"><span class="glyphicon glyphicon-uploadbtn"></span></button>');
- $("body").append('<div class="modal fade" id="imgupload" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><h4 class="modal-title" id="myModalLabel">Загрузка изображения с компьютера<a href="http://imgur.com" target="_blank"><div class="imgur-logo"></div></a></h4></div><div class="modal-body"><div class="upload"><input type="file" id="image_selector" /></div><img src="" id="image_preview" /></div></div></div></div>');
- $("body").append('<div class="modal fade" id="js_image_container" style="text-align: center;" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">Г—</span><span class="sr-only">Close</span></button><h4 class="modal-title" id="myModalLabel">Картинка</h4></div><div class="modal-body"><div class="cmds-content"></div></div></div></div></div>');
- var clearFields = function() {
- $("#image_selector").val('');
- $("#image_preview").attr('src', '');
- $("#imgupload").css({
- 'cursor': 'auto'
- })
- };
- $("#image_selector").on("change", function() {
- var reader = new FileReader();
- reader.onload = function(e) {
- var data = e.target.result.substr(e.target.result.indexOf(",") + 1, e.target.result.length);
- $("#image_preview").attr("src", e.target.result);
- $.ajax({
- url: 'https://api.imgur.com/3/image',
- headers: {
- 'Authorization': 'Client-ID 711a7fc76bd63f3'
- },
- type: 'POST',
- data: {
- 'image': data,
- 'type': 'base64'
- },
- beforeSend: function() {
- $("#imgupload").css({
- 'cursor': 'wait'
- })
- },
- success: function(response) {
- $("#imgupload").modal('hide');
- clearFields();
- $("#chatline").val($("#chatline").val() + response.data.link.substring(0));
- window.setTimeout(function() {
- $('#chatline').focus()
- }, 400)
- },
- error: function() {
- alert("Ошибка.");
- clearFields()
- }
- })
- };
- reader.readAsDataURL(this.files[0])
- })
- }
- if ($("#uploadbtn").length == 0)
- imgurUpload();
- function openImageWindow(src) {
- var image = new Image();
- image.src = src;
- var width = image.width;
- var height = image.height;
- window.open(src, "Image", "width=" + width + ",height=" + height)
- }
- $("#newpollbtn").html('<span class="glyphicon glyphicon-poll"></span>').prop('title', 'Создать опрос')
- $("#togglemotd").unbind('click');
- $("#togglemotd").click(function() {
- var hidden = $("#motd").css("display") === "none";
- $("#motd").toggle();
- if (hidden) {
- $("#togglemotd").find(".glyphicon-plus").removeClass("glyphicon-plus").addClass("glyphicon-minus");
- document.querySelector("#motdwrap").removeAttribute("style")
- } else {
- $("#togglemotd").find(".glyphicon-minus").removeClass("glyphicon-minus").addClass("glyphicon-plus");
- $("#motdwrap").css("padding", "0px").css("margin-bottom", "0px").css("background", "none").css("border", "none")
- }
- });
- if (!ddg_444dgdgds4____) {
- var ddg_444dgdgds4____ = !0;
- Callbacks.changeMedia = (function(oldChangeMedia) {
- return function(data) {
- oldChangeMedia(data);
- $("#currenttitle").html(`<b>${data.title}</b> | ${$(".queue_active").attr("title")}`)
- }
- })(window.Callbacks.changeMedia);
- const hideVideoButton = document.createElement("button");
- hideVideoButton.classList.value = "btn btn-sm btn-default";
- hideVideoButton.innerHTML = "Закрыть плеер";
- const video = document.querySelectorAll('.embed-responsive-item')[0];
- function toggleVideo() {
- if (!video.hided) {
- document.querySelectorAll('.embed-responsive-item')[0].remove();
- video.hided = !0;
- hideVideoButton.innerHTML = "Раскрыть плеер"
- } else {
- $('.embed-responsive').append(video);
- PLAYER.mediaType = "";
- PLAYER.mediaId = "";
- socket.emit("playerReady");
- video.hided = !1;
- hideVideoButton.innerHTML = "Закрыть плеер"
- }
- }
- hideVideoButton.onclick = toggleVideo;
- $("#videocontrols").append(hideVideoButton);
- $('#emotelistbtn').remove();
- $('#leftcontrols').append(' <button id="emotesbtn" class="btn btn-sm btn-default">Смайлики</button>');
- $('#playlistrow').prepend('<div id="smiles-panel"></div>');
- $('#smiles-panel').hide();
- for (var smiles = CHANNEL.emotes, n = 0, smilesLen = smiles.length; smilesLen > n; n++) {
- $(`<div class="emote">
- <img src="${smiles[n].image}" class="channel-emote" title="${smiles[n].name}" onclick="insertText('${' ' + smiles[n].name + ' '}')">
- </div>`).appendTo('#smiles-panel');
- }
- var insertText = function(str, bool) {
- let formated_str = bool ? str + $("#chatline").val() : $("#chatline").val() + str;
- $("#chatline").val(formated_str).focus()
- }
- document.querySelector('#emotesbtn').onclick = function() {
- $('#smiles-panel').slideToggle(200);
- $(this).toggleClass('active')
- }
- }
- $(document).on("click", ".username", e => {
- insertText(e.target.innerHTML, !0)
- })
- window.formatChatMessage = (function(oldFormatChatMessage) {
- return function(data, last) {
- const div = oldFormatChatMessage(data, last);
- const user = window.findUserlistItem(data.username);
- if (div[0].lastChild.lastChild.dataset) {
- if (div[0].lastChild.lastChild.dataset.vocaroo) {
- div[0].lastChild.lastChild.innerHTML = '<iframe width="300" height="60"' + 'src="https://vocaroo.com/embed/' + div[0].lastChild.lastChild.dataset.vocaroo + '" frameborder="0"></iframe>'
- }
- }
- return div
- }
- })(window.formatChatMessage)
Add Comment
Please, Sign In to add comment