Mercurial > ec-userscripts
changeset 116:0e108a9dc6d7
Split suruga-ya scripts
author | nanaya <me@nanaya.net> |
---|---|
date | Sun, 15 Jan 2023 23:46:56 +0900 |
parents | 7774174022af |
children | d9dc190bccaf |
files | surugaya-always-consent.user.js surugaya-direct-image.user.js surugaya-fixes.user.js |
diffstat | 3 files changed, 69 insertions(+), 66 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/surugaya-always-consent.user.js Sun Jan 15 23:46:56 2023 +0900 @@ -0,0 +1,20 @@ +// ==UserScript== +// @name suruga-ya always consent +// @namespace https://nanaya.net +// @version 2.0.2 +// @description always inject adult consent cookie +// @author nanaya +// @match https://www.suruga-ya.jp/* +// @grant none +// @downloadURL https://hg.nanaya.net/ec-userscripts/raw-file/tip/surugaya-always-consent.user.js +// ==/UserScript== + +'use strict'; + +const hasAdultCookie = document.cookie.split('; ').includes('adult=1'); +if (!hasAdultCookie) { + const d = new Date(); + d.setTime(d.getTime() + (100 * 24 * 60 * 60 * 1000)); + document.cookie = `adult=1; expires=${d.toGMTString()}; path=/`; + window.location.reload(); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/surugaya-direct-image.user.js Sun Jan 15 23:46:56 2023 +0900 @@ -0,0 +1,49 @@ +// ==UserScript== +// @name suruga-ya direct image +// @namespace https://nanaya.net +// @version 2.0.3 +// @description skip loading image through php which seems to take forever +// @author nanaya +// @match https://www.suruga-ya.jp/* +// @grant none +// @downloadURL https://hg.nanaya.net/ec-userscripts/raw-file/tip/surugaya-fixes.user.js +// ==/UserScript== + +'use strict'; + +const itemImageRegexp = /photo\.php\?shinaban=([0-9A-Z]+)/; +function fix (image) { + const origSrc = image.getAttribute('src'); + if (origSrc == null) return; + const found = origSrc.match(itemImageRegexp); + if (found == null) return; + + const src = `https://www.suruga-ya.jp/database/pics_light/game/${found[1].toLowerCase()}.jpg`; + const setNotFound = () => { + image.removeEventListener('error', setNotFound); + image.setAttribute('src', 'https://www.suruga-ya.jp/database/images/no_photo.jpg'); + }; + image.addEventListener('error', setNotFound); + image.setAttribute('src', src); +} + +function run (node) { + if (!(node instanceof window.HTMLElement)) return; + + fix(node); + for (const image of node.querySelectorAll('img')) { + fix(image); + } +} + +function onMutate (mutations) { + for (const mutation of mutations) { + for (const node of mutation.addedNodes) { + run(node); + } + } +} + +const observer = new window.MutationObserver(onMutate); +observer.observe(document, { childList: true, subtree: true }); +run(document.body);
--- a/surugaya-fixes.user.js Sun Jan 15 23:43:44 2023 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -// ==UserScript== -// @name suruga-ya fixes -// @namespace https://nanaya.net -// @version 2.0.2 -// @description Show all products with fast image -// @author nanaya -// @match https://www.suruga-ya.jp/* -// @grant none -// @downloadURL https://hg.nanaya.net/ec-userscripts/raw-file/tip/surugaya-fixes.user.js -// ==/UserScript== - -'use strict'; - -// always inject adult consent cookie -function alwaysConsent () { - const hasAdultCookie = document.cookie.split('; ').includes('adult=1'); - if (!hasAdultCookie) { - const d = new Date(); - d.setTime(d.getTime() + (100 * 24 * 60 * 60 * 1000)); - document.cookie = `adult=1; expires=${d.toGMTString()}; path=/`; - window.location.reload(); - } -} - -// skip loading image through php which seems to take forever -function directImage () { - const itemImageRegexp = /photo\.php\?shinaban=([0-9A-Z]+)/; - function fix (image) { - const origSrc = image.getAttribute('src'); - if (origSrc == null) return; - const found = origSrc.match(itemImageRegexp); - if (found == null) return; - - const src = `https://www.suruga-ya.jp/database/pics_light/game/${found[1].toLowerCase()}.jpg`; - const setNotFound = () => { - image.removeEventListener('error', setNotFound); - image.setAttribute('src', 'https://www.suruga-ya.jp/database/images/no_photo.jpg'); - }; - image.addEventListener('error', setNotFound); - image.setAttribute('src', src); - } - - function run (node) { - if (!(node instanceof window.HTMLElement)) return; - - fix(node); - for (const image of node.querySelectorAll('img')) { - fix(image); - } - } - - function onMutate (mutations) { - for (const mutation of mutations) { - for (const node of mutation.addedNodes) { - run(node); - } - } - } - - const observer = new window.MutationObserver(onMutate); - observer.observe(document, { childList: true, subtree: true }); - run(document.body); -} - -alwaysConsent(); -directImage();