Letterboxd Runtime

Displays the runtime in hours and minutes instead of total minutes

  1. // ==UserScript==
  2. // @name Letterboxd Runtime
  3. // @version 0.1.0
  4. // @author fawn
  5. // @namespace https://fawn.moe
  6. // @match https://letterboxd.com/film/*
  7. // @description Displays the runtime in hours and minutes instead of total minutes
  8. // @license Apache-2.0
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. let footerEl = document.querySelector('p.text-footer');
  13. const [minutesText, minutes] = /(\d+).+mins/.exec(footerEl.innerHTML);
  14.  
  15. let hours = Math.floor(minutes / 60);
  16. let remaining = minutes % 60;
  17.  
  18. let formatted;
  19. if (hours === 0) {
  20. formatted = `${remaining} mins`;
  21. } else if (remaining === 0) {
  22. formatted = `${hours} hours`;
  23. } else {
  24. formatted = `${hours} hours, ${remaining} mins`;
  25. }
  26.  
  27. footerEl.innerHTML = footerEl.innerHTML.replace(minutesText, formatted);
  28.  
  29. footerEl.classList.add("tooltip");
  30. footerEl.setAttribute("data-original-title", `${minutes} mins`);
  31. })();