<commit_before>var servers = ['chkno.net', 'rc2.chkno.net', 'echto.net', 'the-wes.com', 'vibrantlogic.com'];

var session = Math.random();
var seen = {};

function rcnick() {
	var nick = localStorage.getItem("nick");
	if (nick) {
		return nick;
	}
	return 'anonymous';
}

function rcsetnick(new_nick) {
	localStorage.setItem("nick", new_nick);
}

function rcserverbase(server) {
	// Add the default port if server doesn't contain a port number already
	if (server.indexOf(":") == -1) {
		return "http://" + server + ":21059";
	} else {
		return "http://" + server;
	}
}

function rcchangeserverstatus(server, new_status) {
	var statusbar = document.getElementById("status");
	var spans = statusbar.getElementsByTagName("span");
	for (i in spans) {
		if (spans[i].firstChild && 'data' in spans[i].firstChild && spans[i].firstChild.data == server) {
			spans[i].setAttribute("class", new_status);
		}
	}
}

function rcaddmessagetohistory(message) {
	var d = document.createElement("div");
	d.appendChild(document.createTextNode(message));
	var h = document.getElementById("history");
	h.appendChild(d);
	window.scrollTo(0, document.body.scrollHeight);
	return d;
}

function make_seen_key(id, text) {
	return id.replace(/@/g, "@@") + "_@_" + text.replace(/@/g, "@@");
}

function receiveMessage(server, time, id, text) {
	var seen_key = make_seen_key(id, text);
	if (!(seen_key in seen)) {
		seen[seen_key] = true;
		rcaddmessagetohistory(text);
		for (i in servers) {
			rcchangeserverstatus(servers[i], "sad");
		}
	}
	rcchangeserverstatus(server, "happy");
}

function receiveMessageEvent(event)  
{  
	for (i in servers) {
		if (event.origin === rcserverbase(servers[i])) {
			messages = JSON.parse(event.data);
			for (j in messages) {
				if ('Time' in messages[j] &&
				    'ID'   in messages[j] &&
				    'Text' in messages[j]) {
					receiveMessage(servers[i], messages[j]['Time'], messages[j]['ID'], messages[j]['Text']);
				}
			}
		}
	}
}

function rcconnect() {
	window.addEventListener("message", receiveMessageEvent, false);  
	for (i in servers) {
		// Create a hidden iframe for same-origin workaround
		var iframe = document.createElement("iframe");
		iframe.setAttribute("src", rcserverbase(servers[i]) + "/frame");
		document.body.insertBefore(iframe, document.body.firstChild);
		// Status bar entry
		var status_indicator = document.createElement("span");
		status_indicator.appendChild(document.createTextNode(servers[i]));
		status_indicator.setAttribute("class", "sad");
		document.getElementById("status").appendChild(status_indicator);
	}
	if (rcnick() == 'anonymous') {
		rcaddmessagetohistory("-!- Set your nick with /nick");
	}
}

function rcsend(d, message) {
	var id = new Date().getTime() + "-" + session + "-" + Math.random();
	seen[make_seen_key(id, message)] = true;
	var path = "/speak" +
		"?id=" + encodeURIComponent(id) +
		"&text=" + encodeURIComponent(message);
	for (i in servers) {
		var uri = rcserverbase(servers[i]) + path;
		var img = document.createElement("img");
		img.setAttribute("src", uri);
		d.appendChild(img);
	}
}

function rckeydown(event) {
	if (event.keyCode == 13) {
		var input = document.input.say.value;
		document.input.say.value = "";
		
		// Check nick change
		var message;
		var re = /^\/nick (.*)/;<commit_msg>More "var" in variable declarations.<commit_after>var servers = ['chkno.net', 'rc2.chkno.net', 'echto.net', 'the-wes.com', 'vibrantlogic.com'];

var session = Math.random();
var seen = {};

function rcnick() {
	var nick = localStorage.getItem("nick");
	if (nick) {
		return nick;
	}
	return 'anonymous';
}

function rcsetnick(new_nick) {
	localStorage.setItem("nick", new_nick);
}

function rcserverbase(server) {
	// Add the default port if server doesn't contain a port number already
	if (server.indexOf(":") == -1) {
		return "http://" + server + ":21059";
	} else {
		return "http://" + server;
	}
}

function rcchangeserverstatus(server, new_status) {
	var statusbar = document.getElementById("status");
	var spans = statusbar.getElementsByTagName("span");
	for (var i in spans) {
		if (spans[i].firstChild && 'data' in spans[i].firstChild && spans[i].firstChild.data == server) {
			spans[i].setAttribute("class", new_status);
		}
	}
}

function rcaddmessagetohistory(message) {
	var d = document.createElement("div");
	d.appendChild(document.createTextNode(message));
	var h = document.getElementById("history");
	h.appendChild(d);
	window.scrollTo(0, document.body.scrollHeight);
	return d;
}

function make_seen_key(id, text) {
	return id.replace(/@/g, "@@") + "_@_" + text.replace(/@/g, "@@");
}

function receiveMessage(server, time, id, text) {
	var seen_key = make_seen_key(id, text);
	if (!(seen_key in seen)) {
		seen[seen_key] = true;
		rcaddmessagetohistory(text);
		for (var i in servers) {
			rcchangeserverstatus(servers[i], "sad");
		}
	}
	rcchangeserverstatus(server, "happy");
}

function receiveMessageEvent(event)  
{  
	for (var i in servers) {
		if (event.origin === rcserverbase(servers[i])) {
			messages = JSON.parse(event.data);
			for (var j in messages) {
				if ('Time' in messages[j] &&
				    'ID'   in messages[j] &&
				    'Text' in messages[j]) {
					receiveMessage(servers[i], messages[j]['Time'], messages[j]['ID'], messages[j]['Text']);
				}
			}
		}
	}
}

function rcconnect() {
	window.addEventListener("message", receiveMessageEvent, false);  
	for (var i in servers) {
		// Create a hidden iframe for same-origin workaround
		var iframe = document.createElement("iframe");
		iframe.setAttribute("src", rcserverbase(servers[i]) + "/frame");
		document.body.insertBefore(iframe, document.body.firstChild);
		// Status bar entry
		var status_indicator = document.createElement("span");
		status_indicator.appendChild(document.createTextNode(servers[i]));
		status_indicator.setAttribute("class", "sad");
		document.getElementById("status").appendChild(status_indicator);
	}
	if (rcnick() == 'anonymous') {
		rcaddmessagetohistory("-!- Set your nick with /nick");
	}
}

function rcsend(d, message) {
	var id = new Date().getTime() + "-" + session + "-" + Math.random();
	seen[make_seen_key(id, message)] = true;
	var path = "/speak" +
		"?id=" + encodeURIComponent(id) +
		"&text=" + encodeURIComponent(message);
	for (var i in servers) {
		var uri = rcserverbase(servers[i]) + path;
		var img = document.createElement("img");
		img.setAttribute("src", uri);
		d.appendChild(img);
	}
}

function rckeydown(event) {
	if (event.keyCode == 13) {
		var input = document.input.say.value;
		document.input.say.value = "";
		
		// Check nick change
		var message;
		var re = /^\/nick (.*)/;
{'fraction_non_alphanumeric': 0.1734462422501134, 'fraction_numerical': 0.0030243459851807047, 'mean_word_length': 4.457095709570957, 'pattern_counts': {'":': 4, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '756464', 'n_tokens_mistral': 2424, 'n_tokens_neox': 2277, 'n_words': 490}