64h
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: {"Postimages":{"link":"^(postimg\\.cc/(gallery/)?\\w{7,8}/?$)|^(?:i\\.(postimg\\.cc/\\w{7,8})/\\S+$(?<!\\?dl=1))","url":": $[1] || $[3]","res":":\nif ($[2] !== 'gallery/') return [ $._.match(/http[^?\"]+\\?dl=1/)[0], $._.match(/=\"imagename\">([^<]+)/)[1] ]\n\nif (!this.__postimg) {\n this.__postimg = {}\n const P = this.__postimg\n\n P.get_full = (url, spinner) => {\n if (/i\\.postimg\\.cc/.test(url)) return url\n if (spinner) this.show('load')\n const xhr = new XMLHttpRequest()\n xhr.open('GET', /firefox/i.test(navigator.userAgent) ? url : 'https://api.codetabs.com/v1/proxy/?quest=' + url, false)\n xhr.send()\n const full = xhr.responseText.match(/http[^?\"]+\\?dl=1/)[0]\n this.stack[this.TRG.IMGS_album].every((e, i, a) => e[0] === url ? (a[i][0] = full, false) : true)\n return full\n }\n\n P.set_index = 0\n\n P.set_original = this.set\n this.set = s => {\n P.set_index += 1\n const set_index = P.set_index\n const full = P.get_full(s, true)\n if (set_index === P.set_index) return P.set_original(full)\n }\n\n P._preload_original = this._preload\n this._preload = s => P._preload_original(P.get_full(s))\n}\n\nreturn Object.entries(JSON.parse($._.match(/embed_value=([^}]+})/)[1])).map(e => [ 'https://postimg.cc/' + e[0], e[1][0] ])"}} | Новый фильтр для Postimages с поддержкой галерей. На замену двум старым. Postimages не даёт вытаскивать оригинальные изображения из кода страницы галереи, они доступны только на страницах картинок. Проблему удалось решить с помощью перехвата пары функций Imagus и редактирования внутреннего стека ссылок. Кроме того, если браузер не Firefox, фильтр отправляет свои запросы через CORS Proxy. Это нужно, чтобы работало в Chrome. Примеры: https://postimg.cc/gallery/FR7ccqD https://postimg.cc/gallery/9F7pF6g https://postimg.cc/GHz3dRL8 https://i.postimg.cc/RZxW1C2R/IMG-9088.jpg (это ссылка на уменьшенную картинку с разрешением 1067x800, фильтр показывает оригинал) https://www.reddit.com/domain/postimg.cc/ |