// ==UserScript==
// @name ClanChatSaver
// @namespace http://tampermonkey.net/
// @version 1.0.0
// @description Script created for saving the clan chat into an HTML file. ***Make sure to load chat before using button. Once chat is loaded, click "save clan chat" and select which chat and a name
// @author JustinR17
// @match https://www.warzone.com/MultiPlayer?ChatRoom=*
// @grant none
// @require http://cdn.jsdelivr.net/g/filesaver.js
// @require
// @downloadURL none
// ==/UserScript==
function saveFile(value, name) {
var fileBlob = new Blob([value], { type: "text/plain;charset=utf-8" });
saveAs(fileBlob, name + ".html");
}
function startFile(chat) {
return "
" + chat + "";
}
function endFile() {
return "
";
}
function formatMessage(curMsg) {
var playerCol = curMsg.querySelectorAll("div[id^='ujs_LeftCol']")[0].innerText;
var messageCol = curMsg.querySelectorAll("div[id^='ujs_Message']")[1];
var fgColour = messageCol.style.color;
var bgColour = curMsg.querySelectorAll("div[id^='ujs_BubbleImage']")[1].style.borderImageSource.slice(-16).substring(0, 6);
if (bgColour == "Bubble") {
bgColour = "white";
}
if (playerCol == "Player Name") {
playerCol = "";
}
var output = "
";
output += playerCol + "
"
output += messageCol.innerText + "
"
return output;
}
function doSave() {
var chatFinal = prompt("Enter a file name: ", "chat");
if (chatFinal == null) {
return;
}
var date = new Date();
chatFinal = date.getFullYear() + ("0" + date.getMonth().toString()).slice(-2) + ("0" + date.getDay().toString()).slice(-2) + "-" + chatFinal;
var output = startFile(chatFinal);
var chat = document.getElementById("ujs_ChatContainer_2");
var childNodes = chat.childNodes;
for (var i = 0; i < chat.childNodes.length; i++) {
var curMsg = childNodes[i];
output += formatMessage(curMsg);
}
output += endFile();
saveFile(output, chatFinal);
}
function getModalButton() {
return '';
}
function initiateSave() {
var modalButton = document.createElement("div");
modalButton.innerHTML = getModalButton();
var navBox = document.getElementsByClassName("navbar-nav")[0];
navBox.appendChild(modalButton);
var el = document.getElementById("saveChatButton");
if (el.addEventListener) {
el.addEventListener("click", doSave, false);
} else if (el.attachEvent) {
el.attachEvent('onclick', doSave);
}
}
(function() {
'use strict';
initiateSave();
})();