Dzejkobini

esim.motivations

Jan 17th, 2016
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name MotivateSearchTool
  3. // @namespace Violentmonkey Scripts
  4. // @include *.e-sim.org/newCitizenStatistics.html*
  5. // @grant none
  6. // ==/UserScript==
  7. /**
  8.  * Init
  9.  *
  10.  */
  11.     var timer;
  12.     var page = 1;
  13.     var motivatesFound = 0;
  14.     var latestPlayerId = getLatestPlayerId();
  15.     var playerId = latestPlayerId;
  16. var day = parseInt($('[class="foundation-style panel callout"] b')[2].innerText.split(/\s/)[1]);
  17.  
  18. $(document).ready(function() {
  19.     addDomElements();
  20. });
  21.  
  22. /**
  23.  * Event handlers
  24.  *
  25.  */
  26. $(document).ready(function() {
  27.     $('#motivateSearch').click(function() {
  28.         if ($(this).val() == "Search") {
  29.             $(this).val("Stop");
  30.             $('#loadingGif').css("display", "block");
  31.             searchMotivate();
  32.         } else {
  33.             $(this).val("Search");
  34.             $('#loadingGif').css("display", "none");
  35.             clearInterval(aTimer);
  36.         }
  37.     });
  38. });
  39.  
  40. /**
  41.  * Add dom elements.
  42.  *
  43.  */
  44. function addDomElements() {
  45.    
  46.     var row = $('[class*="dataTable"] tr')[0];
  47.     var columns = $('td', row);
  48.     var nameHeader = columns[0].innerHTML;
  49.     var citizenshipHeader = columns[1].innerHTML;
  50.     var actionHeader = columns[7].innerHTML;
  51.  
  52.     $('#newCitizenStatsForm').append('<br><br>Search players to motivate.<br><input type="button" id="motivateSearch" value="Search">');
  53.     $('#newCitizenStatsForm').append('<table align="center" style="width: 500px;" id="motivateTable" class="dataTable"></table>');
  54.     $('#newCitizenStatsForm').append('<br><img src="http://i.imgur.com/5ZVzPNa.gif" id="loadingGif" style="display: none; margin: auto;">');
  55.     $('#motivateTable').append('<tr><td>'+nameHeader+'</td><td>'+citizenshipHeader+'</td><td>'+actionHeader+'</td></tr>');
  56. }
  57.  
  58. /**
  59.  *
  60.  *
  61.  */
  62. function searchMotivate() {
  63.     aTimer = setInterval(function() {
  64.        
  65.             var player = getPlayerInfo(playerId);
  66.             if(player.isMotivate)
  67.                 {
  68.                     $('#motivateTable').append('<tr><td><img align="absmiddle" class="smallAvatar" src="'+player.avatar+'"> <a href="/profile.html?id='+player.playerId+'" target="_blank">'+player.name+'</a></td><td><div class="flags-small '+player.citizenship+'"></div> '+player.citizenship.replace('-', " ")+'</td><td><a href="motivateCitizen.html?id='+player.playerId+'" class="foundation-style button small help" target="blank_"><i class="icon-cupcake"></i></a></td></tr>')
  69.  
  70.                 }
  71.            
  72.             if(day - player.birthDay > 5)
  73.                 {
  74.                 $('#motivateSearch').val("Search");
  75.                 $('#loadingGif').css("display", "none");
  76.                 clearInterval(aTimer);
  77.                 return;
  78.                 }
  79.             playerId--;
  80.     }, 800);
  81. }
  82.  
  83. /**
  84.  *
  85.  *
  86.  */
  87. function getLatestPlayerId() {
  88.  
  89.     var pageContent;
  90.     $.ajax({
  91.         type: "GET",
  92.         dataType: "html",
  93.         async: false,
  94.         url: "/newCitizens.html?countryId=0",
  95.         success: function(html) {
  96.             pageContent = html;
  97.         }
  98.     });
  99.     var domElements = $.parseHTML(pageContent);
  100.     var rows = $("[class*='dataTable'] tr", domElements);
  101.     rows = rows.slice(1, rows.length);
  102.     var cell = $("td", rows[0]);
  103.     var playerId = parseInt($('a', cell[0]).attr('href').replace('profile.html?id=', ''));
  104.  
  105.     return playerId;
  106. }
  107.  
  108. /**
  109.  *
  110.  *
  111.  */
  112. function getPlayerInfo(playerId) {
  113.     var pageContent;
  114.     var result = {};
  115.     $.ajax({
  116.         type: "GET",
  117.         dataType: "html",
  118.         async: false,
  119.         url: "/profile.html?id=" + playerId,
  120.         success: function(html) {
  121.             pageContent = html;
  122.         }
  123.     });
  124.     var domElements = $.parseHTML(pageContent);
  125.     var isMotivate = true;
  126.     if (typeof $('#motivateCitizenButton', domElements)[0] == 'undefined') {
  127.         isMotivate = false;
  128.     }
  129.     var nameArray = $('[class="testDivblue"] h2', domElements)[0].innerText;
  130.     nameArray = nameArray.split(/\s/);
  131.     nameArray = nameArray.slice(1, nameArray.length);
  132.     var name = '';
  133.     for(i = 0; i < nameArray.length; i++)
  134.         {
  135.             name += nameArray[i]+" ";
  136.         }
  137.    
  138.     name = name.trim();
  139.     var citizenship = $('div', $('[class="smallTableFont"] tr b', domElements)[13]).attr('class').replace('flags-small ', '').trim();
  140.     var birthDay = parseInt($('[class="smallTableFont"] tr b', domElements)[15].innerText.replace('Day ', ''));
  141.     var avatar = $('[class="bigAvatar"]', domElements).attr('src');
  142.    
  143.     result['playerId'] = playerId;
  144.     result['name'] = name;
  145.     result['citizenship'] = citizenship;
  146.     result['isMotivate'] = isMotivate;
  147.     result['birthDay'] = birthDay;
  148.     result['avatar'] = avatar;
  149.    
  150.     return result;
  151.    
  152.  
  153.  
  154. }
Advertisement
Add Comment
Please, Sign In to add comment