Sort Mega.nz files by size

Add sortbysize button on mega.nz

  1. // ==UserScript==
  2. // @name Sort Mega.nz files by size
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description Add sortbysize button on mega.nz
  6. // @author JethaLal_420
  7. // @match https://mega.nz/folder/*
  8. // @icon https://www.google.com/s2/favicons?domain=mega.nz
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. "use strict";
  14. var listViewBtn, blockViewBtn;
  15.  
  16. const createBtn = (btnName) => {
  17. var button = document.createElement("BUTTON");
  18. button.innerHTML = btnName;
  19. button.id = "sortbysize";
  20. return button;
  21. };
  22.  
  23. const checkDataLoaded = () => {
  24. listViewBtn = document.getElementsByClassName("listing-view")[0];
  25. blockViewBtn = document.getElementsByClassName("block-view")[0];
  26. };
  27.  
  28. const sortBySize = () => {
  29. listViewBtn.click();
  30. console.log("List View btn Clicked");
  31. var sizeBtn = document.getElementsByClassName("size")[0];
  32. setTimeout(() => {
  33. sizeBtn.click();
  34. sizeBtn.click();
  35. }, 500);
  36. blockViewBtn.click();
  37. console.log("Block View btn Clicked");
  38. };
  39.  
  40. let intervalId = setInterval(() => {
  41. checkDataLoaded();
  42.  
  43. if (listViewBtn && blockViewBtn) {
  44. insertBtn();
  45. }
  46. }, 1000);
  47.  
  48. const insertBtn = () => {
  49. clearInterval(intervalId);
  50.  
  51. var parentNode = document.getElementsByClassName(
  52. "fm-breadcrumbs-wrapper"
  53. )[0];
  54. var childNode = document.getElementsByClassName("fm-breadcrumbs-block")[0];
  55. var btn = createBtn("Sort_By_Size");
  56. parentNode.insertBefore(btn, childNode);
  57.  
  58. btn.onclick = sortBySize;
  59. };
  60. })();