const ForumText = document.querySelectorAll('p:not(.text-muted):not(.mb-0)'); var Settings = []; chrome.storage.sync.get(['PolyPlus_Settings'], function (result) { Settings = result.PolyPlus_Settings || { ForumMentsOn: false, ForumUnixStampsOn: false }; if (Settings.ForumMentsOn === true) { ForumMentions(); } if (Settings.ForumUnixStampsOn === true) { ForumUnixTimestamps(); } }); function ForumMentions() { const Regex = /@([\w.]+)/g; for (let text of ForumText) { let FormattedText = text.innerHTML; let match; while ((match = Regex.exec(text.innerText)) !== null) { const Username = match[0].substring(1); FormattedText = FormattedText.replaceAll(match[0], `${match[0]}`); } text.innerHTML = FormattedText; } } function ForumUnixTimestamps() { const Regex = /<t:[A-Za-z0-9]+>/i; for (let text of ForumText) { let FormattedText = text.innerHTML; let match; while ((match = Regex.exec(FormattedText)) !== null) { const Timestamp = new Date(match[0].substring(6, match[0].length - 4) * 1000); const Months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; const Distance = new Intl.RelativeTimeFormat({numeric: 'auto', style: 'short'}).format(Math.floor((Timestamp - new Date()) / (60 * 1000)), 'day'); const Result = `${Months[Timestamp.getMonth()]} ${Timestamp.getDate()}, ${Timestamp.getFullYear()} (${['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][Timestamp.getDay() - 1]}) at ${Timestamp.getHours() - 12}:${String(Timestamp.getMinutes()).padStart(2, '0')} (${Distance})`; FormattedText = FormattedText.replaceAll(match[0], Result); console.log(FormattedText); } text.innerHTML = FormattedText; } }