Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Imagus (Часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие темы: Часть 1

Автор - Deathamns [snmahtaeD] | Сообщество на Reddit
СКАЧАТЬ IMAGUS | СТРАНИЦА НА РУССКОМ Rodny (первый автор данной темы)


Всего записей: 39672 | Зарегистр. 26-02-2002 | Отправлено: 23:06 05-12-2021 | Исправлено: kenko2, 14:22 15-10-2025
hababr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple

Цитата:
нет, cors в браузере скрипту не даёт принять ответ от запроса, не важно что ты передашь в запрос
 

Это как так? CORS управляется заголовками, а SimpleModifyHeaders меняет заголовки как надо. Могу посмотреть фильтр, который не работает с включенным CORS, можно ли для него настроить SimpleModifyHeaders.

Всего записей: 161 | Зарегистр. 21-07-2014 | Отправлено: 16:04 15-05-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Цитата:
А что его можно отключить прямо в браузере? Это было бы интересно.

greeple
Цитата:
ну ещё есть вариант в браузере выключить cors --disable-web-security --disable-site-isolation-trials (второй флаг не помню зачем добавлял, но вроде с первым уже работают запросы)
а ну и ещё такой --user-data-dir=%TMP%\temporary-chrome-profile-dir чтобы профиль в темпе пустой был, не знаю без него будет работать тот флаг или нет, по идее должен

или расширением вот https://chromewebstore.google.com/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

Цитата:
У меня сегодня YT стал выдавать ошибку "LOGIN REQUIRED..." вместо всплывашки.

в embed тоже? может теперь по другому он отдаёт видео напрямую, ну так как ютуб всемирно-популярный, пофиксят быстро
 
Добавлено:
hababr
Цитата:
CORS управляется заголовками

нет браузер не даёт делать запросы, есть запрос через fetch с mode: "no-cors", но так fastpic отдаёт пустую строку
ну и заголовки можно сразу тут в запросе добавлять если там нет каких-то доп. условий которые только через второе расширение нужно делать.
 
ну хотя да, если это вот расширение включить https://chromewebstore.google.com/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf то нормально запросы проходят, я его не проверял потому что оно не со всеми сайтами работает, некоторые даже с ним не дают делать запросы

Цитата:
Могу посмотреть фильтр, который не работает с включенным CORS, можно ли для него настроить SimpleModifyHeaders.

ну посмотри вот этот Imagus (Часть 2) там вместо прокси сделать обычный запрос https://api.allorigins.win/get?url=

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 16:07 15-05-2025 | Исправлено: greeple, 16:41 15-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple

Цитата:
в embed тоже?

Да.
 

Код:
--disable-web-security --disable-site-isolation-trials

Спасибо, не знал про них. А этот ключ обязателен? -

Код:
--user-data-dir=%TMP%\temporary-chrome-profile-dir

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 16:56 15-05-2025 | Исправлено: kenko2, 17:01 15-05-2025
hababr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Вот чуть изменил код, чтобы без прокси работало:
Код:
{"TEST__RuTracker|Pornolab-p":{"link":"(rutracker\\.org|pornolab.net)/forum/viewtopic\\.php(?!.+&).+","res":":\ndebugger;\nlet res = [];\n// вытащим одну большую постерину-баннер со страницы\nlet re = /class=\\\"postImg postImgAligned img-right\\\".+?=\\\"([^\\\"]+)/gi;\nlet a = re.exec($._);\nif (a) {\n\tif (a[1].includes(\"ipicture.ru\") ||\n\t\ta[1].includes(\"tinypic.com\") ||\n\t\ta[1].includes(\"imageshack.us\") ||\n\t\ta[1].includes(\"10pix.ru\") ||\n\t\ta[1].includes(\"imgur.com\") ||\n\t\ta[1].includes(\"photobucket.com\") ||\n\t\ta[1].includes(\"radikal.ru\") ||\n\t\ta[1].includes(\"vfl.ru\") ||\n\t\ta[1].includes(\"lostpic.tk\")) {\n\t\tres.push([\"https://static.t-ru.org/smiles/tr_oops.gif\"]);\n\t} else {\n\t\tres.push([a[1]]); // она и будет первым объектом для показа\n\t}\n} else return null;\n\n// Извлечение основного блока\nconst mainContent = $._;\nconst startMarker = '<span>Скриншоты</span></div>';\nconst endMarker = '</div>';\nconst contentBlock = (mainContent.split(startMarker)[1] || '').split(endMarker)[0] || '';\n\n// Парсинг ссылок\nconst parser = new DOMParser();\nconst doc = parser.parseFromString(contentBlock, 'text/html');\nconst links = Array.from(doc.querySelectorAll('a'));\n\n// Синхронная обработка ссылок\nfor (const link of links) {\n\ttry {\n\t\tif (link.href.includes(\"ipicture.ru\") ||\n\t\t\tlink.href.includes(\"tinypic.com\") ||\n\t\t\tlink.href.includes(\"imageshack.us\") ||\n\t\t\tlink.href.includes(\"10pix.ru\") ||\n\t\t\tlink.href.includes(\"imgur.com\") ||\n\t\t\tlink.href.includes(\"photobucket.com\") ||\n\t\t\tlink.href.includes(\"radikal.ru\") ||\n\t\t\tlink.href.includes(\"vfl.ru\") ||\n\t\t\tlink.href.includes(\"lostpic.tk\")) {\n\t\t\tres.push([\"https://static.t-ru.org/smiles/tr_oops.gif\"]);\n\t\t} else {\n\t\t\tif (!link.href.includes(\"fastpic.\")) // пока вытаскивать FullImage будем лишь с него\n\t\t\t\tres.push([link.href])\n\t\t\telse {\n\t\t\t\t// Формируем URL для прокси. Нам надо же БОЛЬШОЕ оригинальное фото скриншота, поэтому ...\n\t\t\t\tconst regex = /i(\\d+)\\.fastpic\\.(ru|org)\\/(?:thumb|big)\\/(\\d{2,4}\\/\\d{2,4})\\/[\\da-f]{2}(\\/.+)$/;\n\t\t\t\tconst match = link.href.match(regex);\n\t\t\t\tif (match) {\n\t\t\t\t\t// ... мы формируем новую ссылку по правилу:\n\t\t\t\t\tlet url = `https://fastpic.${match[2]}/fullview/${match[1]}/${match[3]}${match[4]}`;\n\n\t\t\t\t\tconst encoded = encodeURIComponent(url);\n\t\t\t\t\tconst proxyUrl = `https://api.allorigins.win/get?url=${encoded}`;\n\t\t\t\t\t// Синхронный XHR\n\t\t\t\t\tconst xhr = new XMLHttpRequest();\n\t\t\t\t\t// xhr.open('GET', proxyUrl, false); // false = синхронный режим\n\t\t\t\t\txhr.open('GET', url, false); // false = синхронный режим\n\t\t\t\t\txhr.send();\n\n\t\t\t\t\tif (xhr.status !== 200) continue;\n\n\t\t\t\t\t// Парсинг ответа\n\t\t\t\t\t// const data = JSON.parse(xhr.responseText);\n\t\t\t\t\t// const cleanHtml = data.contents.replace(/\\s+/g, '');\n\t\t\t\t\tconst cleanHtml = xhr.responseText.replace(/\\s+/g, '');\n\n\t\t\t\t\t// Извлечение URL\n\t\t\t\t\tconst imgMatch = cleanHtml.match(/varloading_img='(.*?)(?=')/i);\n\t\t\t\t\tif (!imgMatch) continue;\n\n\t\t\t\t\turl = imgMatch[1];\n\t\t\t\t\tif (typeof url === 'string' && url.startsWith('http')) {\n\t\t\t\t\t\tres.push([url]);\n\t\t\t\t\t}\n\t\t\t\t} else\n\t\t\t\t\tres.push([link.href]);\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.debug('Ошибка обработки:', link.href, e.message);\n\t}\n}\n\n// Вывод результата только после всей обработки\nconsole.log(res);\n\nreturn res;","note":"destiny child\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=1600#9\n\n\n!!!\nТолько для внешних ссылок. Показывает постер + миниатюры скриншотов.\n==\nOnly for external links. Shows the poster + thumbnails of screenshots.\n\n\nПРИМЕРЫ\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=1360#11"}}

Вот это правило для SimpleModifyHeaders:
Код:
fastpic.org/fullview
Add
Access-Control-Allow-Origin
*
fastpic
Response
 
 
 
 

Всего записей: 161 | Зарегистр. 21-07-2014 | Отправлено: 17:16 15-05-2025 | Исправлено: hababr, 17:16 15-05-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Цитата:
Спасибо, не знал про них. А этот ключ обязателен?

не знаю, не проверял, где-то видел что с ним был --disable-web-security так и добавил себе, может и не нужен
но проще наверно как hababr сказал в smh добавить заголовки (если там оно будет работать) раз расширением (которое выше скинул) работает отключение cors, если всё равно его используете всегда
 
Добавлено:
hababr
Цитата:
Вот чуть изменил код, чтобы без прокси работало

а прокрутка работает полных скриншотов на рутрекере? у меня на ноуте просто не прокручивает
 
Добавлено:
надо на мыше что ли проверять

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 17:18 15-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hababr
Спасибо, проверил, постер нормально, но на скринах красный спиннер. В консоли просто "Load error" напротив картинок (не ошибка). Хотя один раз вылезло вот такое. Это в Chrome 137.
На FF результат чуть получше - иногда (рандомно) показывает миниатюры вместо полного размера и рядом может показать полный размер. Получается как бы две всплывашки - одна с миниатюрой, другая с полным размером. Но в основном только миниатюры. Ну и "красный спиннер" и "load error" в консоли тоже появляются.
 
greeple

Цитата:
не знаю, не проверял, где-то видел что с ним был --disable-web-security так и добавил себе, может и не нужен
но проще наверно как hababr сказал в smh добавить заголовки (если там оно будет работать)

Да лучше наверное правилом для SMH, оно работает точечно. А эти ключи и CORS блокер рубят все, это снижает безопасность. Пользователи просто не поймут.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 17:31 15-05-2025 | Исправлено: kenko2, 17:45 15-05-2025
hababr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Я только продемонстрировал как CORS обойти. В том фильтре один fastpic, без ImageBan.
 
Добавлено:
greeple

Цитата:
а прокрутка работает полных скриншотов на рутрекере? у меня на ноуте просто не прокручивает

Работает. Пробуй space, right, pgdown.

Всего записей: 161 | Зарегистр. 21-07-2014 | Отправлено: 18:15 15-05-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hababr
Цитата:
Работает. Пробуй space, right, pgdown.

у меня первый запрос делается на обложку, а дальше красный круг
вот на таких работает https://rutracker.org/forum/viewtopic.php?t=5567348 видимо там прямые ссылки (на imageban), а на таких нет https://rutracker.org/forum/viewtopic.php?t=6585761 там обычные view
после  
const regex = /i(\d+)\.fastpic\.(ru|org)\/(?:thumb|big)\/(\d{2,4}\/\d{2,4})\/[\da-f]{2}(\/.+)$/;
                const match = link.href.match(regex);
матч null там
надо доделывать его

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 19:41 15-05-2025 | Исправлено: greeple, 19:42 15-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Даж не знаю как ещё точечно описать ситуацию.
Код скрипта НЕ БЫЛ ПРЕДНАЗНАЧЕН для полноценного тестирования и работы на всех типах ссылок на хостинги)))))))
Только на рутрекер и только на один тип fastpic  ссылок и спецом была дана одна ссылка на такую раздачу, чтоб 1-к-1 всё было.
Всё! Проверять только на ней если что и надо было.
И если сможем понять и получить очень быстро работающий код, игнорирующий cоrps, то тогда уже и будем масштабировать код скрипта на другие хостинги/типы ссылки.
Я даже не ожидал, что вы так объёмно решите тыкать по всем ссылкам, что под рукой окажутся....

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 20:57 15-05-2025 | Исправлено: destiny_child, 21:00 15-05-2025
hababr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child

Цитата:
Код скрипта НЕ БЫЛ ПРЕДНАЗНАЧЕН для полноценного тестирования и работы на всех типах ссылок на хостинги)))))))

Я так и понял.

Цитата:
И если сможем понять и получить очень быстро работающий код, игнорирующий cоrps, то тогда уже и будем масштабировать код скрипта на другие хостинги/типы ссылки.

Что я и продемонстрировал. Он конечно не очень быстрый, т.к. страницы обрабатываются по очереди. Можно подумать как их параллельно обрабатывать.

Всего записей: 161 | Зарегистр. 21-07-2014 | Отправлено: 21:03 15-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple

Цитата:
можно использовать fetch и промисы вместо xmlhttp (ну или асинхронный xml и в промисах) и показывать заглушку пока не загрузятся картинки, а когда загрузятся, то они подгрузятся вместо заглушки, но это думать надо как написать

Я уже это всё проверял. И выявил однозначную закономерность:
Сам Имагус имеет свой таймер допустимости работы над ссылкой.
Вроде как это 5 секунд. После этого, либо будет массив ссылок для показа, либо курсор зависнет в форме бесконечного цветного круга.
Но сам Имагус уже отойдёт от дел.
Поэтому асинхронного тут нечего добавлять. Потому как в принципе если мы обходим corps сторонними проксями - то они офигеть как быстро должны работать. А таких я не видел ещё.
Не важно в сколько потоков мы можем начать выкачивать что-то откуда-то. Если это не произойдёт быстро (как это работает с просто прямыми ссылками на фото) - то этого не будет вовсе....

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 21:05 15-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child

Цитата:
Сам Имагус имеет свой таймер допустимости работы над ссылкой.
Вроде как это 5 секунд.  

Не, маловато что-то. Там наверное еще другие доп.условия должны быть, бывает и через 10-15 сек открывает.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 21:23 15-05-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Цитата:
И если сможем понять и получить очень быстро работающий код, игнорирующий cоrps

ну так в SMH же добавляй правила для адресов
Access-Control-Allow-Origin * для Response
https://a.i.getapic.me/lmld.png там ещё есть миксед контент из за ссылок на http, надо ещё проверку добавить и добавлять s при запросе. И не понятно почему запрос делается на thumb, когда надо на view (хотя это может у меня косяк, после тестов вообще стал делать запросы на рутрекер.org/чтототам/undefined).  
замена протокола

Код:
((link) => {
  const url = new URL(link);
    console.log(url)
  if (url.protocol === "http:") {
    url.protocol = "https:";
    return url.toString();
  } else {
    return link;
  }
})("http://counter.yadro.ru/hit?jdnf")

 
Добавлено:
потом посмотрю свой вариант, запрос надо делать на ссылки из тэга a, а не img

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 22:18 15-05-2025
hababr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child

Цитата:
Не важно в сколько потоков мы можем начать выкачивать что-то откуда-то. Если это не произойдёт быстро (как это работает с просто прямыми ссылками на фото) - то этого не будет вовсе....

Это не так. Проверить просто, можно в devtools затротлить скорость сети и сделать запросы очень медленными. У меня вот сейчас 15 секунд крутился таймер Имаджуса, а потом показались картинки. Это если все запросы синхронные.
 
Второй вариант это асинхронные запросы, для параллельной обработки. Как это работает можно посмотреть в фильтре для Wildberries. Там есть проверка, что если сайт 'global.wildberries.ru' то надо асинхронно работать. Продвинутые фишки отваливаются (сайдбар и видео плейер), но просто карусель картинок работает.
 

Всего записей: 161 | Зарегистр. 21-07-2014 | Отправлено: 22:30 15-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hababr (пост)
Цитата:
У меня вот сейчас 15 секунд крутился таймер Имаджуса, а потом показались картинки. Это если все запросы синхронные.

Ну странности же. Я вот же этот скрипт еще когда отлаживал - именно синхронный - всегда четко после 5/6 сек. ожидания прям
ощутимо вздрагивала ссылка/курсор и всё, даже если потом в консоли - вы там вывод массива со ссылками как раз можете увидеть.
Для целей отладки он там, так вот даже если туда массив выводился - вы увидите все ссылки: четкие и корректные - сам Имагус  
уже НИЧЕГО мне не показывал. Его уже не было в контексте страницы.

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 23:08 15-05-2025 | Исправлено: destiny_child, 18:40 16-05-2025
ZverX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
 
Со вчерашнего дня, перестали открываться изображения в ВК, в ленте и альбомах. На других сайтах всё нормально.
 
Списки в Imagus Mod и SMH обновлены.

Всего записей: 38 | Зарегистр. 21-11-2016 | Отправлено: 12:13 17-05-2025 | Исправлено: ZverX, 12:14 17-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZverX

Цитата:
Со вчерашнего дня, перестали открываться изображения в ВК, в ленте и альбомах. На других сайтах всё нормально.

Вращающийся спиннер появляется при наведении? Или никак не реагирует? Просто это может быть "быстрый бан" сайта. Почитайте п.19 ЧаВо.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 13:31 17-05-2025 | Исправлено: kenko2, 13:33 17-05-2025
ZverX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Вообще никак не реагирует, вращающийся спиннера тоже нет.  
 
Кнопку "G" переназначил. наживал Shift при наведение на изображении, ноль реакции. Иконка расширении - цветная. не серая.
 
А если я всё таки нажал "G" в ВК,  то как вернуть назад?

Всего записей: 38 | Зарегистр. 21-11-2016 | Отправлено: 14:07 17-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZverX

Цитата:
А если я всё таки нажал "G" в ВК,  то как вернуть назад?

В настройках на вкладке "Разрешения" удалите строку с VK если она там есть. Убедитесь еще раз, что вместо "G" у вас намного более сложное сочетание. И нажмите "Сохранить". Сохранить вообще всегда надо нажимать после внесения любых изменений в настройки.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 15:10 17-05-2025 | Исправлено: kenko2, 15:11 17-05-2025
ZverX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
 
Да, проблема оказалась именно в этом, удалил строку и проблема ушла.
Кнопка уже переназначена на сложную комбинацию.
 
Огромное спасибо за помощь! Простите что тупанул.
Может быть в п.19 ЧаВо, добавить пояснение о том - как удалить строчку в "Разрешения", если было случайное нажатие?

Всего записей: 38 | Зарегистр. 21-11-2016 | Отправлено: 15:35 17-05-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Компьютерный форум Ru.Board » Компьютеры » Программы » Imagus (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru