WME Install Popularity

Displays the place in the top 100 installed WME scripts

  1. // ==UserScript==
  2. // @name WME Install Popularity
  3. // @namespace https://greasyfork.org/users/30701-justins83-waze
  4. // @version 0.3
  5. // @description Displays the place in the top 100 installed WME scripts
  6. // @author JustinS83
  7. // @include https://greasyfork.org/en/users/*
  8. // @grant none
  9. // @contributionURL https://github.com/WazeDev/Thank-The-Authors
  10. // @run-at document-end
  11. // ==/UserScript==
  12.  
  13. /* ecmaVersion 2017 */
  14. /* global $ */
  15. /* eslint curly: ["warn", "multi-or-nest"] */
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. function loadScript(url, callback) {
  21. var script = document.createElement("script");
  22. script.type = "text/javascript";
  23. script.onload = function () {
  24. if(callback != null)
  25. callback();
  26. };
  27.  
  28. script.src = url;
  29. document.getElementsByTagName("head")[0].appendChild(script);
  30. }
  31.  
  32. function init(){
  33. var WMESearchPageDiv = document.createElement('div');
  34. WMESearchPageDiv.id="results";
  35. WMESearchPageDiv.style.cssText = "display:none;";
  36. document.body.appendChild(WMESearchPageDiv);
  37. $('#results').load('https://greasyfork.org/en/scripts?q=WME&sort=total_installs .script-list', get2ndPage);
  38. }
  39.  
  40. function get2ndPage(){
  41. var WMESearchPageDiv2 = document.createElement('div');
  42. WMESearchPageDiv2.id="results2";
  43. WMESearchPageDiv2.style.cssText = "display:none;";
  44. document.body.appendChild(WMESearchPageDiv2);
  45. $('#results2').load('https://greasyfork.org/en/scripts?page=2&q=WME&sort=total_installs .script-list li', parseResults);
  46. }
  47.  
  48. function parseResults(){
  49. $('#results2 li').each(function(){
  50. $(this).appendTo('#results ol');
  51. });
  52. $('#results2').remove();
  53.  
  54. $('#user-script-list li').each(function(){
  55. let placeModifier = 0;
  56. let name = $(this).attr('data-script-name');
  57. let author = $(this).attr('data-script-author-name');
  58.  
  59. if(name.indexOf("WME") > -1){
  60. let results = $('#results .script-list li');
  61. for(let i=0;i< results.length; i++){
  62. if($($('#results .script-list li')[i]).attr('data-script-name') !== undefined){
  63. if($($('#results .script-list li')[i]).attr('data-script-name').indexOf(name) > -1 && $($('#results .script-list li')[i]).attr('data-script-author-name') === author){
  64. $(this).find('dd.script-list-total-installs').after(`<dt>WME Most Installed Place</dt><dd>${i+1-placeModifier}</dd>`);
  65. break;
  66. }
  67. }
  68. else{
  69. placeModifier += 1;
  70. }
  71. }
  72. }
  73. });
  74. }
  75.  
  76. loadScript("https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", init);
  77. })();