您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Starlog addon
- // ==UserScript==
- // @name Starlog Manager
- // @namespace Odahviing
- // @author Odahviing
- // @include http://www.war-facts.com/starlog.php*
- // @include http://www.war-facts.com/player.php
- // @version 2.2
- // @grant GM_getValue
- // @grant GM_setValue
- // @description Starlog addon
- // ==/UserScript==
- // Version 1.0 - Inital Script - Player filter + Real Time
- // Version 1.1 - Minor Changes on menus
- // Version 1.11 - Bug fix - not showing "hour"
- // Version 2.0 - Major upgrade: Remove starlog text with + button, rewrite the script
- // Version 2.1 - Bug fix - not showing all player messages
- // Version 2.11+ - Updates on Greasy Fork
- // Features So Far
- // --- Ability to filter with "player" messages only
- // --- Show/Hide stargroup long tezxt
- // --- Ability to filter with "starlog" messages only
- main();
- function main()
- {
- // Loading Groups Data
- if (document.URL.indexOf("player.php") != -1)
- {
- saveGroups();
- }
- addingButtons(); // Make the new menu
- //addStarlogGroupsBoxs(); // Add buttons to filter by each group
- var index = document.URL.indexOf("?");
- if (index != -1)
- {
- var requestType = document.URL.substring(index + 1);
- requestType = requestType.replace("offset=100", "");
- if (requestType == "type=2") // Show Stargroup Option
- {
- removeSinglePlayerMessages();
- }
- else if (requestType == "type=2&extra=1") // Show Player Option
- {
- showOnlyPlayerMessages();
- }
- // Not Active Option
- else if (requestType == ""){}
- else if (requestType.indexOf("#") == -1)
- {
- // removeSinglePlayerMessages();
- // keepOnlyGroup(getType.substring(getType.indexOf("#") +1));
- }
- }
- else
- {
- removeStarlogText();
- var allExplore = document.getElementsByClassName('fullwidth dark tbborder starlog_explore');
- for (let index = 0 ; index < allExplore.length; index++)
- allExplore[index].style.display = "none";
- }
- addRealDates(); // Add real time dates to messages
- }
- /* Load Functions */
- function saveGroups()
- {
- var groupsNames = document.getElementsByName('editstarloggroupname');
- var groupsId = document.getElementsByName('editstarloggroup');
- var arrayList = [];
- for (var index = 0 ; index < groupsNames.length; index ++)
- {
- var newItem = [groupsId[index].value, groupsNames[index].value];
- arrayList.push(newItem);
- }
- GM_setValue("stargroupNames", arrayList);
- }
- function addingButtons()
- {
- // Make Player button
- var newLink = document.createElement('a');
- newLink.setAttribute('class', "darkbutton smalltext");
- newLink.innerHTML = "Player";
- newLink.addEventListener("click", loadOnlyPlayer);
- // Add it
- var linksObject = document.getElementsByClassName('left starlog_right box dark padding5 minheight60')[0];
- linksObject.insertBefore(newLink, linksObject.firstChild);
- var outbox = linksObject.children[3];
- linksObject.insertBefore(outbox, null);
- outbox = linksObject.children[3];
- linksObject.insertBefore(outbox, null);
- linksObject.children[1].innerHTML = "Stargroup";
- }
- // Based of guardian21 script
- function addRealDates()
- {
- //Set Time zone Difference
- var currentdate = new Date();
- var timeZoneDiff = currentdate.getTimezoneOffset() / 60; // Difference between user time and UTC time in hours
- timeZoneDiff = -timeZoneDiff; // I want to know user compared to utc, not utc compared to user
- timeZoneDiff += 5; //Difference between UTC and EST (server is in EST)
- var divs = document.getElementById("midcolumn").getElementsByTagName("div")[0].getElementsByTagName("div");
- var i, current_div, realTimeEST,timetext,timeDateSpan,temp;
- //For each starlog entry
- for (i = 3; i < divs.length; i+=3)
- { //i=3 because first are headers
- current_div = divs[i].children[0];
- timeDateSpan = current_div.getElementsByTagName("span")[0];
- if (timeDateSpan === undefined)
- {
- if (i + 1 < divs.length)
- {
- i = i + 1;
- current_div = divs[i].children[0];
- timeDateSpan = current_div.getElementsByTagName("span")[0];
- }
- else
- {
- break;
- }
- }
- realTimeEST = timeDateSpan.title;
- //Process real time. Add the timezone diffrence, change Date if needed
- var thehours = parseInt(realTimeEST.substr(0,2));
- var dateString = realTimeEST.substr(9,2);
- thedate = parseInt(dateString);
- thehours += timeZoneDiff;
- if (thehours >= 24)
- {
- thehours -= 24; thedate ++ ;
- dateString = thedate.toString();
- if (thedate < 10) { dateString = "0" + dateString;}
- }
- var hoursString = thehours.toString();
- if (thehours < 10) { hoursString = "0" + hoursString;}
- var myTimeDate = dateString + realTimeEST.substring(11,19) + " " + hoursString + realTimeEST.substring(2,8);
- var myp = document.createElement("p");
- myp.style.color = "yellow";
- myp.innerHTML = myTimeDate;
- current_div.appendChild(myp);
- }
- }
- function removeStarlogText()
- {
- var allMessages = document.getElementsByClassName('fullwidth dark tbborder');
- var count = 1;
- for (var index = 0; index < allMessages.length; index ++)
- {
- var theGroup = allMessages[index].getElementsByClassName('groupmessageheader');
- if (theGroup.length == 1) makeShowHideGroup(theGroup[0], ++count);
- }
- }
- /* Button Functions */
- function loadOnlyPlayer()
- {
- window.location.replace("http://www.war-facts.com/starlog.php?type=2&extra=1");
- }
- function removeSinglePlayerMessages()
- {
- var allMessages = document.getElementsByClassName('fullwidth dark tbborder');
- var removeList = [];
- var count = 1;
- for (var index = 0; index < allMessages.length; index ++)
- {
- var isGroup = allMessages[index].getElementsByClassName('groupmessageheader');
- if (isGroup.length == 0) removeList.push(allMessages[index]);
- else makeShowHideGroup(isGroup[0], ++count);
- }
- for (index = 0; index < removeList.length; index++) removeList[index].remove();
- }
- function makeShowHideGroup(elem, count)
- {
- count = padCount(count);
- var workingText = elem.innerHTML;
- var newText = workingText.substring(workingText.indexOf('(') + 1, workingText.indexOf('</a>') + 4);
- var groupId = workingText.substring(workingText.indexOf('syncGroup') + 10, workingText.indexOf("\">") - 1);
- elem.innerHTML = "<label id='label" + count + groupId + "'>+</label>" + workingText.substring(0,workingText.indexOf('('));
- elem.outerHTML += "<label id='hiddentext" + count + groupId + "' class='groupmessageheader' style='display:none'>" + newText + "</label>";
- var text = document.getElementById('label' + count + groupId);
- text.addEventListener("click", changeTextView, true);
- }
- function padCount(count)
- {
- if (count < 10) return "00" + count;
- if (count <100) return "0" + count;
- return count;
- }
- function changeTextView(e)
- {
- var id = e.target.id.substring(5);
- var currentObject = document.getElementById('hiddentext' + id);
- if (currentObject.style.display == "block")
- currentObject.style.display = "none";
- else
- currentObject.style.display = "block";
- }
- function showOnlyPlayerMessages()
- {
- var allLines = document.getElementsByClassName('shadow');
- var groups = ["fleet", "explore", "colony", "empire", "science"];
- xhttp = new XMLHttpRequest();
- xhttp.open("GET", "http://www.war-facts.com/starlog.php?offset=100&type=2", false);
- xhttp.send();
- var div = document.createElement('div');
- div.innerHTML = xhttp.responseText;
- var moreValues = div.getElementsByClassName('fullwidth dark tbborder');
- for (index = 0; index < moreValues.length; index++) allLines[1].appendChild(moreValues[index]);
- var removeList = [];
- for (var groupsIndex = 0; groupsIndex < groups.length; groupsIndex ++)
- {
- var lines = allLines[1].getElementsByClassName('fullwidth dark tbborder starlog_' + groups[groupsIndex]);
- for (var index = 0; index < lines.length; index++) removeList.push(lines[index]);
- }
- for (index = 0; index < removeList.length; index++) removeList[index].remove();
- var left = document.getElementsByClassName('fullwidth dark tbborder');
- for (index = 0; index < left.length; index++)
- {
- var isGroup = left[index].getElementsByClassName('groupmessageheader');
- if (isGroup.length == 1) removeList.push(left[index]);
- }
- for (index = 0; index < removeList.length; index++) removeList[index].remove();
- }
- function changeStatus(name, status)
- {
- if (status == true) return;
- var allMessages = document.getElementsByClassName('fullwidth dark tbborder');
- var removeList = [];
- for (var index = 0; index < allMessages.length; index ++)
- {
- var innerText = allMessages[index].getElementsByClassName('groupmessageheader');
- alert(innerText[0].innerHTML);
- alert(name);
- var index = innerText[0].innerHTML.indexOf("syncGroup" + name);
- alert("index is: " + index );
- if (index != -1) removeList.push(allMessages[index]);
- }
- for (index = 0; index < removeList.length; index++) removeList[index].remove();
- }
- /* Private Stargroup Functions */
- function addCheckBoxs()
- {
- var allMessages = document.getElementsByClassName('left starlog_right box dark padding5 minheight60');
- var arrayList = GM_getValue("stargroupNames");
- if (arrayList == undefined) return;
- var addText = "<div class='left starlog_left box light padding10 hide_mobile'></div><div class='left starlog_right box dark padding5 minheight60'>";
- for (var index = 0; index < arrayList.length; index++)
- {
- var newText = "<a class='darkbutton smalltext' id='text" + arrayList[index][0] + "'>" + arrayList[index][1] + "</a>";
- addText += newText;
- }
- addText += "</div>";
- allMessages[0].outerHTML = allMessages[0].outerHTML + addText;
- for (index = 0; index < arrayList.length; index++)
- {
- var label = document.getElementById('text' + arrayList[index][0]);
- label.addEventListener("click", function(){alert('1');loadStarGroup(arrayList[index][0]);alert('1');}, false);
- }
- }
- function loadStarGroup(groupNumber)
- {
- window.location.replace("http://www.war-facts.com/starlog.php?#" + groupNumber);
- }
- function keepOnlyGroup(groupKey)
- {
- var allMessages = document.getElementsByClassName('fullwidth dark tbborder');
- var removeList = [];
- for (var index = 0; index < allMessages.length; index ++)
- {
- var isGroup = allMessages[index].getElementsByClassName('groupmessageheader');
- if (isGroup.length != 0)
- {
- var value = isGroup[0].getElementsByTagName("a")[0].href;
- var group = value.substring(value.indexOf('(') + 1, ')' - 1);
- if (group != groupKey) removeList.push(allMessages[index]);
- }
- }
- for (index = 0; index < removeList.length; index++) removeList[index].remove();
- }