// ==UserScript== // @name Letterboxd runtime in hours and minutes // @version 1.0.0 // @author salad: https://greasyfork.org/en/users/241444-salad // @match https://letterboxd.com/film/* // @description Mouse over the runtime to show it in hours and minutes // @namespace https://greasyfork.org/users/241444 // @license GPL-3.0-only // @downloadURL none // ==/UserScript== (function() { const timeEl = document.querySelector('p.text-footer'); const timeElHtml = timeEl.innerHTML; const [minutesText, minutes] = /(\d+).+mins/.exec(timeElHtml); let hours = Math.floor(minutes / 60); let remainingMinutes = minutes % 60; let formatted; if (hours === 0) { formatted = `${remainingMinutes} min`; } else if (remainingMinutes === 0) { formatted = `${hours} hr`; } else { formatted = `${hours} hr ${remainingMinutes} min`; } timeEl.addEventListener('mouseover', () => { timeEl.innerHTML = timeElHtml.replace(minutesText, formatted); }); timeEl.addEventListener('mouseout', () => { setTimeout(() => { timeEl.innerHTML = timeElHtml; }, 500); }); })();