Greasy Fork

Letterboxd runtime in hours and minutes

Mouse over the runtime to show it in hours and minutes

目前为 2023-08-27 提交的版本。查看 最新版本

// ==UserScript==
// @name             Letterboxd runtime in hours and minutes
// @version          1.0.1
// @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
// ==/UserScript==

(function() {
  // clone the node: removes tracking event handlers from the IMDB/TMDB buttons
  let timeEl = document.querySelector('p.text-footer');
  timeEl.replaceWith(timeEl.cloneNode(true));

  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);

  });

})();