WK Smaller Lessons And Reviews Buttons

try to take over the world!

  1. // ==UserScript==
  2. // @name WK Smaller Lessons And Reviews Buttons
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.18
  5. // @description try to take over the world!
  6. // @author You
  7. // @icon https://i.pinimg.com/236x/5f/68/68/5f6868d18acbc1221de49387a3c07833--batman-poster-batman-batman.jpg
  8. // @match https://www.wanikani.com/
  9. // @match https://www.wanikani.com/dashboard
  10. // @require https://greasyfork.org/scripts/369353-jigen-s-other-stuff/code/Jigen's%20other%20stuff.js?version=604095
  11. // @grant none
  12. // @license MIT
  13. // ==/UserScript==
  14.  
  15. window.wk_smaller_lessons_and_reviews_buttons = {};
  16. (function() {
  17. 'use strict';
  18.  
  19. if (!window.wkof) {
  20. if (confirm('WaniKani Smaller Lessons And Reviews Buttons requires Wanikani Open Framework.\nDo you want to be forwarded to the installation instructions?'))
  21. window.location.href = 'https://community.wanikani.com/t/instructions-installing-wanikani-open-framework/28549';
  22. return;
  23. }
  24.  
  25. var settings_dialog;
  26. var defaults = {
  27. showRecentLessons: true,
  28. showRecentMistakes: true,
  29. showBurns: true,
  30. showLevel: true
  31. };
  32.  
  33. wkof.include('Apiv2, Menu, Settings');
  34. wkof.ready('Menu').then(install_menu);
  35. wkof.ready('Settings').then(install_settings);
  36.  
  37.  
  38. function install_menu() {
  39. wkof.Menu.insert_script_link({
  40. script_id: 'smaller_lessons_and_reviews_buttons',
  41. name: 'smaller_lessons_and_reviews_buttons',
  42. submenu: 'Settings',
  43. title: 'Smaller Lessons And Reviews Buttons',
  44. on_click: open_settings
  45. });
  46. }
  47.  
  48. function open_settings() {
  49. settings_dialog.open();
  50. }
  51. function process_settings(){
  52. settings_dialog.save();
  53. console.log('Settings saved!');
  54. }
  55.  
  56. function install_settings() {
  57. console.log("dfsafasfas");
  58. settings_dialog = new wkof.Settings({
  59. script_id: 'smaller_lessons_and_reviews_buttons',
  60. name: 'smaller_lessons_and_reviews_buttons',
  61. title: 'Smaller Lessons And Reviews Buttons',
  62. on_save: process_settings,
  63. settings: {
  64. 'grp_main': {
  65. type:'group',
  66. label:'Main',
  67. content:{
  68. 'showRecentLessons': {type:'checkbox',label:'Show Recent Lessons',default:defaults.alwaysShow,on_change:defaults.showRecentLessons},
  69. 'showRecentMistakes': {type:'checkbox',label:'Show Recent Mistakes',default:defaults.showRecentMistakes},
  70. 'showBurns': {type:'checkbox',label:'Show Burned Items',default:defaults.showBurns},
  71. 'showLevel': {type:'checkbox',label:'Show Level',default:defaults.showLevel},
  72. }
  73. },
  74. }
  75. });
  76. settings_dialog.load().then(function(){
  77. wkof.settings.smaller_lessons_and_reviews_buttons = $.extend(true, {}, defaults, wkof.settings.smaller_lessons_and_reviews_buttons);
  78. adjust_buttons();
  79. });
  80. }
  81.  
  82. function adjust_buttons() {
  83. $('.lesson-and-review-count').detach().appendTo('.navigation-shortcuts')
  84.  
  85. if($('.lessonAndReviewButtons').length == 0){
  86. $('.lessons-and-reviews').remove();
  87. $('.dashboard-progress').css('grid-row','1 / 3');
  88. //make lesson hover work with it
  89. $('.lessonAndReviewButtons .lessons').mouseover(function(){
  90. $('.lessonAndReviewButtons .lessons').attr('data-content',$('.navigation .navigation-shortcut--lessons a').attr('data-content')).popover({
  91. html: true,
  92. animation: false,
  93. placement: 'bottom',
  94. trigger: 'hover',
  95. template: '<div class="popover review-time"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>'
  96. });
  97. });
  98. if(wkof.settings.smaller_lessons_and_reviews_buttons.showLevel == true){
  99. $($('.sitemap__section-header')[0]).before('<button class="dashboard-level">'+$('li.user-summary__attribute a')[0].href.split('/level/')[1]+'</button>');
  100. }
  101. var extraStudy = $('.extra-study-button__link');
  102. var removedCount = 0;
  103. if(wkof.settings.smaller_lessons_and_reviews_buttons.showBurns == true){
  104. //var newBurnedItems = `<li class="navigation-shortcut navigation-shortcut--burnedItems" data-count="${extraStudy[2].textContent.replace(' Burned Items','')}"><a class="navigation-shortcut__button" href="https://www.wanikani.com/subjects/extra_study?queue_type=burned_items"><span class="navigation-shortcut__count">${extraStudy[2].textContent.replace(' Burned Items','')}</span> Burned Items</a></li>`;
  105. var newBurnedItems = `<li class="navigation-shortcut navigation-shortcut--burnedItems" data-count="${extraStudy[1].textContent.replace(' Burned Items','')}"><a class="navigation-shortcut__button" href="https://www.wanikani.com/subjects/extra_study?queue_type=burned_items"><span class="navigation-shortcut__count">${extraStudy[1].textContent.replace(' Burned Items','')}</span> Burned Items</a></li>`;
  106. $('.navigation-shortcut--reviews').after(newBurnedItems);
  107. removedCount = removedCount + 1;
  108. }
  109. if(wkof.settings.smaller_lessons_and_reviews_buttons.showRecentMistakes == true){
  110. //$('.recent-mistakes-dashboard__item').length
  111. // var newRecentMistakes = `<li class="navigation-shortcut navigation-shortcut--recentMistakes" data-count="${extraStudy[1].textContent.replace(' Recent Mistakes','')}"><a class="navigation-shortcut__button" href="https://www.wanikani.com/subjects/extra_study?queue_type=recent_mistakes"><span class="navigation-shortcut__count">${extraStudy[1].textContent.replace(' Recent Mistakes','')}</span> Recent Mistakes</a></li>`;
  112. var newRecentMistakes = `<li class="navigation-shortcut navigation-shortcut--recentMistakes" data-count="${$('.recent-mistakes-dashboard__item').length}"><a class="navigation-shortcut__button" href="https://www.wanikani.com/subjects/extra_study?queue_type=recent_mistakes"><span class="navigation-shortcut__count">${$('.recent-mistakes-dashboard__item').length}</span> Recent Mistakes</a></li>`;
  113. $('.navigation-shortcut--reviews').after(newRecentMistakes);
  114. removedCount = removedCount + 1;
  115. }
  116. if(wkof.settings.smaller_lessons_and_reviews_buttons.showRecentLessons == true){
  117. var newRecentLessons = `<li class="navigation-shortcut navigation-shortcut--recentLessons" data-count="${extraStudy[0].textContent.replace(' Recent Lessons','')}"><a class="navigation-shortcut__button" href="https://www.wanikani.com/subjects/extra_study?queue_type=recent_lessons"><span class="navigation-shortcut__count">${extraStudy[0].textContent.replace(' Recent Lessons','')}</span> Recent Lessons</a></li>`;
  118. $('.navigation-shortcut--reviews').after(newRecentLessons);
  119. removedCount = removedCount + 1;
  120. }
  121. if(removedCount == 3){
  122. $('.logo').remove();
  123. }
  124.  
  125. $('[data-react-class="ExtraStudyDashboard/ExtraStudyDashboard"]').remove();
  126. $('.sitemap__section-header--help').parent().remove();
  127.  
  128. jigen.addStyle(`
  129. .navigation-shortcuts, .navigation-shortcuts.hidden{
  130. display: flex !important;
  131. visibility: visible;
  132. }
  133. .global-header .container {
  134. justify-content: center;
  135. }
  136. @media (min-width: 768px){
  137. .dashboard .progress-and-forecast .forecast {
  138. grid-row: 1 / 3;
  139. }
  140. }
  141. .dashboard-level {
  142. min-width: 16px;
  143. padding: 0 8px;
  144. font-size: 0.75rem;
  145. display: inline-block;
  146. border-radius: 4px 0 0 4px;
  147. vertical-align: top;
  148. line-height: 32px;
  149. color: #fff;
  150. text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
  151. font-weight: bold !important;
  152. text-align: center;
  153. background: transparent;
  154. color: black;
  155. line-height: 28px;
  156. color: rgb(51, 51, 51);
  157. border: 2px solid rgba(0, 0, 0, 0.1);
  158. }
  159. [aria-controls=sitemap__levels],[aria-controls=sitemap__vocabulary],[aria-controls=sitemap__kanji],[aria-controls=sitemap__radicals]{
  160. border-radius: 0 4px 4px 0;
  161. border: 2px solid rgba(0, 0, 0, 0.1);
  162. border-left: 0
  163. width:auto;
  164. display: inline;
  165. border-radius: 4px;
  166. }
  167. [aria-controls=sitemap__vocabulary],[aria-controls=sitemap__kanji],[aria-controls=sitemap__radicals]{
  168. margin-right: 0;
  169. margin-left: 0;
  170. }
  171. .navigation-shortcut--recentMistakes, .navigation-shortcut--recentLessons, .navigation-shortcut--burnedItems, .sitemap {
  172. white-space: nowrap;
  173. }
  174. [aria-controls=sitemap__levels] {
  175. padding: 0;
  176. border-radius: 0 4px 4px 0;
  177. width: 80px;
  178. }
  179. .dashboard-level {
  180. border-right: none;
  181. }
  182. [data-react-class="ExtraStudyDashboardLegacy/ExtraStudyDashboard"] {
  183. display: none;
  184. }
  185. `);
  186. }
  187. }
  188. })(wk_smaller_lessons_and_reviews_buttons);