JSFiddle - React, Tailwind, and code Playground

by Anton_Diaz

JavaScript

function chatCounter() {
	var newMessages = document.querySelectorAll('.chat-line .message:not(.adiaz-checked)'); // не ">" селектор, так как в VODе у модератора есть элемент(ы) между ними
	if (newMessages.length > 0) {
		/* Создаем таблицу, если ее еще нет */
		if (!document.getElementById('adiaz-informer')) {
			createInformerElement();
			}
		/* Читаем таблицу */
		var counterData = readStatsElement();
		/* Проверяем новые (ранее не проверенные) сообщения в чате */
		var statsElementChanged;
		for (var j = 0; j < newMessages.length; j++) {
			/* Проверям каждую фразу - есть ли она в сообщении */
			for (var phrase in counterData['phrases']) {
				if (newMessages[j].textContent.toLowerCase().indexOf(phrase.toLowerCase()) >= 0) {
					counterData['phrases'][phrase] = counterData['phrases'][phrase] + 1;
					document.querySelector('[data-adiaz-phrase-target="' + encodeURIComponent(phrase) + '"]').textContent = counterData['phrases'][phrase];
					statsElementChanged = true;
					}
				}
			/* Проверям каждый эмотикон в сообщении - есть ли он списке */
			messageEmoticonElements = newMessages[j].querySelectorAll('.emoticon[alt]');
			for (var i = 0; i < messageEmoticonElements.length; i++) {
				var messageEmoticon = messageEmoticonElements[i].getAttribute('alt');
				if (messageEmoticon in counterData['emoticons']) {
					counterData['emoticons'][messageEmoticon] = counterData['emoticons'][messageEmoticon] + 1;
					document.querySelector('[data-adiaz-emoticon-target="' + encodeURIComponent(messageEmoticon) + '"]').textContent = counterData['emoticons'][messageEmoticon];
					statsElementChanged = true;
					} else if (messageEmoticon in counterData['auto emoticons']) {
					counterData['auto emoticons'][messageEmoticon] = counterData['auto emoticons'][messageEmoticon] + 1;
					document.querySelector('[data-adiaz-emoticon-target="' + encodeURIComponent(messageEmoticon) + '"]').textContent = counterData['auto emoticons'][messageEmoticon];
					statsElementChanged...