Advertisement
Guest User

Untitled

a guest
May 27th, 2018
849
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Margonem Klany Online
  3. // @version 1.0
  4. // @author adison wilkson
  5. // @include https://www.margonem.pl/?task=clanpage*
  6. // @include http://www.margonem.pl/?task=clanpage*
  7. // @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
  8. // @grant GM_xmlhttpRequest
  9. // @connect margonem.pl
  10. // @run-at document-start
  11. // ==/UserScript==
  12. (function() {
  13. var characters = [];
  14. var $statsBody = null;
  15. var worldsOnline = {};
  16. var onlineReady = false;
  17. var charactersReady = false;
  18.  
  19. GM_xmlhttpRequest({
  20. method: "GET",
  21. url: "http://margonem.pl/?task=stats",
  22. onload: function(response) {
  23. $statsBody = $(response.responseText);
  24. onlineReady = true;
  25. check();
  26. }
  27. });
  28.  
  29. document.addEventListener('DOMContentLoaded', function() {
  30. loadCharacters();
  31. });
  32.  
  33. function loadCharacters() {
  34. var table = document.getElementById("ranking").children[0]; //tbody element
  35. var members_length = document.getElementById("ranking").rows.length; //ilosc czlonkow + 1
  36. var world = window.location.href.substring(window.location.href.indexOf("&w=") + 3);
  37. for (var i = 1; i < members_length; i++) {
  38. characters.push({
  39. name: table.children[i].children[1].textContent,
  40. world: world
  41. });
  42. }
  43. charactersReady = true;
  44. check();
  45. }
  46.  
  47. function check() {
  48. if (charactersReady && onlineReady) start();
  49. }
  50.  
  51. function start() {
  52. var aktualnie_online = [];
  53. document.getElementById("ranking").children[0].children[0].innerHTML += "<th>Online</th>";
  54. var members_count = 0;
  55. for (var i in characters) {
  56. if (!worldsOnline[characters[i].world]) loadWorldOnline(characters[i].world);
  57. if (isCharacterOnline(characters[i].name, characters[i].world)) {
  58. i++;
  59. members_count++;
  60. aktualnie_online.push(characters[i].name);
  61. document.getElementById("ranking").children[0].children[i].innerHTML += '<td class="cen" bgcolor="#0d9b0d"></td>';
  62. } else {
  63. i++;
  64. document.getElementById("ranking").children[0].children[i].innerHTML += '<td class="cen"></td>';
  65. }
  66. }
  67. var members_leng = document.getElementById("ranking").rows.length-1;
  68. var content_to_div = "Klanowicze online: " + members_count + "/" + members_leng;
  69. $('<div style="width: 512px; display: block; position: fixed; top: 10px; color: gold; font: 18pxblood; background: #400; padding: 0px 20px border: 2px solid red; font-weight: bold; text-align: center; box-shadow: 0 0 2px 2px red;">' + content_to_div + '</div>').appendTo("#clancontent");
  70. if(aktualnie_online.length>0){
  71. var aktualnieonline = "Osoby online: ";
  72. for(var i=0; i<aktualnie_online.length; i++){
  73. if(i==aktualnie_online.length-1){
  74. aktualnieonline += aktualnie_online[i];
  75. }
  76. else {
  77. aktualnieonline += aktualnie_online[i] + ", ";
  78. }
  79. }
  80. console.log(aktualnieonline);
  81. }
  82. }
  83.  
  84. function loadWorldOnline(world) {
  85. worldsOnline[world] = $statsBody.find('#online_' + world + ' p').text().trim().split(', ');
  86. }
  87.  
  88. function isCharacterOnline(name, world) {
  89. return worldsOnline[world].indexOf(name) >= 0;
  90. }
  91. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement