Starlog Manager

Starlog addon

目前为 2015-11-17 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Starlog Manager
  3. // @namespace bitbucket.org/Odahviing
  4. // @include http://www.war-facts.com/starlog.php*
  5. // @version 1.1
  6. // @grant none
  7. // @description Starlog addon
  8. // ==/UserScript==
  9.  
  10. // Version 1.0 - Inital Script - Player filter + Real Time
  11. // Version 1.1 - Minor Changes on menus
  12.  
  13. // Features So Far
  14. // --- Ability to filter with "player" messages only
  15.  
  16.  
  17. function loadPlayerMessages()
  18. {
  19. // Make Player button
  20. var newLink = document.createElement('a');
  21. newLink.setAttribute('class', "darkbutton smalltext");
  22. newLink.innerHTML = "Player";
  23. newLink.addEventListener("click", loadOnlyPlayer);
  24. // Add it
  25. var linksObject = document.getElementsByClassName('left starlog_right box dark padding5 minheight60')[0];
  26. linksObject.insertBefore(newLink, linksObject.firstChild);
  27.  
  28. var outbox = linksObject.children[3];
  29. linksObject.insertBefore(outbox, null);
  30. outbox = linksObject.children[3];
  31. linksObject.insertBefore(outbox, null);
  32.  
  33. linksObject.children[1].innerHTML = "Stargroup";
  34. addRealDate();
  35. }
  36.  
  37. // Based of guardian21 script
  38. function addRealDate()
  39. {
  40. var divs = document.getElementById("midcolumn").getElementsByTagName("div")[0].getElementsByTagName("div");
  41. var i, current_div, realTimeEST,timetext,timeDateSpan,temp;
  42.  
  43. //For each starlog entry
  44. for (i = 3; i < divs.length; i+=3)
  45. { //i=3 because first are headers
  46.  
  47. current_div = divs[i].children[0];
  48.  
  49. timeDateSpan = current_div.getElementsByTagName("span")[0];
  50. if (timeDateSpan === undefined)
  51. {
  52. if (i + 1 < divs.length)
  53. {
  54. i = i + 1;
  55. current_div = divs[i].children[0];
  56. timeDateSpan = current_div.getElementsByTagName("span")[0];
  57. }
  58. else
  59. {
  60. break;
  61. }
  62. }
  63.  
  64. realTimeEST = timeDateSpan.title;
  65.  
  66. //Process real time. Add the timezone diffrence, change Date if needed
  67. var thehours = parseInt(realTimeEST.substr(0,2));
  68. var dateString = realTimeEST.substr(9,2);
  69. thedate = parseInt(dateString);
  70. thehours += timeZoneDiff;
  71.  
  72. if (thehours >= 24)
  73. {
  74. thehours -= 24; thedate ++ ;
  75. dateString = thedate.toString();
  76. if (thedate < 10) { dateString = "0" + dateString;}
  77. }
  78.  
  79. var hoursString = thehours.toString();
  80. if (thehours < 10) { hoursString = "0" + hoursString;}
  81.  
  82. var myTimeDate = dateString + realTimeEST.substring(11,19) + " " + hoursString + realTimeEST.substring(2,8);
  83. var myp = document.createElement("p");
  84. myp.style.color = "yellow";
  85. myp.innerHTML = myTimeDate;
  86. current_div.appendChild(myp);
  87. }
  88. }
  89.  
  90. function loadOnlyPlayer()
  91. {
  92. window.location.replace("http://www.war-facts.com/starlog.php?#1");
  93. }
  94.  
  95. function onlyPlayer()
  96. {
  97. var allLines = document.getElementsByClassName('shadow');
  98. xhttp = new XMLHttpRequest();
  99. xhttp.open("GET", "http://www.war-facts.com/starlog.php?offset=100&type=2", false);
  100. xhttp.send();
  101. var div = document.createElement('div');
  102. div.innerHTML = xhttp.responseText;
  103. var moreValues = div.getElementsByClassName('fullwidth dark tbborder');
  104. for (index = 0; index < moreValues.length; index++) allLines[1].appendChild(moreValues[index]);
  105. var removeList = [];
  106. for (var groupsIndex = 0; groupsIndex < groups.length; groupsIndex ++)
  107. {
  108. var lines = allLines[1].getElementsByClassName('fullwidth dark tbborder starlog_' + groups[groupsIndex]);
  109. for (var index = 0; index < lines.length; index++) removeList.push(lines[index]);
  110. }
  111. for (index = 0; index < removeList.length; index++) removeList[index].remove();
  112. var left = document.getElementsByClassName('fullwidth dark tbborder');
  113. for (index = 0; index < left.length; index++)
  114. {
  115. var isGroup = left[index].getElementsByClassName('groupmessageheader');
  116. if (isGroup.length == 1) removeList.push(left[index]);
  117. }
  118. for (index = 0; index < removeList.length; index++) removeList[index].remove();
  119. }
  120.  
  121. function removePlayerMessages()
  122. {
  123. var allMessages = document.getElementsByClassName('fullwidth dark tbborder');
  124. var removeList = [];
  125. for (var index = 0; index < allMessages.length; index ++)
  126. {
  127. var isGroup = allMessages[index].getElementsByClassName('groupmessageheader');
  128. if (isGroup.length == 0) removeList.push(allMessages[index]);
  129. }
  130. for (index = 0; index < removeList.length; index++) removeList[index].remove();
  131. }
  132.  
  133. // Loading
  134. //Set Time zone Difference
  135. var currentdate = new Date();
  136. var timeZoneDiff = currentdate.getTimezoneOffset() / 60; // Difference between user time and UTC time in hours
  137. timeZoneDiff = -timeZoneDiff; // I want to know user compared to utc, not utc compared to user
  138. timeZoneDiff += 5; //Difference between UTC and EST (server is in EST)
  139. var groups = ["fleet", "explore", "colony", "empire", "science"];
  140.  
  141. // Start
  142. loadPlayerMessages();
  143. var index = document.URL.indexOf("?");
  144. if (index != -1)
  145. {
  146.  
  147. var getType = document.URL.substring(index + 1);
  148. if (getType == "type=2") removePlayerMessages();
  149. else if (getType =="#1") onlyPlayer();
  150. }