userscripts/RESser.user.js

43 lines
1.5 KiB
JavaScript

// ==UserScript==
// @name RESser
// @namespace blankie-scripts
// @match https://old.reddit.com/*
// @grant GM_openInTab
// @version 1.4
// @author blankie
// @inject-into page
// @run-at document-start
// ==/UserScript==
document.addEventListener('keydown', function(e) {
switch (e.keyCode) {
case 86: // v
case 78: // n
// v/n to expose text spoilers
document.querySelectorAll('.RES-keyNav-activeElement .md-spoiler-text:not(.revealed)').forEach((e) => {
e.classList.add('revealed');
e.click();
});
break;
case 13: // return/enter
// [shift-]enter on crossposted item to go to crossposted item instead of link
const crosspostA = document.querySelector('.RES-keyNav-activeElement .crosspost-preview a');
if (crosspostA !== null) {
e.stopImmediatePropagation();
if (e.shiftKey) {
// TODO fix duplicate link from res lmao
GM_openInTab(crosspostA.href, {active: true});
} else {
location.href = crosspostA.href;
}
return;
}
// shift-enter on 'Continue this thread'
if (e.shiftKey) {
const continueThing = document.querySelector('.RES-keyNav-activeElement > span.deepthread > a');
if (continueThing !== null) {
GM_openInTab(continueThing.href, {active: true});
}
}
};
}, {capture: true, useCapture: true})