Mercurial > ec-userscripts
diff tweetdeck-large-image.user.js @ 117:d9dc190bccaf
Undo combining fixes into single script per site
author | nanaya <me@nanaya.net> |
---|---|
date | Sun, 15 Jan 2023 23:49:35 +0900 |
parents | 7774174022af |
children | 8de2d53a4cb1 |
line wrap: on
line diff
--- a/tweetdeck-large-image.user.js Sun Jan 15 23:46:56 2023 +0900 +++ b/tweetdeck-large-image.user.js Sun Jan 15 23:49:35 2023 +0900 @@ -11,77 +11,73 @@ 'use strict'; -function origLink () { - const fix = function (link) { - // basic sanity check - if (!link.classList.contains('js-media-image-link')) { - return; - } +const fix = function (link) { + // basic sanity check + if (!link.classList.contains('js-media-image-link')) { + return; + } - // don't run again if already run on passed link - if (link._ecUserscript) { - return; - } - link._ecUserscript = true; + // don't run again if already run on passed link + if (link._ecUserscript) { + return; + } + link._ecUserscript = true; - const image = link.querySelector('.media-img'); - let url; + const image = link.querySelector('.media-img'); + let url; - // sometimes the image is just background image of the link. - // strip all query strings and original :size suffix - if (image == null) { - url = window.getComputedStyle(link).backgroundImage.replace(/^url\(('|")?(.+?)\1\)$/, '$2'); - } else { - url = image.src; - } + // sometimes the image is just background image of the link. + // strip all query strings and original :size suffix + if (image == null) { + url = window.getComputedStyle(link).backgroundImage.replace(/^url\(('|")?(.+?)\1\)$/, '$2'); + } else { + url = image.src; + } - const parsedUrl = new URL(url); + const parsedUrl = new URL(url); - if (parsedUrl.searchParams.get('name') == null) { - url = url.replace(/(\..+:).+/, '$1orig'); - } else { - if (parsedUrl.pathname.match(/\.[^.]+$/) !== null) { - parsedUrl.searchParams.delete('format'); - } - parsedUrl.searchParams.set('name', 'orig'); - url = parsedUrl.href; + if (parsedUrl.searchParams.get('name') == null) { + url = url.replace(/(\..+:).+/, '$1orig'); + } else { + if (parsedUrl.pathname.match(/\.[^.]+$/) !== null) { + parsedUrl.searchParams.delete('format'); } + parsedUrl.searchParams.set('name', 'orig'); + url = parsedUrl.href; + } - link.setAttribute('href', url); - }; + link.setAttribute('href', url); +}; - // loop through passed nodes (or body if called without arguments) - const run = function (nodes) { - if (nodes == null) { - nodes = [document.body]; - } +// loop through passed nodes (or body if called without arguments) +const run = function (nodes) { + if (nodes == null) { + nodes = [document.body]; + } - for (let i = 0; i < nodes.length; i++) { - // first try fixing itself - fix(nodes[i]); + for (let i = 0; i < nodes.length; i++) { + // first try fixing itself + fix(nodes[i]); - // and then find all the links inside - const links = nodes[i].querySelectorAll('.js-media-image-link'); + // and then find all the links inside + const links = nodes[i].querySelectorAll('.js-media-image-link'); - for (let j = 0; j < links.length; j++) { - fix(links[j]); - } - } - }; - - const onMutate = function (mutations) { - for (const mutation in mutations) { - run(mutation.addedNodes); + for (let j = 0; j < links.length; j++) { + fix(links[j]); } - }; - - // the observer - const observer = new window.MutationObserver(onMutate); + } +}; - // start the observer - observer.observe(document, { childList: true, subtree: true }); - // initial run on existing document - run(); -} +const onMutate = function (mutations) { + for (const mutation in mutations) { + run(mutation.addedNodes); + } +}; -origLink(); +// the observer +const observer = new window.MutationObserver(onMutate); + +// start the observer +observer.observe(document, { childList: true, subtree: true }); +// initial run on existing document +run();