Mercurial > ec-userscripts
annotate surugaya-fixes.user.js @ 106:42fbeb68c0e5
Product id may contain uppercase letters
author | nanaya <me@nanaya.net> |
---|---|
date | Sun, 15 Jan 2023 23:13:33 +0900 |
parents | 6b354277f2d1 |
children | 4bc5a633437c |
rev | line source |
---|---|
68 | 1 // ==UserScript== |
2 // @name suruga-ya fixes | |
3 // @namespace https://myconan.net | |
106
42fbeb68c0e5
Product id may contain uppercase letters
nanaya <me@nanaya.net>
parents:
105
diff
changeset
|
4 // @version 2.0.1 |
105 | 5 // @description Show all products with fast image |
68 | 6 // @author nanaya |
7 // @match https://www.suruga-ya.jp/* | |
8 // @grant none | |
82 | 9 // @downloadURL https://hg.myconan.net/ec-userscripts/raw-file/tip/surugaya-fixes.user.js |
68 | 10 // ==/UserScript== |
11 | |
105 | 12 'use strict' |
13 | |
14 // always inject adult consent cookie | |
68 | 15 ;(function () { |
16 const hasAdultCookie = document.cookie.split('; ').includes('adult=1') | |
105 | 17 if (!hasAdultCookie) { |
18 const d = new Date() | |
19 d.setTime(d.getTime() + (100 * 24 * 60 * 60 * 1000)) | |
20 document.cookie = `adult=1; expires=${d.toGMTString()}; path=/` | |
21 window.location.reload() | |
22 } | |
23 })() | |
68 | 24 |
105 | 25 // skip loading image through php which seems to take forever |
26 ;(function () { | |
106
42fbeb68c0e5
Product id may contain uppercase letters
nanaya <me@nanaya.net>
parents:
105
diff
changeset
|
27 const itemImageRegexp = /photo\.php\?shinaban=([0-9A-Z]+)/ |
105 | 28 function fix (image) { |
29 const origSrc = image.getAttribute('src') | |
30 if (origSrc == null) return | |
31 const found = origSrc.match(itemImageRegexp) | |
32 if (found == null) return | |
33 | |
34 const src = `https://www.suruga-ya.jp/database/pics_light/game/${found[1]}.jpg` | |
35 const setNotFound = () => { | |
36 image.removeEventListener('error', setNotFound) | |
37 image.setAttribute('src', 'https://www.suruga-ya.jp/database/images/no_photo.jpg') | |
38 } | |
39 image.addEventListener('error', setNotFound) | |
40 image.setAttribute('src', src) | |
68 | 41 } |
42 | |
105 | 43 function run (node) { |
44 if (!(node instanceof window.HTMLElement)) return | |
45 | |
46 fix(node) | |
47 for (const image of node.querySelectorAll('img')) { | |
48 fix(image) | |
49 } | |
50 } | |
51 | |
52 function onMutate (mutations) { | |
53 for (const mutation of mutations) { | |
54 for (const node of mutation.addedNodes) { | |
55 run(node) | |
56 } | |
57 } | |
58 } | |
59 | |
60 const observer = new window.MutationObserver(onMutate) | |
61 observer.observe(document, { childList: true, subtree: true }) | |
62 run(document.body) | |
63 })() |