From be86551724b60d6192c9b294e452b96106d625a7 Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Thu, 16 Jan 2020 22:01:29 +0100 Subject: [PATCH 01/14] Update to v1.5.0.10 modifications for secondary layout --- gis-vib.user.js | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 3212606..5c67170 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.8 +// @version 1.5.0.10 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -92,18 +92,32 @@ const SBItxt = srch[pgL] || srch[pgL.split('-')[0]] || srch[navigator.language] function addButton(node) { if (node.nodeType === Node.ELEMENT_NODE) { - if (node.classList.contains('irc_ris') || node.classList.contains('irc_mi')) { - let container = node.closest('.irc_c'); + if (node.classList.contains('irc_ris') || node.classList.contains('Y6heUd') || node.classList.contains('irc_mi')) { + let container; + if (node.classList.contains('Y6heUd')) container = node; + else container = node.closest('.irc_c'); let similarImages = node.querySelectorAll('.rg_l'); + + if (!similarImages.length) { + let block = container.querySelector('div[jsname="ofUehf"]'); + if (block) block.addEventListener('click', function(ev){ + if (ev.target.classList.contains('rg_i')) updateLinkAfterClickOnSimilar(ev); + }); + } + [].forEach.call(similarImages, (image) => { image.addEventListener('click', updateLinkAfterClickOnSimilar); }); let findSrc; try{ - findSrc=container.querySelector(':scope .irc_t .irc_mi').src || container.querySelector(':scope .irc_t .irc_mut').src; + findSrc=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb').src || container.querySelector(':scope .irc_t .irc_mut').src; let focus=document.querySelector('.irc-s'); + if (!focus) { + let tbnID=container.parentNode.dataset['tbnid']; + if (tbnID) focus=document.querySelector('div[data-tbnid="'+tbnID+'"]'); + } if (focus) { let RE=new RegExp('^(?:'+location.origin+')?\/imgres[\?&]imgurl=([^&]*)'); for (let k of focus.querySelectorAll('a')) { @@ -116,14 +130,19 @@ function addButton(node) { }catch(e){} let thumbnail = node.querySelector('.irc_rimask.irc_rist'); - let src = findSrc || unescape(thumbnail.querySelector('.rg_l').href.match(/imgurl=([^&]+)/)[1]); + let src = bigSrc[findSrc] || findSrc || unescape(thumbnail.querySelector('.rg_l').href.match(/imgurl=([^&]+)/)[1]); + delete bigSrc[findSrc]; let buttons = container.querySelector('.irc_but_r tr'); // new version let nv=false; if (!buttons) { buttons = container.querySelector('.Qc8zh > .irc_ab'); - nv=true; + nv=1; + } + if (!buttons) { + buttons = container.querySelector('.fwCBrd'); + nv=2 } let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); @@ -135,7 +154,7 @@ function addButton(node) { sp.innerText = localizedViewImage; // remove icon and style sp.parentNode.removeChild(sp.previousElementSibling); - sp.className=''; + if (nv==1) sp.className=''; let link = nv ? button : button.querySelector('a'); link.href = src; @@ -152,10 +171,10 @@ function addButton(node) { // adding "Search by image" let lnks = container.querySelector('.irc_b .irc_hd .irc_dsh'); - let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk'; + let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk dPO1Qe'; if (!lnks) { - lnks = container.querySelector('.irc_ft').parentNode; - cls += ' irc_help'; + lnks = container.querySelector('.irc_ft, .yKbIbb').parentNode; + cls += ' irc_help PvkmDc'; style = ''; } let lnkSBI = document.createElement('a'); @@ -176,8 +195,11 @@ function addButton(node) { } } +var bigSrc={}; function updateLinkAfterClickOnSimilar({target:node}) { - let src = unescape(node.closest('.rg_l').href.match(/imgurl=([^&]+)/)[1]); + let src = unescape(node.closest('.rg_l, a').href.match(/imgurl=([^&]+)/)[1]); + let i = node.src; + if (i) bigSrc[i]=src; let container = node.closest('.irc_c'); let button = container.querySelector('.mgisga'); let link = button.querySelector('a'); From 9e136da80a38245dac0f470563182f8134d5083e Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Mon, 16 Mar 2020 00:59:43 +0100 Subject: [PATCH 02/14] Update to v1.5.0.11 Small fix for the "search by image" link --- gis-vib.user.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 5c67170..f694d5a 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.10 +// @version 1.5.0.11 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -173,18 +173,20 @@ function addButton(node) { let lnks = container.querySelector('.irc_b .irc_hd .irc_dsh'); let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk dPO1Qe'; if (!lnks) { - lnks = container.querySelector('.irc_ft, .yKbIbb').parentNode; + lnks = (lnks=container.querySelector('.irc_ft, .yKbIbb, .Beeb4e')) && lnks.parentNode; cls += ' irc_help PvkmDc'; style = ''; } - let lnkSBI = document.createElement('a'); - let RE=/.*[\?&](hl=[^&]+)/.exec(location.search); // catch last &hl=xx parameter - lnkSBI.setAttribute('hrefbase','/searchbyimage?'+(RE?RE[1]+'&':'')+'image_url='); - lnkSBI.setAttribute('target','_blank'); - lnkSBI.setAttribute('class',cls); - lnkSBI.setAttribute('style',style); - lnkSBI.innerText= SBItxt; - lnks.appendChild(lnkSBI); + if (lnks) { + let lnkSBI = document.createElement('a'); + let RE=/.*[\?&](hl=[^&]+)/.exec(location.search); // catch last &hl=xx parameter + lnkSBI.setAttribute('hrefbase','/searchbyimage?'+(RE?RE[1]+'&':'')+'image_url='); + lnkSBI.setAttribute('target','_blank'); + lnkSBI.setAttribute('class',cls); + lnkSBI.setAttribute('style',style); + lnkSBI.innerText= SBItxt; + lnks.appendChild(lnkSBI); + } } let link = nv ? button : button.querySelector('a'); From b05d986bf3e56923cf7c6708a0b577b5e7770161 Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Wed, 22 Apr 2020 01:38:49 +0200 Subject: [PATCH 03/14] update to v1.5.0.12 fix for color of "search by image" link --- gis-vib.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index f694d5a..3a5f873 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.11 +// @version 1.5.0.12 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -174,7 +174,7 @@ function addButton(node) { let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk dPO1Qe'; if (!lnks) { lnks = (lnks=container.querySelector('.irc_ft, .yKbIbb, .Beeb4e')) && lnks.parentNode; - cls += ' irc_help PvkmDc'; + cls = cls.replace(/dPO1Qe/,'') + ' irc_help PvkmDc So4Urb'; style = ''; } if (lnks) { From 462140d8c82e24e70ec9f45a43bbac93b947b55f Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Mon, 26 Oct 2020 15:21:07 +0100 Subject: [PATCH 04/14] update to v1.5.0.14 Fixes to get the real url intead of smaller size --- gis-vib.user.js | 74 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 11 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 3a5f873..106fe2d 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @name Google Search "View Image" Button +// @name Google Search "View Image" Button BETA // @name:ru Google Search кнопка "Показать в полном размере" // @name:sl Gumb "Ogled slike" na Google Slikah // @name:uk Google Search кнопка "Показати зображення" @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.12 +// @version 1.5.0.14 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -90,6 +90,17 @@ const pgL=document.documentElement.lang; const localizedViewImage = lang[pgL] || lang[pgL.split('-')[0]] || lang[navigator.language] || lang[navigator.language.split('-')[0]] || lang['en']; const SBItxt = srch[pgL] || srch[pgL.split('-')[0]] || srch[navigator.language] || srch[navigator.language.split('-')[0]] || srch['en']; +var Btn_1, Btn_2; +var RE=new RegExp('^(?:'+location.origin+')?\/imgres[\?&]imgurl=([^&]*)'); + +var dataN; +document.querySelectorAll('script').forEach((s)=>{ + let c=s.innerText; + if (c.startsWith('AF_initDataCallback') && c.length>100) { + dataN=s; + } + }) + function addButton(node) { if (node.nodeType === Node.ELEMENT_NODE) { if (node.classList.contains('irc_ris') || node.classList.contains('Y6heUd') || node.classList.contains('irc_mi')) { @@ -97,6 +108,8 @@ function addButton(node) { if (node.classList.contains('Y6heUd')) container = node; else container = node.closest('.irc_c'); + let inView = container.parentNode.style.display !== "none"; + let similarImages = node.querySelectorAll('.rg_l'); if (!similarImages.length) { @@ -110,16 +123,15 @@ function addButton(node) { image.addEventListener('click', updateLinkAfterClickOnSimilar); }); - let findSrc; + let findSrc, focus, tbnID, t; try{ - findSrc=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb').src || container.querySelector(':scope .irc_t .irc_mut').src; - let focus=document.querySelector('.irc-s'); + findSrc=((t=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb')) && t.src) || ((t=container.querySelector(':scope .irc_t .irc_mut')) && t.src); + focus=document.querySelector('.irc-s'); if (!focus) { - let tbnID=container.parentNode.dataset['tbnid']; + tbnID=container.parentNode.dataset['tbnid']; if (tbnID) focus=document.querySelector('div[data-tbnid="'+tbnID+'"]'); } - if (focus) { - let RE=new RegExp('^(?:'+location.origin+')?\/imgres[\?&]imgurl=([^&]*)'); + if (badImg(findSrc) && focus) { for (let k of focus.querySelectorAll('a')) { if (RE.test(k.href)) { findSrc=unescape(RegExp.$1); @@ -127,11 +139,25 @@ function addButton(node) { } } } + + if (badImg(findSrc) && dataN) { + let u= new RegExp('"'+tbnID+'".*?\\[.*?\\[(".*?"),','s').exec(dataN.innerText); + if (u && u[1]) findSrc=unescape(JSON.parse(u[1])); + } + }catch(e){} + if (focus && inView && badImg(findSrc)) { + obsFocus.observe(focus,{ + childList: false, + subtree: true, + attributes: true, + attributeFilter: [ "href", "src" ] + }); + } + let thumbnail = node.querySelector('.irc_rimask.irc_rist'); let src = bigSrc[findSrc] || findSrc || unescape(thumbnail.querySelector('.rg_l').href.match(/imgurl=([^&]+)/)[1]); - delete bigSrc[findSrc]; let buttons = container.querySelector('.irc_but_r tr'); // new version @@ -142,7 +168,7 @@ function addButton(node) { } if (!buttons) { buttons = container.querySelector('.fwCBrd'); - nv=2 + nv=2; } let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); @@ -172,11 +198,14 @@ function addButton(node) { // adding "Search by image" let lnks = container.querySelector('.irc_b .irc_hd .irc_dsh'); let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk dPO1Qe'; + if (!lnks) { lnks = (lnks=container.querySelector('.irc_ft, .yKbIbb, .Beeb4e')) && lnks.parentNode; - cls = cls.replace(/dPO1Qe/,'') + ' irc_help PvkmDc So4Urb'; + cls = cls.replace(/dPO1Qe/,''); + cls += ' irc_help PvkmDc So4Urb'; style = ''; } + if (lnks) { let lnkSBI = document.createElement('a'); let RE=/.*[\?&](hl=[^&]+)/.exec(location.search); // catch last &hl=xx parameter @@ -193,10 +222,27 @@ function addButton(node) { link.href = src; link = container.querySelector('.SBIlnk'); link.href = link.attributes.hrefbase.value + encodeURIComponent(src); + if (inView) { + Btn_1=button; + Btn_2=link; + } } } } +function badImg(u) { + if (!u || u.startsWith('data:') || /^https?:\/\/[^\/]*?\.gstatic\.com\//.test(u)) return true; +} + +function updButton(url,src) { + let u; + if ( ((u=RE.exec(url)) && (u=u[1])) || (u=src) ) { + u=unescape(u); + Btn_1.href=u; + Btn_2.href=Btn_2.attributes.hrefbase.value + encodeURIComponent(u); + } +} + var bigSrc={}; function updateLinkAfterClickOnSimilar({target:node}) { let src = unescape(node.closest('.rg_l, a').href.match(/imgurl=([^&]+)/)[1]); @@ -226,4 +272,10 @@ observer.observe(document.body, { subtree: true }); +var obsFocus = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + updButton(mutation.target.href, mutation.target.src); + }); + }); + addButton(document.body); From 8d61c5a19bcc96b2ac95394a9cd46a369e270dab Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Mon, 26 Oct 2020 15:37:14 +0100 Subject: [PATCH 05/14] update to 1.5.0.14 Fixes to get the real url intead of smaller size --- gis-vib.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 106fe2d..1225dd2 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @name Google Search "View Image" Button BETA +// @name Google Search "View Image" Button // @name:ru Google Search кнопка "Показать в полном размере" // @name:sl Gumb "Ogled slike" na Google Slikah // @name:uk Google Search кнопка "Показати зображення" From 150dacf1070390ca348500ee6138131e030c853b Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Sun, 21 Mar 2021 16:34:07 +0100 Subject: [PATCH 06/14] update to 1.5.0.15 handling of new test layout --- gis-vib.user.js | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 1225dd2..5583c31 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @name Google Search "View Image" Button +// @name Google Search "View Image" Button BETA // @name:ru Google Search кнопка "Показать в полном размере" // @name:sl Gumb "Ogled slike" na Google Slikah // @name:uk Google Search кнопка "Показати зображення" @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.14 +// @version 1.5.0.15 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -123,9 +123,13 @@ function addButton(node) { image.addEventListener('click', updateLinkAfterClickOnSimilar); }); + + let data=dataN.innerText.replace(/^AF_initDataCallback\((.*)\);$/s,"$1"); + let findSrc, focus, tbnID, t; try{ findSrc=((t=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb')) && t.src) || ((t=container.querySelector(':scope .irc_t .irc_mut')) && t.src); + focus=document.querySelector('.irc-s'); if (!focus) { tbnID=container.parentNode.dataset['tbnid']; @@ -147,14 +151,14 @@ function addButton(node) { }catch(e){} - if (focus && inView && badImg(findSrc)) { - obsFocus.observe(focus,{ - childList: false, - subtree: true, - attributes: true, - attributeFilter: [ "href", "src" ] - }); - } +if (focus && inView && badImg(findSrc)) { + obsFocus.observe(focus,{ + childList: false, + subtree: true, + attributes: true, + attributeFilter: [ "href", "src" ] + }); + } let thumbnail = node.querySelector('.irc_rimask.irc_rist'); let src = bigSrc[findSrc] || findSrc || unescape(thumbnail.querySelector('.rg_l').href.match(/imgurl=([^&]+)/)[1]); @@ -170,16 +174,22 @@ function addButton(node) { buttons = container.querySelector('.fwCBrd'); nv=2; } + if (!buttons) { + buttons = container.querySelector('.kEwVtd'); + nv=3; + } let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); if (button === null) { - let openButton = buttons.querySelector(nv ? 'a' : 'td'); + let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf' : 'a' ) : 'td'); + button = openButton.cloneNode(true); - let sp=button.querySelector(nv ? 'div span:nth-child(2)' : 'a span:nth-child(2)'); + let sp=button.querySelector(nv ? ( nv==3? 'div span':'div span:nth-child(2)' ) : 'a span:nth-child(2)'); sp.innerText = localizedViewImage; + sp.style='padding:0;'; // remove icon and style - sp.parentNode.removeChild(sp.previousElementSibling); + try{sp.parentNode.removeChild(sp.previousElementSibling);}catch(e){} if (nv==1) sp.className=''; let link = nv ? button : button.querySelector('a'); @@ -193,12 +203,14 @@ function addButton(node) { button.classList.add('mgisga'); if (nv && button.classList.contains('irc_hol')) button.style='margin-left: 8px;'; - openButton.after(button); + if (nv==3) openButton.before(button); + else openButton.after(button); // adding "Search by image" let lnks = container.querySelector('.irc_b .irc_hd .irc_dsh'); let style = 'margin-left:1em', cls = 'o5rIVb SBIlnk dPO1Qe'; + if (!lnks) { lnks = (lnks=container.querySelector('.irc_ft, .yKbIbb, .Beeb4e')) && lnks.parentNode; cls = cls.replace(/dPO1Qe/,''); @@ -231,7 +243,9 @@ function addButton(node) { } function badImg(u) { - if (!u || u.startsWith('data:') || /^https?:\/\/[^\/]*?\.gstatic\.com\//.test(u)) return true; + if (!u || u.startsWith('data:') || /^https?:\/\/[^\/]*?\.gstatic\.com\//.test(u)) { + return true; + } } function updButton(url,src) { From 026039683576e7e891f4320ce69387b527e123c9 Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Sun, 21 Mar 2021 16:51:19 +0100 Subject: [PATCH 07/14] Update gis-vib.user.js --- gis-vib.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 5583c31..72c0ebb 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @name Google Search "View Image" Button BETA +// @name Google Search "View Image" Button // @name:ru Google Search кнопка "Показать в полном размере" // @name:sl Gumb "Ogled slike" na Google Slikah // @name:uk Google Search кнопка "Показати зображення" From 55f326bef35d5ece5a511cdc5cfd438cb343c1b7 Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 30 Jul 2021 20:22:00 +0200 Subject: [PATCH 08/14] update to 1.5.0.16 the name of a style has changed --- gis-vib.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 72c0ebb..d294cce 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -181,7 +181,7 @@ if (focus && inView && badImg(findSrc)) { let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); if (button === null) { - let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf' : 'a' ) : 'td'); + let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c' : 'a' ) : 'td'); button = openButton.cloneNode(true); From 5fa088c8f4bcbcdc7c45fdf799b6db3dbdb73deb Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 30 Jul 2021 20:23:41 +0200 Subject: [PATCH 09/14] update to 1.5.0.16 and ... forgot to update version number --- gis-vib.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index d294cce..4b0f74e 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.15 +// @version 1.5.0.16 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. From f157a8dd3c78f24f79bf86ce0ce721a5a684d28e Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Mon, 30 May 2022 04:02:27 +0200 Subject: [PATCH 10/14] update to 1.5.0.17 update button's classname --- gis-vib.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 4b0f74e..1e35276 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.16 +// @version 1.5.0.17 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -181,7 +181,7 @@ if (focus && inView && badImg(findSrc)) { let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); if (button === null) { - let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c' : 'a' ) : 'td'); + let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c, a.jAklOc' : 'a' ) : 'td'); button = openButton.cloneNode(true); From 60ec7a32daeda754aedd0b44c63cbff7069f49cc Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 17 Mar 2023 21:21:46 +0100 Subject: [PATCH 11/14] update to 1.5.0.18 update classnames --- gis-vib.user.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 1e35276..06f6c7f 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.17 +// @version 1.5.0.18 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -103,9 +103,9 @@ document.querySelectorAll('script').forEach((s)=>{ function addButton(node) { if (node.nodeType === Node.ELEMENT_NODE) { - if (node.classList.contains('irc_ris') || node.classList.contains('Y6heUd') || node.classList.contains('irc_mi')) { + if (node.classList.contains('irc_ris') || node.classList.contains('Y6heUd') || node.classList.contains('BfYA2c') || node.classList.contains('irc_mi')) { let container; - if (node.classList.contains('Y6heUd')) container = node; + if (node.classList.contains('Y6heUd') || node.classList.contains('BfYA2c')) container = node; else container = node.closest('.irc_c'); let inView = container.parentNode.style.display !== "none"; @@ -128,7 +128,7 @@ function addButton(node) { let findSrc, focus, tbnID, t; try{ - findSrc=((t=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb')) && t.src) || ((t=container.querySelector(':scope .irc_t .irc_mut')) && t.src); + findSrc=((t=container.querySelector(':scope .irc_t .irc_mi, :scope .n3VNCb, :scope .r48jcc')) && t.src) || ((t=container.querySelector(':scope .irc_t .irc_mut')) && t.src); focus=document.querySelector('.irc-s'); if (!focus) { @@ -175,13 +175,13 @@ if (focus && inView && badImg(findSrc)) { nv=2; } if (!buttons) { - buttons = container.querySelector('.kEwVtd'); + buttons = container.querySelector('.kEwVtd, .QCk63e'); nv=3; } let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); if (button === null) { - let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c, a.jAklOc' : 'a' ) : 'td'); + let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c, a.jAklOc, a.uZ49bd' : 'a' ) : 'td'); button = openButton.cloneNode(true); From f6a344715e205c1fb1509ec1111d9100192e3e5e Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 28 Jul 2023 00:33:35 +0200 Subject: [PATCH 12/14] update to 1.5.0.18 2 new buttons layouts --- gis-vib.user.js | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/gis-vib.user.js b/gis-vib.user.js index 06f6c7f..d1c037b 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -12,7 +12,7 @@ // @name:tr Google Görseller "Resmi Görüntüle" butonu // @namespace https://github.com/devunt/make-gis-great-again // @icon https://raw.githubusercontent.com/devunt/make-gis-great-again/master/icons/icon.png -// @version 1.5.0.18 +// @version 1.5.0.19 // @description This userscript adds "View Image" button to Google Image Search results. // @description:ru Этот скрипт добавляет кнопку "Показать в полном размере" к результатам Google Image Search. // @description:sl Ponovno prikaže gumb "Ogled slike" na Google Slikah. @@ -178,21 +178,34 @@ if (focus && inView && badImg(findSrc)) { buttons = container.querySelector('.kEwVtd, .QCk63e'); nv=3; } + if (!buttons) { + buttons = container.querySelector('[jsname="St5Dhe"]'); + nv=4; + } - let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'); + let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'), + pn=false; if (button === null) { - let openButton = buttons.querySelector(nv ? (nv==3? 'a.ZsbmCf, a.J2oL9c, a.jAklOc, a.uZ49bd' : 'a' ) : 'td'); - + let openButton = buttons.querySelector(nv ? (nv >= 3 ? 'a.ZsbmCf, a.J2oL9c, a.jAklOc, a.uZ49bd, a.wvfN0b' : 'a' ) : 'td'); button = openButton.cloneNode(true); - let sp=button.querySelector(nv ? ( nv==3? 'div span':'div span:nth-child(2)' ) : 'a span:nth-child(2)'); + if ( (nv == 4) && (openButton.parentNode.childNodes.length == 1) ) { + openButton=openButton.parentNode; + button = openButton.cloneNode(true); + pn=true; + } + let sp=button.querySelector(nv ? ( nv >= 3 ? 'div span':'div span:nth-child(2)' ) : 'a span:nth-child(2)'); + if (!sp && (nv == 4)) { + button.firstChild.firstChild.innerHTML=''; + sp=button.firstChild.firstChild.firstChild; + } sp.innerText = localizedViewImage; - sp.style='padding:0;'; + sp.style.padding='0'; // remove icon and style try{sp.parentNode.removeChild(sp.previousElementSibling);}catch(e){} if (nv==1) sp.className=''; - let link = nv ? button : button.querySelector('a'); + let link = nv && !pn ? button : button.querySelector('a'); link.href = src; if (!nv) link.className = ''; link.removeAttribute('data-cthref'); @@ -203,7 +216,7 @@ if (focus && inView && badImg(findSrc)) { button.classList.add('mgisga'); if (nv && button.classList.contains('irc_hol')) button.style='margin-left: 8px;'; - if (nv==3) openButton.before(button); + if (nv >= 3) openButton.before(button); else openButton.after(button); // adding "Search by image" From c342449dedbd772b562072d9ad6aae519b4e3979 Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 28 Jul 2023 00:57:24 +0200 Subject: [PATCH 13/14] update to 1.5.0.19 From 18bda78105ee353c8e0ee834ab353641705ea33d Mon Sep 17 00:00:00 2001 From: Marc Boucher Date: Fri, 28 Jul 2023 01:00:07 +0200 Subject: [PATCH 14/14] update to 1.5.0.19 --- gis-vib.user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/gis-vib.user.js b/gis-vib.user.js index d1c037b..016fb68 100644 --- a/gis-vib.user.js +++ b/gis-vib.user.js @@ -185,6 +185,7 @@ if (focus && inView && badImg(findSrc)) { let button = buttons.querySelector(nv? 'a.mgisga' : 'td.mgisga'), pn=false; + if (button === null) { let openButton = buttons.querySelector(nv ? (nv >= 3 ? 'a.ZsbmCf, a.J2oL9c, a.jAklOc, a.uZ49bd, a.wvfN0b' : 'a' ) : 'td');