Greasy Fork is available in English.
Various tweaks for the linustechtips.com forums
// ==UserScript==
// @name TechTweaks
// @namespace py-mpixel
// @match https://linustechtips.com/*
// @grant none
// @version 1.1
// @author pythonmegapixel
// @description Various tweaks for the linustechtips.com forums
// @license BSD-3-Clause
// ==/UserScript==
const CONF = {
// How to handle GIF profile pictures.
// 0 = leave as is
// 1 = replace with generic "contacts" icon (except on mouseover)
gifProfilePictures: 0,
// What to do with the "ranking" information:
// 0 = leave as is
// 1 = move to where the Member Title used to be
// 2 = hide altogether
rankingInformation: 1,
}
/****************************************************************************
***************************************************************************/
if (CONF.gifProfilePictures==1) {
const replacementImageData =
`
<svg xmlns="http://www.w3.org/2000/svg" width="auto" height="auto" fill="white" style="background-color:orange;" class="bi bi-person-square" viewBox="0 0 16 16">
<path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"/>
</svg>
`;
document.querySelectorAll('.ipsUserPhoto img, .ipsUserPhoto:is(img)').forEach(function(pfp) { // Loop through every profile image
if (pfp.src.substr(pfp.src.length - 3) === "gif") { // Does the filename end in gif?
pfp.style.display = "none"; // If so, hide it
}
}
);
document.querySelectorAll('.ipsUserPhoto').forEach(function(pfpcontainer) { // Now loop through every CONTAINER for the profile images
var newImage = document.createElement('span'); // Create a new span element
newImage.innerHTML = replacementImageData; // Put the replacement image data in there
pfpcontainer.appendChild(newImage);
})
document.querySelectorAll('#elCopyright').forEach(function(thePara) {
var newP = document.createElement('p');
newP.innerHTML = "<a href='https://pythonmegapixel.com' target='_blank'>Modified with a userscript by pythonmegapixel</a>"; // Adds some data to the bottom of the page to show that the userscript worked
thePara.appendChild(newP);
}
);
}
if (CONF.rankingInformation==1||CONF.rankingInformation==2) {
document.querySelectorAll('.cAuthorPane').forEach(function(panel) {
var badge = panel.querySelector(".cAuthorPane_badge--rank");
badge.style.height = 0;
badge.removeAttribute("data-ipstooltip");
if (CONF.rankingInformation==1) {
var stats = panel.querySelector(".cAuthorPane_stats");
var infolist = panel.querySelector(".cAuthorPane_info");
var ranktext = document.createElement("li");
ranktext.innerHTML = badge.getAttribute("title").replace(/\(\d+\/\d+\)/, "").replace(/Title:/, "");
ranktext.style.color = "#888888"
infolist.insertBefore(ranktext, stats);
}
})
}