game/js/onlineList.js
2022-06-07 00:30:34 +03:00

1283 lines
43 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var sml_img = { };
// Ïåðåìåííûå ãîëîñîâóõ
var mediaRecorder
var setIntervalSound
var timerSecMessage = 0
var flagVoice = false
var chunksVoice = []
Element.prototype.remove = function() {
this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
for(var i = 0, len = this.length; i < len; i++) {
if(this[i] && this[i].parentElement) {
this[i].parentElement.removeChild(this[i]);
}
}
}
var chat = {
key:'',
room:'',
count:0,
time:0,
t:null, //timer
t2:null, //timer 2
t_all:{}, //time molch
r:0,
g:0,
rtime:37,
ct:{ '-1':0, '1':15, '2':30, '3':60, '4':300},
saveData:null,
msg_id:0,
nrg:0,
nozpros:0,
newmsg:0,
sound:0,
translit:0,
filter:0,
globalMsg:0,
ignoreList:{x:0,nms:[]},
citySys:0,
inObj:null,
userSendMessage: false,
efftxt:function(id,txt) {
var r = txt;
return r;
},
ignore: function (login) {
if (this.ignoreList[login] != undefined) {
if ($('#ignr_alu').attr('id') != undefined) {
$(`#ignr_u_${this.ignoreList[login]}`).remove();
}
delete this.ignoreList.nms[this.ignoreList[login]];
delete this.ignoreList[login];
return
//msg
}
this.ignoreList.x++;
this.ignoreList[login] = this.ignoreList.x;
this.ignoreList.nms[this.ignoreList.x] = login;
if ($('#ignr_alu').attr('id') != undefined) {
$('#ignr_alu').html(`${$('#ignr_alu').html()}<div id="ignr_u_${this.ignoreList.x}"> <b>${login}</b> <a target="_blank" href="https://new-combats.com/info/${login}"><img src="https://${top.c.img}/i/inf_capitalcity.gif" onMouseOver="top.hi(this,\'<b>Èíô. î ${login}</b>\',event,5,-2,2,2,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn(${this.ignoreList.x})">Clear</a></small> </div>`);
}
return
},
getRandom: function (a, b) {
return a + ((b - a) * Math.random());
},
feerverk_id:0,
feerverk:function(name) {
if( name == 'fw04' ) {
var frc = {
'name':'fw04',
'x':19,
'top':this.getRandom(1,35),
'left':this.getRandom(0,365),
'width':135,
'sound':this.getRandom(8,10),
'height':99,
'zad':3
};
frc.left -= 35;
}
if( frc.name != undefined ) {
this.sendSound( frc.sound );
var obj = top.frames.main.document.getElementById('frvrks');
if( obj != undefined ) {
var newhtml = '';
var i = 1;
while( i <= frc.x ) {
newhtml += `<img style="display:none" id="frvanim_${this.feerverk_id}_img${i}" width="${frc.width}" height="${frc.height}" src="https://img.new-combats.com/fw/${frc.name}/${i}.gif">`;
i++;
}
newhtml = `<div id="frvanim_${this.feerverk_id}" style="z-index:5000;position:absolute;width:${frc.width}px;height:${frc.height}px;left:${frc.left}px;top:${frc.top}px;">${newhtml}</div>`;
$(obj).append(newhtml);
this.feerverk_go( this.feerverk_id , frc.x-1 , frc.name , frc.x , frc.zad );
this.feerverk_id++;
}
}
},
feerverk_go: function (id, time_back, img, x, zad) {
if (zad > 0) {
setTimeout(`chat.feerverk_go(${id},${time_back},"${img}",${x},0);`, 500 * zad);
} else {
time_back--;
var obj = top.frames.main.document.getElementById(`frvanim_${id}`);
if (time_back > 0) {
var img1 = top.frames.main.document.getElementById(`frvanim_${id}_img${(x-time_back+1)}`); //òåêóùàÿ
if (img1 != undefined) img1.style.display = 'none';
var img1 = top.frames.main.document.getElementById(`frvanim_${id}_img${(x-time_back+2)}`); //òåêóùàÿ
if (img2 != undefined) img2.style.display = '';
setTimeout(`chat.feerverk_go(${id},${time_back},"${img}",${x},0);`, 50);
} else top.frames.main.document.getElementById(`frvanim_${id}`).remove();
}
},
ignorUn: function (x) {
$(`#ignr_u_${x}`).remove();
this.ignore(this.ignoreList.nms[x]);
},
ignorListOpen: function () {
var date = '', i = 0;
var j = 1;
while (j <= this.ignoreList.x) {
if (this.ignoreList[this.ignoreList.nms[j]] != undefined) {
date += `<div id="ignr_u_${j}"> <b>${this.ignoreList.nms[j]}</b> <a target="_blank" href="https://new-combats.com/info/${this.ignoreList.nms[j]}"><img src="https://${top.c.img}/i/inf_capitalcity.gif" onMouseOver="top.hi(this,\'<b>Èíô. î ${this.ignoreList.nms[j]}</b>\',event,5,-2,2,2,\'\');" onMouseOut="top.hic();" onMouseDown="top.hic();"></a> <small><a href="javascript:void(0)" onclick="chat.ignorUn(${j})">Clear</a></small> </div>`;
}
j++;
}
win.add('ignorListWin', 'Ñïèñîê èãíîðèðóåìûõ', `<div id="ignr_alu">${date}</div>`, {}, 0, 1, 'min-width:200px;');
delete date;
},
// ñìàéëû
addSmile: function (id) {
$('#textmsg').val(`${$('#textmsg').val()} :${id}: `);
$('#textmsg').focus();
},
lookSmiles: function () {
if ($('#chbtn8').attr('class') == 'db cp chatBtn8_1') {
return this.lookSmilesWork('', 'chatBtn8_2')
}
return this.lookSmilesWork('none', 'chatBtn8_1')
},
lookSmilesWork: function (display, className) {
$('#ttSmiles').css('display', display);
$('#chbtn8').attr('class', `db cp ${className}`);
},
// îïòèìèçàöèÿ âñåõ êíîïîê
greyButton_work: function (elemId, className, method, count ) {
$(elemId).attr('class', `db cp ${className}`);
this[method] = count;
},
// êíîïêà ëåéêè
// 1
filterMsg: function () {
if ($('#chbtn1').attr('class') == 'db cp chatBtn1_1') {
return this.greyButton_work('#chbtn1', 'chatBtn1_2', "filter", 1)
}
return this.greyButton_work('#chbtn1', 'chatBtn1_1', "filter", 0)
},
// êíîïêà ñèñòåìíûõ ñîîáùåíèé
// 2
systemMsg: function () {
if ($('#chbtn4').attr('class') == 'db cp chatBtn4_1') {
this.greyButton_work('#chbtn4', 'chatBtn4_2', "citySys", 1)
$.cookie('citySys', 1);
return
}
this.greyButton_work('#chbtn4', 'chatBtn4_1', "citySys", 0)
$.cookie('citySys', 0);
return
},
// êíîïêà àóäèîñîîáùåíèé
// 3
soundChat: function () {
if ($('#chbtn7').attr('class') == 'db cp chatBtn7_1') {
return this.greyButton_work('#chbtn7', 'chatBtn7_2', "sound", 1)
} else if ($('#chbtn7').attr('class') == 'db cp chatBtn7_2') {
return this.greyButton_work('#chbtn7', 'chatBtn7_3', "sound", 2)
}
return this.greyButton_work('#chbtn7', 'chatBtn7_1', "sound", 0)
},
// êíîïêà òðàíñëèòà
// 4
translitChat: function () {
if ($('#chbtn6').attr('class') == 'db cp chatBtn6_1') {
return this.greyButton_work('#chbtn6', 'chatBtn6_2', "translit", 1)
}
return this.greyButton_work('#chbtn6', 'chatBtn6_1', "translit", 0)
},
subValSend: '',
subSend: async function () {
if ($('#textmsg').val() != '') {
if ($('#textmsg').val() != this.subValSend) {
if (this.nozpros == 0) {
this.trmb();
var textmsg = $('#textmsg').val();
if (cb_date[cb_select] == 7 && (textmsg.match(/to *\[(.*?)\].*/i) || textmsg.match(/private *\[(.*?)\].*/i))) {
for (var cb in cb_date) {
if (cb_date[cb] == 5) {
open_cb(cb, null);
}
}
}
if (typeof window.online_send_jqxhr == "undefined" || window.online_jqxhr.readyState === 4) {
window.online_send_jqxhr = $.post('online.php?r' + c.rnd + '&cas' + ((new Date().getTime()) + Math.random()), {
msg: textmsg,
key: this.key,
mid: this.msg_id,
rndo: c.rnd,
cb: cb_date[cb_select]
}, function (data) {
chat.clearText();
chat.fc();
chat.genchatData(data, 1);
chat.scrollNow(true)
document.getElementById("textmsg").value = ''
});
}
}
}
}
},
addto:function(login, type2) {
var loginaddT = login;
var s = '';
if($('#'+$(this.inObj).attr('id')).attr('id') == undefined) {
$('#textmsg').focus();
s = $('#textmsg').val();
} else $(this.inObj).focus();
var reg555 = new RegExp("private\\s*\\[(.*?)\\]","");
var reg551 = new RegExp("to\\s*\\[(.*?)\\]","");
var test1 = s.match(reg555);
if(s.match(reg555) == null) {
type = "to";
} else if(s.match(reg551) == null) {
type = "private";
}
var type3 = 'to';
var reg2 = new RegExp(""+type+"(\\s*)\\[(.*?)\\]","");
var cs = s.replace(reg2,""+type+"$1[,$2,]");
var slogin = login.replace(/([\^.*{}$%?\[\]+|\/\(\)])/g,"\\$1");
var reg = new RegExp(""+type+"\\s*\\[.*,\\s*"+slogin+"\\s*,.*\\]","");
var result = '';
var reg3 = new RegExp(""+type+"\\s*\\[(.*?)\\]","");
while(res = s.match(reg3)) {
result += `${res[1]},`;
s = s.replace(reg3,'');
}
result = result.replace(/,$/,'');
var prar = result.split(',');
for(i = 0; i < prar.length; i++) {
prar[i] = prar[i].replace(/^\s+/,'');
prar[i] = prar[i].replace(/\s+$/,'');
}
var str = prar.join(', ');
if(str) login += ', ';
space = '';
if (!s.match(/^\s+/)) space = ' ';
var prob = '';
if($('#'+$(this.inObj).attr('id')).attr('id') == undefined && (this.inObj == null || $('#main').contents().find('#'+this.inObj.id).attr('id') == undefined))
{
if (!cs.match(reg))
{
if (type2 == 'to') {
if (test1 != null) type2 = 'private';
}
if (loginaddT == 'klan' && type2 == 'private') {
if (login == 'klan, ') {
s = type2 + ' [klan] to [' + prob + '' + str + '' + prob + ']' + space + s;
} else {
s = type2 + ' [klan]' + space + s;
}
}
else {s = type2+' ['+prob+''+login+str+''+prob+']'+space+s;}
} else {
if(type3 == 'to') type3 = "private";
s = type3+' ['+prob+''+str+''+prob+']'+space+s;
}
} else s = login+str;
if (this.inObj != null && $('#main').contents().find(`#${this.inObj.id}`).attr('id') != undefined) {
$('#main').contents().find(`#${this.inObj.id}`).val(s);
} else if ($('#' + $(this.inObj).attr('id')).attr('id') == undefined) {
$('#textmsg').val(s);
} else $(this.inObj).val(s);
},
clearText: function () {
$('#textmsg').val('');
},
reflesh: function () {
this.time = 0;
this.testTimer(true);
},
reMoney: function () {
$('#moneyGM').html(`${top.c.money} êð.`);
},
testTimer: function (n) {
clearTimeout(this.t);
if ($.cookie('btl') != this.btl) {
if ($.cookie('btl') > 0) {
this.sendSound(2);
if (top.frames['main'].smnpty == undefined) {
top.frames['main'].location.href = "main.php";
}
}
this.btl = $.cookie('btl');
}
if (this.rtime != this.ct[$.cookie('chatCfg0')] && this.ct[$.cookie('chatCfg0')] != undefined) {
this.rtime = this.ct[$.cookie('chatCfg0')];
if (this.time > this.rtime) this.time = this.rtime;
}
if (this.rtime >= 5 || this.r == 0) //was >- 30 lakris fix
{
if (this.time < 1) {
var aot = {
0: 0,
1: 1,
2: 0
};
if ($('#chcf10').attr('checked') == true) aot[2] = 1;
if ($('#autoRefOnline').attr('checked') == true || this.r == 0 || n != false) {
aot[0] = 1;
}
if (this.nozpros == 0) {
if (typeof window.online_jqxhr == "undefined" || window.online_jqxhr.readyState === 4) {
window.online_jqxhr = $.getJSON(`online.php?r${c.rnd}&cas${((new Date().getTime()) + Math.random())}`, {key: this.key, mid: this.msg_id, r1: aot[0], r2: aot[1], r3: aot[2], rndo: c.rnd}, function (data) {
if (data.rnd != null) {
chat.genchatData(data);
if (data.key != undefined) chat.saveData = data;
this.g++;
c.rnd = data.rnd;
}
});
}
}
this.time = 5;
this.r++;
} else this.time--;
this.t = setTimeout('chat.testTimer(false);clearTimeout(this.t);', 1000);
}
},
gUser:function(data,ol) {
var rt = '';
function data_work (count) {
data[count] = this.replaceAll(data[count], "\\", '\\\\');
data[count] = this.replaceAll(data[count], "[s1;]", '"');
data[count] = this.replaceAll(data[count], "[s2;]", '`');
data[count] = this.replaceAll(data[count], "[s3;]", '');
data[count] = this.replaceAll(data[count], "[s4;]", '');
data[count] = this.replaceAll(data[count], "<", '');
data[count] = this.replaceAll(data[count], ">", '');
}
if(data[1]!=undefined) {
rt = data[1];
if( rt == 'Àäìèíèñòðàòîð' ) rt = this.efftxt('fire',rt);
if (ol == true) {
rt = `<a href="javascript:void(0)" onClick="chat.addto(\'${data[1]}\',\'to\')">${rt}</a>`;
}
else rt = `<b>${rt}</b>`;
if(data[13]!=0) rt = `<span class="uCss${data[13]}">${rt}</span>`;
if (data[10] > 0) {
rt = `<s onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Ïåðñîíàæ áûë çàáëîêèðîâàí\',event,3,1,1,2,\'\')">${rt}</s>`;
}
if (data[8] != 0) data_work(8)
else if (data[9] != 0) data_work(9)
// òóò
function rtData (count) {
return rt = `<img height="15" src="https://${top.c.img}/i/align/align${data[count]}.gif">${rt}`;
}
if(data[4]!=0)
{
rt = `<a href="/clan/${data[4]}" title="${data[4]}" target="_blank"><img width="24" height="15" src="https://${c.img}/i/clan/${data[4]}.gif"></a>${rt}`;
}
if( data[16] > 0 ) rtData(16)
rtData(3)
if(c.lvl>-1)
{
if(c.city==data[6])
{
if (data[12] > 0) {
rt = `<a href="javascript:void(0)" onClick="chat.addto(\'${data[1]}\',\'private\')"><img title="Ïåðñîíàæ ñðàæàåòñÿ" src="https://${c.img}/i/lock1.gif" width="20" height="15"></a>${rt}`;
} else {
rt = `<a href="javascript:void(0)" onClick="chat.addto(\'${data[1]}\',\'private\')"><img src="https://${c.img}/i/lock.gif" width="20" height="15"></a>${rt}`;
}
}else{
rt = `<img style="padding-right:3px;" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Ïåðñîíàæ ñåé÷àñ â ${data[6]}\',event,3,1,1,2,\'\')" src="https://${c.img}/i/city_ico/${data[6]}.gif" width="17" height="15">${rt}`;
}
}
rt += `[${data[2]}]<a href="https://${c.url}/info/${data[0]}" target="_blank"><img style="vertical-align:baseline" width="12" height="11" src="https://${top.c.img}/i/inf_${data[5]}.gif" title="Èíô. î ${data[1]}" /></a>`;
if (data[11] > top.c.time) {
rt += ` <img id="img_molch${data[1]}" width="24" height="15" style="cursor:help" src="https://${c.img}/i/sleep2.gif" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Íà ïåðñîíàæà íàëîæåíî çàêëÿòèå ìîë÷àíèÿ.<br>Áóäåò ìîë÷àòü åùå <span id=\\\'molch${data[0]}\\\'>${this.timeOut(data[11])}</span>\',event,3,1,1,2,\'\');chat.justRefMolch(${data[0]})">`;
this.addRefMolch(data[0], data[11]);
}
if (data[14] != "") {
rt += ` <img width="24" height="15" style="cursor:help" src="https://${c.img}/i/travma2.gif" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Ó ïåðñîíàæà ${data[14]}\',event,3,1,1,2,\'\');">`;
}
if (data[13] > 0) {
if (data[13] == 2) {
rt += ` <a target="main" href="/main.php?atak_user=${data[0]}" title="Êðîâàâîå íàïàäåíèå íà ${data[1]}"><img width="13" height="13" src="https://${c.img}/i/clear.gif"></a>`;
} else {
rt += ` <a target="main" href="/main.php?atak_user=${data[0]}" title="Íàïàñòü íà ${data[1]}"><img width="13" height="13" src="https://${c.img}/i/curse_attack.gif"></a>`;
}
}
if( data[15] == 1 ) rt = `<span class=woman >${rt}</span>`
} else rt = '<i>íåâèäèìêà</i>[??]'
return rt;
},mlch:{},
justRefMolch: function (id) {
$(`#molch${id}`).html(this.timeOut(this.mlch[id]));
},
addRefMolch: function (id, tm) {
this.t_all[id] = setTimeout(`chat.refMolch(${id})`, 1000);
this.mlch[id] = tm;
},
refMolch: function (id) {
clearTimeout(this.t_all[id]);
if (this.mlch[id] > 0) {
$(`#molch${id}`).html(this.timeOut(this.mlch[id]));
this.t_all[id] = setTimeout(`chat.refMolch(${id})`, 1000);
return
}
$(`#img_molch${id}`).remove();
return delete this.mlch[id], this.t_all;
},
fc: function () {
$('#textmsg').focus();
},
timeOut: function (v) {
msPerDay = '';
dt = new Date();
dt.setTime((v - c.time) * 1000);
m1 = dt.getUTCMonth();
d1 = dt.getUTCDay();
h1 = dt.getUTCHours();
min1 = dt.getUTCMinutes();
sec = dt.getUTCSeconds();
if (m1 > 0) msPerDay = `${m1} ìåñ. `;
if (d1 > 0 && Math.floor((v - c.time) / (60 * 60 * 24)) == d1) msPerDay = `${d1} ä. `;
if (h1 > 0) msPerDay += `${h1} ÷. `;
if (min1 > 0) msPerDay += `${min1} ìèí. `;
if (sec > 0 && msPerDay != '') msPerDay += `${sec} ñåê. `;
if (msPerDay == '') msPerDay = 'ìåíüøå ìèíóòû.';
delete m1, d1, h1, min1, sec;
return msPerDay;
},
deleteMessage: async function (id, fc) {
if (fc == 1) top.msgdeleted(id)
else {
$(`#msg_${id}`).remove();
$(`#msg_${id}_sys`).remove();
if (top.c.admin > 0) {
await fetch(`online.php?jack=${c.rnd}&cas${((new Date().getTime()) + Math.random())}`, {
method: "POST",
delMsg: id
})
}
}
},
clear: function () {
if ($('#textmsg').val() == '') {
if (confirm('Î÷èñòèòü îêíî ÷àòà?')) {
if (top.des == 1) {
$(`#canal${top.cb_date[top.cb_select]}`).html('');
$('#textmsg').focus();
return
}
$('#canal5').html('');
$('#textmsg').focus();
return
}
}
return $('#textmsg').val('');
},
scrollNow: function (userTrue) {
var $chat_list = document.getElementById("chat_list")
var $countChatList = $chat_list.scrollHeight - $chat_list.scrollTop
if ($countChatList < $chat_list.offsetHeight + 100) {
return $chat_list.scrollBy(0, $chat_list.scrollHeight)
}
if (userTrue) return $chat_list.scrollBy(0, $chat_list.scrollHeight)
},
msgcount:0,
sendMsg: function(data) {
// Åñëè ñèñòåìíîå ñîîáùåíèå îò ìîáà - äëèíà ìàññèâà === 10
// Èíà÷å - äëèíà ìàññèâà === 17
// data[0] - êàêîå-òî ÷èñëî
// data[1] - âèäèìî íîìåð ñîîáùåíèÿ â ÷àòå çà âñ¸ âðåìÿ
// data[2] - ÷èñëî îò 1 äî 6 êàê óâèäåë
// data[3] - íèê, åñëè ïîêðàøåííûé
// data[4] - íèê, åñëè íå ïîêðàøåííûé
// data[5] - ñàìî ñîîáùåíèå â ÷àòå èç èíïóòà
// data[6] - öâåò ïîêðàñêè íèêà. Åñëè öâåòà íåò - ïóñòàÿ ñòðîêà
// data[7] - 0
// data[8] - 0
// data[9] - 0
// data[10] - 0
// data[11] - 0
// data[12] - 0
// data[13] - âðåìÿ
// data[14] - ïîëíàÿ äàòà
// data[15] - ïóñòàÿ ñòðîêà
// data[16] - 0
var msg_see = 1;
var global_type = 0;
if( data[5] != undefined ) {
if( data[5].substring(0,7) == 'global:' ) {
global_type = 1;
data[5] = data[5].substring(7);
}
}
if (data[0] == 'new') {
data[0] = `new_msg_ ${this.newmsg++}`;
}
if (data[2] == 'delete') this.deleteMessage(data[0]);
else if (data['d'] > 0) this.deleteMessage(data['d']);
else if (data['s'] > 0) this.deleteMessage(data['s']);
else if (data[0] != undefined && top.document.getElementById(`msg_${data[0]}`) == undefined) {
var msg = '';
if (data[0] != 0) {
if (top.c.admin > 0) {
if (data[12] == 1) {
msg += '<small style="color:red;text-decoration:blink"> <b>un</b>active </small>';
}
}
if (data[3] != '') {
if (data[16] > 0) {
msg += `[<a href="javascript:void(0)" oncontextmenu="top.infoMenu(\'Íåâèäèìêà\',event,\'chat\'); return false;" onClick="chat.addto(\'Íåâèäèìêà\',\'to\')">${data[3]}</a>]`;
} else {
msg += `[<a href="javascript:void(0)" oncontextmenu="top.infoMenu(\'${data[3]}\',event,\'chat\'); return false;" onClick="chat.addto(\'${data[3]}\',\'to\')">${data[3]}</a>]`;
}
if (chat.ignoreList[data[3]] != undefined) msg_see = 0;
}
if (data[4] != '') {
var forYou = 0;
//òîò êòî ïèñàë
//êîìó íàïèñàëè, ðàçáîð ìàññèâà
if (data[4] != '') {
var to = '',to2 = '',arr = data[4].split(','),i = 0,vl = '';
//òåì êîìó ïèñàëè
while (i != -1) {
if (arr[i] != undefined) {
vl = this.trim(arr[i]);
if (vl.toLowerCase() == top.c.login.toLowerCase()) {
forYou++;
}
if (vl.toLowerCase() == top.c.login.toLowerCase()) {
vl = this.trim(data[3]);
}
if (i > 0) {
to += ', ';
to2 += ', ';
}
if (data[3] != '') {
to += `<span style="cursor:pointer" onclick="chat.addto(\'${vl}\',\'private\');" oncontextmenu="top.infoMenu(\'${this.trim(arr[i])}\',event,\'chat\'); return false;">${this.trim(arr[i])}</span>`;
if (this.trim(arr[i].toLowerCase()) != top.c.login.toLowerCase()) {
to2 += this.trim(arr[i]);
} else {
if (data[2] == 2) to2 += this.trim(arr[i]);
else to2 += this.trim(vl);
}
}
} else i = -2;
i++;
}
}
if(data[2] == 6 || data[2] == 8) {
var zmlogin = new RegExp("\\[login:(.*?)\\]","");
var reflcd = new RegExp("\\[reflesh_main_zv_priem:(.*?)\\]","");
if (data[5].match(zmlogin) != null) {
zmlogin = data[5].match(zmlogin)[1];
data[5] = data[5].replace(`[login:${zmlogin}]`, `<a onMouseDown="top.loginGo(\'${zmlogin}\',event);" oncontextmenu="top.infoMenu(\'${zmlogin}\',event,\'chat\'); return false;" title="${zmlogin}" style="cursor:pointer;" onClick="chat.multiAddto(\'${zmlogin}\',\'to\');">${zmlogin}</a>`);
}
if (data[5].match(reflcd) != null) {
reflcd = data[5].match(reflcd)[1];
data[5] = data[5].replace(`[reflesh_main_zv_priem:${reflcd}]`, '');
}
}
//Ñîáèðàåì ìàññèâ êîìó àäðåñîâàíî ñîîáùåíèå
if (data[2] == 6) {
//ëè÷íàÿ ñèñòåìêà, âíèìàíèå
msg += ' <span style="color:red">Âíèìàíèå!</span> ';
} else if (data[2] == 2) {
if (forYou > 0) {
msg += ` <span style="color:${data[6]}"><b>to [${to2}]</b></span>`;
} else {
msg += ` <span style="color:${data[6]}">to [${to2}]</span>`;
}
} else if (data[2] == 3) {
if (this.trim(data[3].toLowerCase()) == top.c.login.toLowerCase()) {
forYou++;
}
if (data[3] != '') {
if (data[4] == 'klan' && data[2] == 3) {
msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'klan\',\'private\');">private [klan]</span></span>';
} else if (data[4] == 'paladins' && data[2] == 3) {
msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'paladins\',\'private\');">private [paladins]</span></span>';
} else if (data[4] == 'tarmans' && data[2] == 3) {
msg += ' <span class="klan"><span style="cursor:pointer" onclick="chat.multiaddto(\'tarmans\',\'private\');">private [tarmans]</span></span>';
} else {
msg += ` <span class="private"><span style="cursor:pointer" onclick="chat.multiaddto(\'${to2}\',\'private\');">private [ </span>${to}<span style="cursor:pointer" onclick="chat.multiAddto(\'${to2}\',\'private\');"> ]</span></span>`;
}
}
}
}
msg += ' ';
}
data[5] = this.replaceAll(data[5],"[s1;]",'"');
data[5] = this.replaceAll(data[5],"[s2;]",'\'');
data[5] = this.replaceAll(data[5],"[s3;]",'<');
data[5] = this.replaceAll(data[5],"[s4;]",'>');
if ($.cookie('chatCfg2') != 0) {
data[5] = chat.testSmile(data[5]);
}
if (data[6] != 'Black' && data[6] != '') {
var voiceMessageReg = data[5].match(/audio_[0-9]{10}[.]mp3/g)
if (voiceMessageReg !== null) {
msg += `<font color="${data[6]}">
<audio id="audioPlayerChat" controls style="width:300px;max-width:400px;" height="20px";>
<source src="/audio/${voiceMessageReg[0]}" type="audio/mp3">
</audio>
</font>`;
voiceMessageReg = ""
}
else {
if (data.length === 10) {
msg += `<font color="${data[6]}">${data[5]}</font>`;
}
else {
// https://img.new-combats.com/i/inf_capitalcity.gif
// inf.php?89489
// console.log(chat.regexpURL_true(data[5]))
// console.log(`Ññûëêà: ${data[6]} Òåêñò: ${data[5]}` )
msg += `<font color="${data[6]}">${chat.regexpURL_true(data[5])}</font>`
// console.log("îáû÷íîå, öâåòíîå ñîîáùåíèå")
}
// msg += `<font color="${data[6]}">${data[5]}</font>`;
// https://new-combats.com/n/1070/ - ×ÈÒÀÒÜ
// https://new-combats.com/inf.php?903093 - ÈÍÔÀ ÌÎÁÎÂ
// https://img.new-combats.com/i/inf_capitalcity.gif" - ÈÍÔÀ ÌÎÁÎÂ
// console.log(chat.regexpURL_true(data[5]))
// msg += `<font color="${data[6]}">${chat.regexpURL_true(data[5])}</font>`
}
} else {
// var regexpURL = /[-a-zA-Z0-9@:%_\+.~#?&\/=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&\/=]*)?/gi
// var adressURL = data[5].match(regexpURL)
// if (adressURL !== null) {
// msg += `<a href="${adressURL}">${adressURL}</a>`
// }
var voiceMessageReg = data[5].match(/audio_[0-9]{10}[.]mp3/g)
if (voiceMessageReg !== null) {
msg += `<audio id="audioPlayerChat" controls style="width:300px;max-width:400px;" height="20px";>
<source src="/audio/${voiceMessageReg[0]}" type="audio/mp3">
</audio>`
voiceMessageReg = ""
}
else {
msg += chat.regexpURL_true(data[5])
// msg += data[5];
}
}
if(data[2] == 21) {
//e text
var text = `[loginfrom] ${data[5]}`;
var ftps = `<i><a href="javascript:void(0)" oncontextmenu="top.infoMenu(\'${data[3]}\',event,\'chat\'); return false;" onClick="chat.addto(\'${data[3]}\',\'to\')">${data[3]}</a></i>`;
var mblogin = new RegExp("\\[login:(.*?)\\]","");
text = text.replace('[loginfrom]',ftps);
if(text.match(mblogin)!=null)
{
mblogin = text.match(mblogin)[1];
text = text.replace(`[login:${mblogin}]`,`<i><a href="javascript:void(0)" oncontextmenu="top.infoMenu(\'${mblogin}\',event,\'chat\'); return false;" onClick="chat.addto(\'${mblogin}\',\'to\')">${mblogin}</a></i>`);
}
msg = `<i>${text}</i>`;
}
if(data[1]>0)
{
var td = new Date((parseInt(data[1]))*1000);
td = [td,null,null,null];
td[1] = td[0].getHours();
td[2] = td[0].getMinutes();
td[3] = td[0].getSeconds();
td[4] = td[0].getDay();
td[5] = td[0].getMonth();
td[6] = td[0].getYear();
var j = 1;
while (j < 6) {
if (td[j] < 10) td[j] = `0${td[j]}`;
j++;
}
var cls = forYou > 0 ? 'date2' : 'date'
if (data[11] > 0) {
msg = `<font style="cursor:help" color="red" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Îòïðàâèòåëü íàêàçàí çà íàðóøåíèå ïðàâèë îáùåíèÿ<br>Îòêëþ÷èòü îòîáðàæåíèå ïîäîáíûõ ñîîáùåíèé ìîæíî â íàñòðîéêàõ ÷àòà.\',event,3,1,1,3,\'\')"> <b>!</b> </font>${msg}`;
}
if (data[10] > 0) {
msg = `<font style="cursor:help" color="green" onmouseout="top.hic()" onmousedown="top.hic()" onmouseover="top.hi(this,\'Ýòî ãëîáàëüíîå ñîîáùåíèå, îíî ìîæåò áûòü îòïðàâëåíî èç ëþáîé ëîêàöèè<br>Îòêëþ÷èòü îòîáðàæåíèå ïîäîáíûõ ñîîáùåíèé ìîæíî â íàñòðîéêàõ ÷àòà.\',event,3,1,1,3,\'\')"> <b>G</b> </font>${msg}`;
}
var msg22 = '<span ';
if(top.c.admin > 0) {
msg22 += `oncontextmenu="chat.deleteMessage(${data[0]});
return false;" `;
}
// ÎÏÒÈÌÈÇÀÖÈß!!!
if (data[8] == 2) {
if (data[14] == undefined) {
data[14] = '--:--';
}
if (data[14] == '--:--' && data[1] > 0) {
data[14] = data[1];
var date14 = new Date(data[14] * 1000);
data[14] = `${date14.getHours()}:${date14.getMinutes()}`;
}
msg22 += `class="${cls}">${data[14]}</span> `;
} else {
if (data[13] == undefined) {
data[13] = '--:--';
}
if (data[13] == '--:--' && data[1] > 0) {
data[13] = data[1];
var date13 = new Date(data[13] * 1000);
data[13] = `${date13.getHours()}:${date13.getMinutes()}`;
}
msg22 += `class="${cls}">${data[13]}</span> `;
}
msg = msg22+msg;
}
this.msgcount++;
msg = `<span class="m0c1" id="msg_${data[0]}">${msg}<br></span>`;
if (forYou > 0 && this.sound > 0 && this.trim(data[3].toLowerCase()) != top.c.login.toLowerCase()) {
this.sendSound(1);
}
if(msg_see == 1)
{
if(this.trim(data[3].toLowerCase()) == top.c.login.toLowerCase() || forYou == 1 || this.filter == 0)
{
if( data[9] > 0 ) this.sendSound(data[9]);
if( data[15] != undefined && data[15] != 0 ) {
this.feerverk( data[15] );
this.feerverk( data[15] );
}
if( top.des == 1 ) {
if( data[2] < 4 || global_type == 1 ) {
//Îáû÷íûé ÷àò
chat.textColor_Work('#canal5', msg, 5)
if( global_type == 1 ) {
//Ñèñòåìíûé ÷àò
chat.textColor_Work('#canal4', msg, 4)
}
}else{
//Ñèñòåìíûé ÷àò
chat.textColor_Work('#canal4', msg, 4)
chat.textColor_Work('#canal5', msg, 5)
}
}
else {
// var $htmlElementsMessage = new DOMParser().parseFromString(messg, "text/html").getElementsByTagName("span")[0]
// document.getElementById('canal5').append($htmlElementsMessage)
$('#canal5').html(`${$('#canal5').html()}${msg}`);
}
}
}
this.scrollNow(false);
return delete forYou, cls, msg_see, msg, arr;
}
},
textColor_Work: function (canal ,messg, count) {
var $htmlElementsMessage = new DOMParser().parseFromString(messg, "text/html").getElementsByTagName("span")[0]
var $idCanal = canal.match(/canal[0-9]/)
var $idCanal0 = document.getElementById($idCanal[0])
if (!$idCanal0) $(canal).html(`${$(canal).html()}${messg}`)
else $idCanal0.append($htmlElementsMessage)
// console.log(messg)
// document.getElementById($idCanal[0]).append($htmlElementsMessage)
top.blueTextSee(count);
},
testKey: function (m, v) {
var i = 0, r = v;
v = false;
while (i != -1) {
if (m[i] != undefined) {
if (m[i] == r) {
v = i;
i = -2;
}
}
else i = -2;
i++;
}
delete r, m;
return v;
},
isNumber: function (s) {
return s = !isNaN(s) ? true : false
},
testSmile: function (txt) {
txr = txt.split(':');
var i = 1,
j = 0,
smid = 0;
while (i <= txr.length) {
if (txr[i] != undefined) {
smid = this.testKey(top.sml, txr[i]);
imsml = txr[i].split('-');
if (((smid != false || smid == 0) && this.isNumber(txr[i]) != true) || (imsml != undefined && imsml[0] == '%usersmile%')) {
if (j < 3 && this.isNumber(top.sml[smid]) != true && (top.sml[smid] != undefined || imsml[0] == '%usersmile%')) {
// òóò
if (imsml[0] == '%usersmile%') {
txt = txt.replace(`\:%usersmile%-${imsml[1]}\:`, `<img src="https://${top.c.img}/i/smile/${(imsml[1].toLowerCase())}.gif" title="Èìåííîé ñìàéëèê">`);
} else {
txt = txt.replace(`\:${txr[i]}\:`, `<img src="https://${top.c.img}/i/smile/${(txr[i].toLowerCase())}.gif" style="cursor:pointer" width="${top.sml[smid+1]}" height="${top.sml[smid+2]}" onclick="chat.addSmile(\'${(txr[i].toLowerCase())}\')">`);
}
j++;
}
}
}
i++;
}
return txt;
},
trmb: function () {
if (this.translit == 1) {
$('#textmsg').val(this.convert2($('#textmsg').val()));
}
},
replaceAll: function (t, v, s) {
return t.split(v).join(s);
},
regexpURL_true (str) {
var finallyStr = str
var arrURL = str.match(/[-a-zA-Z0-9à-ÿÀ-ÿ@:;%_\+.~#?&\/=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:;%_\+.~#?&\/=]*)?/gi)
var domainsRUS = str.match(/[a-zA-Z0-9à-ÿÀ-ß-]+[.,:;\/?!@#$%^&*()_+-`'"|]+(êîì|ðó|þà)+/gi)
var domainsEN = str.match(/[a-zA-Z0-9à-ÿÀ-ß-]+[ .,:;\/?!@#$%^&*()_+-`'"|]+\b(c[o]+m|ua|r[u]{1,}|net|cc)+\b/gi)
var regexpForbiddenWords = /\b(old|rebk|combatz|sbkru|urlidru|real|obk2com|bitly|owly|cruelbk|likebk|isgd|fightbk|my-|my-combatc|mbk|anti|ws|s3s|bakubk|idealbk|bespridel|perbk|online|cf|artovik|probk|twar|oyy|krbk|habk|timebk|sbi|eea|sokbk|inbk|refbk|s3s|bk20|analogbk|monstrbk|legendabk|awOev|cruelcity|tlgr|vntr|supbk|cu|tn|af|svel|kwn|krati|ohh|gHjq|ogw|lur|lmy|idz|hop|eee|bestbk|pixl|ssylka|f34r|exelendbk|9tl|qil|2t9|NjQ0|net|bishky|getl|ixz|nvm|prok|5char|tdl|pick|jj|FORM|zik|biz|sns|snsh|pnut|pb8|short|legendabk|prnt|utf|coombats|tiny|orDåNÂÊ|nbk|orden|club|utf|ubit|clc|wocmaet|wiecej|ourl|3le|NikY|fia|iop|ordenbk|s3s|sW|sw|so|xcombat|world|death|legendbattles|plu|dbe|kombatz|over|dek|ci8|goldbk|Zeus|nxt|is|Ndpx|pw|kutt|JovdeT|cort|rexno|bly|tFXUQ|fyi|yf0ck|lst|numl|yx5ru|vhGyJ|GEROY|MOYEP|fuck|lnnk|dhaF|oko|x8b4q|3le|Ru2q|psce|yx5|bg9xH|Rich|Lands|yx|bgH|qil|huxoqM|bgxH|Nextbk|idea|PLAYBK|dance|coronabk|hitbk|ttpham|prnt|RÑîìbàts|dedmoroz|wmj9bz|king|ZEBK|urlgo|ZniD)+\b/g
finallyStr = str.replace(regexpForbiddenWords, () => "")
var allURL = new Set()
if (domainsEN) for (var key of domainsEN) {
if (!key.match(/^[a-zA-zà-ÿÀ-ÿ0-9]+$/i)) allURL.add(key)
}
if (domainsRUS) for (var key of domainsRUS) {
if (!key.match(/^[a-zA-zà-ÿÀ-ÿ0-9]+$/i)) allURL.add(key)
}
if (arrURL) for (var key of arrURL) allURL.add(key)
if (!allURL.size) return finallyStr
var trueURL = []
var falseURL = false
for (var key of allURL) {
if (key.match(/vk\.com/i)) trueURL.push(key)
else if (key.match(/youtube\.com/i)) trueURL.push(key)
else if (key.match(/youtu\.be/i)) trueURL.push(key)
else if (key.match(/twitch\.tv/i)) trueURL.push(key)
else if (key.match(/new-combats\.com/i)) trueURL.push(key)
else if (key.match(/https:\/\/rpgtop\.su\/vote\/25443/i)) trueURL.push(key)
else if (key.match(/inf\.php/i)) trueURL.push(key)
else falseURL = true
}
if (falseURL) return "Â ñîîáùåíèè ïðèñóòñòâóþò çàïðåùåííûå ññûëêè."
finallyStr = finallyStr.replace(
/(<img src=")?(https?:\/\/)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z()]{1,6}\b([-a-zA-Z0-9()@:%_;\+.~#?&\/\/=]*)/gi,
(match) => {
if (/^(<img src=")/.test(match)) {
return match
}
else if (match.match(/new-combats\.com/i)) return match
else if (match.match(/inf\.php/i)) return match
else if (/^(https?:\/\/)/.test(match)) {
return `<a class="URL-a" href="${match}" target="_blank">${match}</a>`
}
else {
return `<a class="URL-a" href="http://${match}" target="_blank">${match}</a>`
}
}
)
finallyStr = finallyStr.replace(regexpForbiddenWords, () => "")
return finallyStr
},
convert2:function(txt)
{
var trn = new Array();
trn = txt.split(' ');
for(var i=0;i<trn.length;i++) {
if(trn[i].indexOf("https://") < 0 && trn[i].indexOf('@') < 0 && trn[i].indexOf("www.") < 0 && !(trn[i].charAt(0)==":" && trn[i].charAt(trn[i].length-1)==":")) {
if ((i<trn.length-1)&&(trn[i]=="to" || trn[i]=="private")&&(trn[i+1].charAt(0)=="[")) {
while ( (i<trn.length-1) && (trn[i].charAt(trn[i].length-1)!="]") ) i++;
} else { trn[i] = this.convert(trn[i]); }
}
}
return trn.join(' ');
},
map_en:Array('s`h','S`h','S`H','s`Õ','sh`','Sh`','SH`',"'o",'yo',"'O",'Yo','YO','zh','w','Zh','ZH','W','ch','Ch','CH','sh','Sh','SH','e`','E`',"'u",'yu',"'U",'Yu',"YU","'a",'ya',"'A",'Ya','YA','a','A','b','B','v','V','g','G','d','D','e','E','z','Z','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','r','R','s','S','t','T','u','U','f','F','h','H','c','C','`','y','Y',"'"),
map_ru:Array('ñõ','Ñõ','ÑÕ','ñÕ','ù','Ù','Ù','¸','¸','¨','¨','¨','æ','æ','Æ','Æ','Æ','÷','×','×','ø','Ø','Ø','ý','Ý','þ','þ','Þ','Þ','Þ','ÿ','ÿ','ß','ß','ß','à','À','á','Á','â','Â','ã','Ã','ä','Ä','å','Å','ç','Ç','è','È','é','É','ê','Ê','ë','Ë','ì','Ì','í','Í','î','Î','ï','Ï','ð','Ð','ñ','Ñ','ò','Ò','ó','Ó','ô','Ô','õ','Õ','ö','Ö','ú','û','Û','ü'),
addSm: function (i) {
$('#textmsg').focus();
top.document.textmsg.value += ` :${i}: `;
},
convert_work: function (id) {
newstr = str.match(id)[0];
str = str.replace(str.match(id)[0], '');
},
convert: function (str) {
var p1 = new RegExp("private\\s*\\[(.*?)\\]", "");
var t1 = new RegExp("to\\s*\\[(.*?)\\]", "");
var newstr = '';
if (str.match(p1) != null) this.convert_work(p1)
else if (str.match(t1) != null) this.convert_work(t1)
for (var i = 0; i < this.map_en.length; ++i)
while (str.indexOf(this.map_en[i]) >= 0) str = str.replace(this.map_en[i], this.map_ru[i]);
newstr += str;
return newstr;
},
sendSound: function (s) {
var svolm = 100;
if (this.sound == 0) svolm = 0
else if (this.sound == 1) svolm = 25;
else if (this.sound == 2) svolm = 100;
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
if (isInternetExplorer && window.document["Sound"] && typeof window.document["Sound"].SetVariable !== "undefined") {
window.document["Sound"].SetVariable("Volume", svolm);
window.document["Sound"].SetVariable("Sndplay", s);
}
else if(document.getElementById('Sound2') && typeof document.getElementById('Sound2').SetVariable !== "undefined") {
document.getElementById('Sound2').SetVariable("Volume", svolm);
document.getElementById('Sound2').SetVariable("Sndplay", s);
}
},
getSwf:function(val) {
var M$ = navigator.appName.indexOf("Microsoft")!=-1
return (M$ ? window : document)[val]
},
trim: function (s) {
return this.rtrim(this.ltrim(s));
},
ltrim: function (s) {
return s.replace(/^\s+/, '');
},
rtrim: function (s) {
return s.replace(/\s+$/, '');
},
multiaddto: function (users, tp) {
var arr = users.split(',');
var i = arr.length;
while (i >= 0) {
if (arr[i] != undefined) {
this.addto(arr[i], tp);
}
i--;
}
},
osize:function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
},
//Ãåíåðèðóåì äàííûå
genchatData:function(data,prs) {
if (prs == 1) {
// console.log("òóò")
data = $.parseJSON(data);
}
if (data == null && this.saveData != null) {
data = this.saveData;
data.js = '';
data.rn = undefined;
data.key = undefined;
}
//Ïîëó÷àåì ñîîáùåíèå
if (data.msg != undefined) {
var ms = $.parseJSON(data.msg);
// console.log(ms)
if (ms['ld'] > this.msg_id) this.msg_id = ms['ld'];
var i = 0;
while (i <= ms['id']) {
if (ms[`m${i}`] != undefined) {
// console.group(ms[`m${i}`])
this.sendMsg(ms[`m${i}`]);
}
i++;
}
}
//Åñëè åñòü JS
if (data.js != '') eval(data.js);
if(data.rnd!=undefined) c.rnd = data.rnd;
if (data.rn != undefined) {
if ($('#chcf10').attr('checked') == true) {
$('#roomName').html(`${data.rn}<br><small>Îáùèé îíëàéí: ${data.xu}</small>`);
}
else $('#roomName').html(`${data.rn} (${data.xu})`);
}
if(data.key!=undefined) this.key = data.key;
if(data.list!=undefined)
{
var i = 0, ji = $.parseJSON(data.list), onll = '', fSort = {}, flSort = {},flSortSee = '"Ñëóæáà Ïîääåðæêè"';
//ñîðòèðóåì äàííûå
while (i <= data.xu) {
if (ji[i] != undefined) {
jj = ji[i][1].toLowerCase(); //ïî ëîãèíó
fSort[jj] = i;
flSort[i] = jj;
flSortSee += `,"${flSort[i]}"`;
}
i++;
}
flSortSee = eval(`[${flSortSee}]`);
if ($.cookie('chatCfg9') == 1) flSortSee.sort(game.sort2);
else flSortSee.sort(game.sort1);
//Âûâîäèì äàííûå
i = 0;
var onll_alh = '';
while (i <= data.xu) {
if (fSort[flSortSee[i]] != undefined) {
if (ji[fSort[flSortSee[i]]][3] == 50) {
onll_alh += `<span class="m0c1">${this.gUser(ji[fSort[flSortSee[i]]],true)}</span>`;
} else {
onll += `<span class="m0c2">${this.gUser(ji[fSort[flSortSee[i]]],true)}</span>`;
}
}
i++;
}
$('#onlist').html(`${onll_alh}${onll}`);
}
},
voiceMessage: function () {
flagVoice = !flagVoice
if (flagVoice) return chat.startRecording(flagVoice)
return chat.startRecording(flagVoice)
},
startRecording: function (flag) {
if (flag) {
if (navigator.mediaDevices.getUserMedia) {
var $pVoiceMessages = document.getElementById("timerVoiceMess")
$pVoiceMessages.hidden = false
var constraints = {
audio: true
}
var onSuccess = function (stream) {
mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start()
timerSecMessage = 0
var timerMlSecMessage = 1
setIntervalSound = setTimeout(function tickMlsec() {
if (timerSecMessage === 60) {
flagVoice = !flagVoice
chat.styleRecordButton({
textButt: "Çàïèñü",
color: "",
backgroundColor: "",
allSetting: true
})
return
}
if (timerSecMessage > 9) $pVoiceMessages.textContent =
`00:${timerSecMessage},${timerMlSecMessage}`
else $pVoiceMessages.textContent =
`00:0${timerSecMessage},${timerMlSecMessage}`
if (++timerMlSecMessage > 9) {
timerMlSecMessage = 0
++timerSecMessage
}
setIntervalSound = setTimeout(tickMlsec, 100)
}, 100)
chat.styleRecordButton({
textButt: "Çàâåðøèòü",
color: "rgb(165, 0, 0)",
backgroundColor: "rgba(255, 0, 0, 0.083)",
allSetting: false
})
mediaRecorder.ondataavailable = function (e) {
chunksVoice.push(e.data)
}
}
var onError = function (err) {
console.log(`Îøèáêà: ${err}`)
alert("Îøèáêà, ïðîâåðüòå ïîäêëþ÷åíèå èëè ðàáîòîñïîñîáíîñòü ìèêðîôîíà!")
}
navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError)
} else console.log("Àóäèîñîîáùåíèÿ íå ïîääåðæèâàþòñÿ âàøèì áðàóçåðîì!")
return
}
chat.styleRecordButton({
textButt: "Çàïèñü",
color: "",
backgroundColor: "",
allSetting: true
})
return
},
styleRecordButton: function (objArgs) {
var {
textButt,
color,
backgroundColor,
allSetting
} = objArgs
var $buttonVoiceMess = document.getElementById("record")
var $pVoiceMessages = document.getElementById("timerVoiceMess")
if (allSetting) {
clearInterval(setIntervalSound)
$pVoiceMessages.textContent = "00:00,0"
$buttonVoiceMess.textContent = textButt
$buttonVoiceMess.style.color = color
$buttonVoiceMess.style.backgroundColor = backgroundColor
$pVoiceMessages.hidden = allSetting
if (!mediaRecorder) return alert("Îøèáêà, ïðîâåðüòå ïîäêëþ÷åíèå èëè ðàáîòîñïîñîáíîñòü ìèêðîôîíà! Åñëè Âû ïîäêëþ÷èëè ìèêðîôîí è âñ¸ ðàáîòàåò - ïåðåçàãðóçèòå ñòðàíèöó <F5> è ïîïðîáóéòå ñíîâà!")
mediaRecorder.stop()
mediaRecorder.onstop = function (e) {
chat.mediaRecorderStop()
}
mediaRecorder.stream.getAudioTracks().forEach(function (track) {
track.stop()
})
return
}
var $footerTop = document.getElementsByClassName("allChat")[1].offsetTop
var $tdLeft = $buttonVoiceMess.parentElement.offsetLeft
var $VoiceWidth = $buttonVoiceMess.clientWidth
var $pVoiceWidth = $pVoiceMessages.clientWidth
$pVoiceMessages.style.top = `${$footerTop - 30}px`
$pVoiceMessages.style.left = `${($tdLeft + 9) + (($VoiceWidth - $pVoiceWidth) / 2)}px`
$buttonVoiceMess.textContent = textButt
$buttonVoiceMess.style.color = color
$buttonVoiceMess.style.backgroundColor = backgroundColor
$pVoiceMessages.hidden = allSetting
return
},
mediaRecorderStop: function () {
if (timerSecMessage < 2) {
chunksVoice.pop()
return
}
var blob = new Blob(chunksVoice, {
'type': 'audio/mp3; codecs=opus'
})
chunksVoice.pop()
var fileReader = new FileReader()
fileReader.readAsArrayBuffer(blob)
fileReader.onload = async function (event) {
var $inputWindow = document.getElementById("textmsg")
var arrayBuffer = fileReader.result
var response = await fetch("https://new-combats.com/audio.php", {
method: "POST",
body: arrayBuffer
})
var timeStampFile = await response.text()
$inputWindow.value =
`${$inputWindow.value} audio_${timeStampFile}.mp3`
chat.subSend()
}
}
}