64h
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Фильтр для Google Images c отключенным fallback_zoom. Теперь Imagus ведёт себя более предсказуемо, когда изображение недоступно. Раньше в таких случаях он либо ничего не показывал, либо открывал миниатюру, либо крутил красный круг. Теперь всегда будет красный круг, что логичнее. Код: {"R_Google_Images":{"link":"^google\\.\\S+/imgres\\?imgurl","res":":\nthis.node.IMGS_fallback_zoom = null;\nreturn (new URL($[0])).searchParams.get('imgurl');","img":"^(data:image.+|encrypted-tbn\\d\\.gstatic\\.com/images.+)","loop":2,"to":":\n// Google Images\n// Google Images > Image page > Related images\n// Image Pack > Side frame > Related images\nif (/google\\.\\S+\\/(search\\?\\S+tbm=isch|imgres\\?|search\\?\\S+newwindow=1.+imgrc=)/.test(document.URL)) {\n const element = document.querySelector('a:hover[role=\"button\"]');\n if (element) {\n element.dispatchEvent(new MouseEvent('mousedown', { bubbles: true }));\n return element.href;\n }\n}\n\n// SERP Features: Image Pack\n// moz.com/learn/seo/serp-features#image-pack\n// dataforseo.com/serp-features#images\nif (/google\\.\\S+\\/search/.test(document.URL)) {\n const element = document.querySelector('div:hover[data-docid]');\n if (element) {\n for (const script of document.scripts) {\n if (script.text.includes(element.dataset.docid)) {\n const udecode = (str) =>\n str.replace(/\\\\\\\\u([0-9A-Fa-f]{4})/g, (...args) =>\n String.fromCharCode('0x' + args[1]));\n const re = new RegExp(element.dataset.docid + '\\\\\\\\x22,.+?http.+?(http.+?)\\\\\\\\x22,');\n const url = script.text.match(re)[1];\n return udecode(url);\n }\n }\n }\n}\n\nreturn $[0];"}} | И слегка подправленный goo.gl. Код: {"R_goo.gl":{"link":"^(image|photo)s\\.app\\.goo\\.gl/\\w+","res":":\nconst url = $._.match(/AF_dataServiceRequests.=.+?http.+?,\"(http.+?)\"/)[1];\nconst caption = $._.match(/<img.+?alt=\"(.+?)\"/)?.[1] ?? $._.match(/<title>(.+?)<\\/title>/)?.[1] ?? '';\nreturn [url, caption];"}} | kenko2 Цитата: Прикольно, выходит и код Имагуса можно обходить. Типа у него ниже приоритет чем у внешнего фильтра? | Вроде того. Похоже, можно менять не только какие-то переменные, но и перехватывать вызовы, подменять некоторые функции. Цитата: Может тогда с помощью кода в фильтре и поддержку HLS-видео можно добавить? | С моей дилетантской позиции это видится вполне возможным. |