Last active
November 30, 2018 23:21
-
-
Save sidneys/4392fdde27a0cf60cb12ada20c95fb81 to your computer and use it in GitHub Desktop.
UserScript | Die WELT Online | Artikelkommentare Automatisch Einblenden
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Die WELT Online | Artikelkommentare Automatisch Einblenden | |
// @namespace de.sidneys.userscripts | |
// @homepage https://gist.githubusercontent.com/sidneys/4392fdde27a0cf60cb12ada20c95fb81/raw/ | |
// @version 4.0.0 | |
// @description Alle Antworten zu Artikeln bei WELT.DE immer einblenden (Always automatically expand all WELT.DE article comments) | |
// @author sidneys | |
// @icon https://www.welt.de/favicon.ico | |
// @noframes | |
// @include https://www.welt.de/*article* | |
// @require https://greasyfork.org/scripts/38888-greasemonkey-color-log/code/Greasemonkey%20%7C%20Color%20Log.js | |
// @require https://greasyfork.org/scripts/375023-library-queryselectorinterval/code/Library%20%7C%20querySelectorInterval.js | |
// @grant GM.addStyle | |
// @run-at document-end | |
// ==/UserScript== | |
/** | |
* ESLint | |
* @global | |
*/ | |
/* global querySelectorInterval */ | |
/* global clearQuerySelectorInterval */ | |
Debug = false | |
/** | |
* Minimum Delay between Lookups | |
* @default | |
* @constant | |
*/ | |
const minimumLookupIntervalDuration = 1000 | |
/** | |
* CSS Selector for "Alle Einblenden" Button | |
* @constant | |
*/ | |
const cssSelector = 'div.c-content-container:nth-child(1) > div:nth-child(4) > div:nth-child(4) > div:nth-child(1) > div > div:nth-child(3) > div:nth-child(2) > a:nth-child(1)' | |
/** | |
* Inject Stylesheet | |
*/ | |
let injectStylesheet = () => { | |
console.debug('injectStylesheet') | |
GM.addStyle(` | |
/* .busy | |
========================================================================== */ | |
.busy, | |
.busy * | |
{ | |
cursor: wait !important; | |
} | |
`) | |
} | |
/** | |
* Busy mode | |
* @param {Boolean} isBusy - Yes/No | |
*/ | |
let setBusy = (isBusy) => { | |
console.debug('setBusy') | |
if (isBusy) { | |
document.querySelector('html').classList.add('busy') | |
} else { | |
document.querySelector('html').classList.remove('busy') | |
} | |
} | |
/**a | |
* Look for & Trigger "Antworten Einblenden" | |
*/ | |
let enableAutoLoadCommentThreads = () => { | |
console.debug('enableAutoLoadCommentThreads') | |
// Click "Load More" / Show entire Playlist | |
querySelectorInterval(document.documentElement, cssSelector, (element) => { | |
// Show Spinner | |
setBusy(true) | |
// Click! | |
element.click() | |
// Hide Spinner | |
const timeout = setTimeout(() => { | |
setBusy(false) | |
clearTimeout(timeout) | |
}, 3000) | |
}) | |
} | |
/** | |
* Init | |
*/ | |
let init = () => { | |
console.info('init') | |
// Add Stylesheet | |
injectStylesheet() | |
// Enable Auto-Loading Comments | |
enableAutoLoadCommentThreads() | |
} | |
/** | |
* @listens window:Event#load | |
*/ | |
window.addEventListener('load', () => { | |
console.debug('window#load') | |
init() | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment