Hides comments on ghacks.net that were made before the date of the article.
当前为
// ==UserScript==
// @name GHacks Hide Older Comments
// @namespace MickyFoley
// @description Hides comments on ghacks.net that were made before the date of the article.
// @include *://*.ghacks.net/*
// @version 1.0
// @author MickyFoley
// @license GPL-3.0-only
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Helper function to convert month name to number
function monthToNumber(month) {
const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
const abbrevMonths = months.map(m => m.substr(0, 3));
let monthIndex = months.indexOf(month);
if (monthIndex === -1) monthIndex = abbrevMonths.indexOf(month);
return monthIndex + 1;
}
// Extract the article date
const articleDateDiv = document.querySelector('.post-subtitle-meta_left_date-published');
if (!articleDateDiv) return;
const [articleMonth, articleDay, articleYear] = articleDateDiv.textContent.trim().replace(',', '').split(' ');
const articleDate = new Date(Number(articleYear), monthToNumber(articleMonth) - 1, Number(articleDay));
// Iterate through comments and hide older ones
const comments = document.querySelectorAll('li.comment');
comments.forEach(comment => {
const dateDivText = comment.querySelector('div.comment-item__header div').textContent;
const dateMatch = dateDivText.match(/said on (\w+) (\d+), (\d+) at/);
if (!dateMatch) return;
const [, commentMonth, commentDay, commentYear] = dateMatch;
const commentDate = new Date(Number(commentYear), monthToNumber(commentMonth) - 1, Number(commentDay));
if (commentDate < articleDate) {
comment.style.display = 'none';
}
});
})();