FVToolkit-Sidebar

scrollable sidebar with all villagers

  1. // ==UserScript==
  2. // @name FVToolkit-Sidebar
  3. // @namespace CuteHornyUnicorn
  4. // @version 0.1a4
  5. // @description scrollable sidebar with all villagers
  6. // @author CuteHornyUnicorn
  7. // @include http://www.furvilla.com/*
  8. // @grant none
  9. // ==/UserScript==
  10. /*jshint multistr: true */
  11.  
  12.  
  13. var sidebar = document.createElement('div');
  14. sidebar.setAttribute('class', 'FVTK-rsidebar');
  15. sidebar.style = 'position: fixed;\
  16. right: -20px;\
  17. top: -20px;\
  18. overflow:scroll;\
  19. height: 108%;\
  20. width: 230px;\
  21. visibility: hidden;\
  22. ';
  23.  
  24. sidebar.innerHTML = '\
  25. <div class="widget">\
  26. <div class="widget-content" style="visibility: visible;">\
  27. </div>\
  28. </div>\
  29. ';
  30.  
  31. document.body.appendChild(sidebar);
  32.  
  33.  
  34. var getPage = function(url, callback) {
  35. var req = new XMLHttpRequest();
  36. req.onload = function() {
  37. if ( callback && typeof(callback) === 'function' ) {
  38. callback( this.responseXML );
  39. }
  40. };
  41. req.open( 'GET', url );
  42. req.responseType = 'document';
  43. req.send();
  44. };
  45.  
  46. getPage( '/profile', function(response) {
  47. var sidebarWidget = document.querySelector( '.FVTK-rsidebar > .widget' );
  48. var sidebarWidgetContent = sidebarWidget.querySelector('.widget-content');
  49. var listVillagers = response.querySelector( '.villagers-list' );
  50. var ulStore = listVillagers.querySelectorAll('ul > li');
  51. for (var liContent of ulStore) {
  52. var VilCareer = liContent.querySelector('.villager-info');
  53. if (VilCareer !== null) {
  54. VilCareer = VilCareer.textContent.trim().toLowerCase();
  55. if (VilCareer == 'animal husbandry') {
  56. VilCareer = 'breeder';
  57. }
  58. if (VilCareer == 'construction worker') {
  59. VilCareer = 'carpenter';
  60. }
  61.  
  62. var replaceLinks = liContent.innerHTML;
  63. replaceLinks = replaceLinks.replace('villager/','career/'+VilCareer+'/');
  64. liContent.innerHTML = replaceLinks;
  65. }
  66.  
  67. var villager = document.createElement('div');
  68. villager.setAttribute('class', 'text-center');
  69. sidebarWidgetContent.appendChild(villager);
  70. villager.innerHTML = liContent.innerHTML;
  71. }
  72. });
  73.  
  74.  
  75. function addGlobalStyle(css) {
  76. var head, style;
  77. head = document.getElementsByTagName('head')[0];
  78. if (!head) { return; }
  79. style = document.createElement('style');
  80. style.type = 'text/css';
  81. style.innerHTML = css;
  82. head.appendChild(style);
  83. }
  84.  
  85. addGlobalStyle("\
  86. \
  87. .FVTK-rsidebar .text-center {\
  88. text-align: left;\
  89. height: 80px;\
  90. }\
  91. .FVTK-rsidebar .text-center .villager-avatar {\
  92. width:75px;\
  93. border-radius: 0px !important;\
  94. }\
  95. \
  96. .FVTK-rsidebar .text-center p {\
  97. text-align: left;\
  98. font-size: 10px;\
  99. width: 60%;\
  100. position: relative;\
  101. top: -80px;\
  102. margin-left: 80px;\
  103. margin-bottom: 0px;\
  104. }\
  105. \
  106. .FVTK-rsidebar .text-center p a {\
  107. }\
  108. \
  109. .adsbygoogle {\
  110. display: none !important;\
  111. }\
  112. ");