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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
kenko2



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

Цитата:
Обновление для Wildberries.ru, не все товары увеличивались и пара улучшений. 

У меня вроде все там работало, но и эта версия тоже работает, проверил. Добавлю в сборку, спасибо.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 16:38 08-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что ж, я пытался сделать, но чертов СORPS....
Тут же что выходит - мы, находясь в контексте origin rutracker.org, пытаемся разобраться с ссылкой на то же fastpic
НО! если в моем текущем коде - мы просто считываем и показываем эту прямую ссылку на МАЛЕНЬКОЕ изображение,
то тут нет проблем. Ибо это сразу просто прямая ссылка. А вот если мы хотим получить ссылку на ПОЛНУЮ фотку, то
нам надо сделать преобразования имени ссылки, загрузить эту новую ссылку и уже оттуда достать корректную новую
ссылку на увеличенное, полное, искомое изображение. НО это уже смена origin в теле запроса на fastpic.org, а это уже
приводит к срабатыванию правила CORPS((((((((((((
В итоге я не представляю как можно вытаскивать из-под одного правила ссылки на фотки, подходящие под другое
правило. Вот если бы в коде скриптинга существовал какой-то спецобъект IMG_M, которому можно было бы подать на вход
ссылку, а он вернул исправленное, в соответствии со сработавшим каким-то фильтром из общего списка - вот тогда еще бы
было понятно как действовать.
 
Так что если меня научат - буду знать. А пока не работает желаемое...
 
P.S. я кстати не делал фильтр на порнлаб. Похоже его просто когда-то объединили по степени схожести с рутрекером...

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 01:17 13-05-2025 | Исправлено: destiny_child, 01:19 13-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Ок, спасибо за попытку. Как спец на Реддит освободится, я его спрошу. Надеюсь, найдет решение.

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Цитата:
Что ж, я пытался сделать, но чертов СORPS....


Код:
`https://api.allorigins.win/get?url=${encodeURIComponent('https://fastpic.org/view/123/2024/0819/91c22b8ab5899d84ff3c5729f0e8cf03.png.html')}`

 
код у тебя странный какие-то "криншоты" и т.д, непонятный какой-то
 
вот так со страницы можно взять ссылки на скриншоты
 

Код:
var doc = [...new DOMParser().parseFromString((function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})($._,'<span>Скриншоты</span></div>','</div>'), "text/html").querySelectorAll('a')].map(a=>a.href);
console.log(doc)

это будет массив

Код:
[
    "https://fastpic.org/view/124/2025/0330/48cdcbd9dd1b78bc961814269573e47a.jpg.html",
    "https://fastpic.org/view/124/2025/0330/b861a5f08c270820bdf544d7f74cbe8f.jpg.html",
    "https://fastpic.org/view/124/2025/0330/f068d8445727655ee697a19ac4a07d0d.jpg.html",
    "https://fastpic.org/view/124/2025/0330/a34160568462bdb41b7db8b546590986.jpg.html"
]

 
а вот так сразу все большие ссылки (для фастпик)

Код:
var doc = [...new DOMParser().parseFromString((function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})($._,'<span>Скриншоты</span></div>','</div>'), "text/html").querySelectorAll('a')].map(item=>(x=new XMLHttpRequest,x.open("GET",`https://api.allorigins.win/get?url=${encodeURIComponent(item.href)}`,!1),x.send(),(function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})(x.responseText.replace(/\s/g,''),'</span>\\n<imgsrc=\\"','\\')));
 
console.log(doc)

 

Код:
[
    "https://i117.fastpic.org/big/2022/0427/93/317fbea2cef3036c1b416d4ee8ce0793.png?md5=UQRl9vbV_avqictQ2LAGaw&expires=1747173600",
    "https://i117.fastpic.org/big/2022/0427/16/e5987ebd3636804cbedada6778555216.png?md5=fIUepNpx0tWQF2Yn2WuC4w&expires=1747177200",
    "https://i117.fastpic.org/big/2022/0427/4a/f4f4c3b3d9cbacf3f0a73e29a74e134a.png?md5=V8ThSGFlnn-IxbOKnshhAQ&expires=1747177200",
    "https://i117.fastpic.org/big/2022/0427/a8/460eb518ab15bb5072232b13971879a8.png?md5=AhGf6j6emrjmEfIjweW9VA&expires=1747177200",
    "https://i117.fastpic.org/big/2022/0427/2a/b66a8b3ba2e01ffe37fb9791b6a3692a.png?md5=wlaIkeGPxg4t6U_6-e-nTg&expires=1747177200",
    "https://i117.fastpic.org/big/2022/0427/68/fe54ca6109416f6f13990e347c189568.png?md5=5dAF3DXOLObPvwqQ120YxQ&expires=1747177200"
]

можно второй кусок отделить, это я просто тестил
 

Код:
doc.map(item=>(x=new XMLHttpRequest,x.open("GET",`https://api.allorigins.win/get?url=${encodeURIComponent(item.href)}`,!1),x.send(),(function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})(x.responseText.replace(/\s/g,''),'</span>\\n<imgsrc=\\"','\\')));

 
единственное прокси сайт который даёт в обход cors страницы долго первый раз отвечает, потом последующие разы норм
можно было бы ещё использовать fetch(item.href,{mode:"no-cors"}), но так фастпик пустую строку отдаёт

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 17:28 13-05-2025 | Исправлено: greeple, 00:22 14-05-2025
kenko2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Понятно что можно написать много скриптов как вытаскивать оригиналы картинок на сайте. Но это все слишком общее. Все-таки это тема Имагус, она более узкая, и здесь код должен быть именно в формате фильтров Имагус. Тогда и проверить можно будет заодно (потестить).

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Цитата:
Имагус, она более узкая, и здесь код должен быть именно в формате фильтров Имагус. Тогда и проверить можно будет заодно (потестить).

я это в имагусе и тестил, и код в имагусе и дан с $._ вместо document, это для destiny_child сообщение
 
Добавлено:
можешь просто его добавить в фильтр и посмотреть в консоль на странице, console.log(doc) выдаст в консоль то что я показал, ссылки в массиве

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 21:00 14-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Странный)))
Думаете, я затрачивал его на супер идеальное следование канонам поиска по DOM?
Тупо и гарантированно в лоб отрезаем по маркерным словам часть текста и  уже оттуда мы вытаскиваем всё, что совпадает с регэкспом.
А т.к. раньше там был список запрещенных хостингов(много старых раздач на них заточено было), то ещё сверку со списком таковых делал и если совпало, то выводим ooops.gif. Типа "нешмагла".
Остальное подходящее в список выдаю для показа.
 
И ещё причина была не "налегать" на DOMParser: в целях наверное каких-то внутренних задач они формировали итоговый html не в полном соответствии со спецификацией. В итоге этот парсер тупо падал, не находя соответствие тегам. Может и сейчас это ещё осталось где-то....
 
Кстати и в вашем коде хорошо бы не безымянные a b c d переменные вводить в использовании;)
 
Добавлено:
Ну ок. Слегка приукрасим, воткнем куда надо, проверим.
Завтра.

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Цитата:
Кстати и в вашем коде хорошо бы не безымянные a b c d переменные вводить в использовании;)

Это взято из букмарклета, а там каждый символ на счету, да и не зачем там расписывать это всё (abcde в функции бармалеевской из воровайки с chromewebstore, зачем мне расписывать как там написано оно?)
типа такого там было, вызов это уже я с магаза тестил, методом тыка проверял работу, только он знает как правильно использовать (ну или в воровайке можно посмотреть другие вызовы)

Код:
function rip(a, b, c, d, e) {
    return (e = a && a.split(b)[1] || d && a.split(c)[1]) ? e.split(d ? d : c)[0] : ''
}
 
rip(text,'<div class="C-b-p-D-u"><a class="C-b-p-D-u-y h-C-b-p-D-xd-y f4vLXe" href="','"')

а так можно и в ответ про твой написать, про комментарии в коде, которые могли бы быть, раз уж на то пошло, чтобы было понятно что делается и зачем так

Цитата:
Думаете, я затрачивал его на супер идеальное следование канонам поиска по DOM?

Не думаю, просто посмотрел логами, что в переменных, чтобы понять что там выводится. Код просто не понятно как работает, поэтому так написал, что странный, выводит два раза почти одно и то же

Цитата:
Тупо и гарантированно в лоб отрезаем по маркерным словам часть текста и  уже оттуда мы вытаскиваем всё, что совпадает с регэкспом.

тут согласен, тупо, но только регексп спасает

Цитата:
И ещё причина была не "налегать" на DOMParser: в целях наверное каких-то внутренних задач они формировали итоговый html не в полном соответствии со спецификацией.

кто они?
в плане домпарсер, я его тоже не использую почти нигде, если можно по другому без гемора, тут так не получилось, у меня тут парсится же не вся страница, а только спойлер с Скриншоты всё что между <span>Скриншоты</span></div> и </div> ровно берёт и там ошибок быть не должно (хотя были, но только с вторым запросом к фастпику, пришлось все пробелы с табуляциями убрать из текста, чтобы рип нормально взял, может там где-то и выскочит косяк, но пока не было)
 
но это всё так, просто проверить работу сделано, потому как пользоваться через api.allorigins.win/get?url чтобы cors обойти, когда несколько запросов делается не удобно будет, после наведения на ссылку будет кружок долго ждать ответа, это того не стоит, я бы оставил как есть
ну ещё есть вариант в браузере выключить cors --disable-web-security --disable-site-isolation-trials (второй флаг не помню зачем добавлял, но вроде с первым уже работают запросы)
а ну и ещё такой --user-data-dir=%TMP%\temporary-chrome-profile-dir чтобы профиль в темпе пустой был, не знаю без него будет работать тот флаг или нет, по идее должен
 
добавлю ещё
если в браузере отключить cors, то в консоли браузера вот таким вариантом если проверять запросы

Код:
var doc = [...new DOMParser().parseFromString((x=new XMLHttpRequest,x.open("GET","https://rutracker.org/forum/viewtopic.php?t=6624497",!1),x.send(),(function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})(x.responseText,'<span>Скриншоты</span></div>','</div>')), "text/html").querySelectorAll('a')].map(item=>(x=new XMLHttpRequest,x.open("GET",item.href,!1),x.send(),(function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})(x.responseText.replace(/\s/g,''),'</span><imgsrc="','"')));
 
console.log(doc)

то работает, и с фастпика страница приходит в таком виде, что не надо выбирать по \ и \n, это api.allorigins.win/get?url добавляет все символы переносов и пустых строк, поэтому в том коде можно было наверно не добавлять .replace(/\s/g,''), а вот в таком где не через api.allorigins.win/get?url надо, чтобы выбрать правильно кусок.

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



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

Цитата:
я это в имагусе и тестил, и код в имагусе и дан

В том то и дело, что нужен точный формат фильтра Имагус, а не "сырцы". Для тех кто в коде не шибко разбирается, например как я. И там еще RegExp поле есть, им тоже можно много чего порешать.

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2
Цитата:
В том то и дело, что нужен точный формат фильтра Имагус, а не "сырцы". Для тех кто в коде не шибко разбирается, например как я. И там еще RegExp поле есть, им тоже можно много чего порешать.

так зачем мне давать то, чего нет? это адресовано было только тому кто делал тот фильтр, как пример конкретной функции, а не весь готовый фильтр
этот код ты мог добавить в фильтр в любое место в res после первого :
ничего бы не сломал и не увидел разницы, он просто тормозит код и показывает в консоль ссылки, только в консоли ты бы что-то увидел

Всего записей: 7641 | Зарегистр. 11-02-2020 | Отправлено: 22:23 14-05-2025 | Исправлено: greeple, 22:28 14-05-2025
kenko2



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

Цитата:
это адресовано было только тому кто делал тот фильтр

Ну если так то да, как промежуточный этап думаю можно.

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



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

Код:
{"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   if (a[1].includes(\"ipicture.ru\") ||\n       a[1].includes(\"tinypic.com\") ||\n       a[1].includes(\"imageshack.us\") ||\n       a[1].includes(\"10pix.ru\") ||\n       a[1].includes(\"imgur.com\") ||\n       a[1].includes(\"photobucket.com\") ||\n       a[1].includes(\"radikal.ru\") ||\n       a[1].includes(\"vfl.ru\") ||\n       a[1].includes(\"lostpic.tk\")) {\n      res.push([\"https://static.t-ru.org/smiles/tr_oops.gif\"]);\n   } else {\n      res.push([a[1]]); // она и будет первым объектом для показа\n   }\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  try {\n    if (link.href.includes(\"ipicture.ru\") ||\n       link.href.includes(\"tinypic.com\") ||\n       link.href.includes(\"imageshack.us\") ||\n       link.href.includes(\"10pix.ru\") ||\n       link.href.includes(\"imgur.com\") ||\n       link.href.includes(\"photobucket.com\") ||\n       link.href.includes(\"radikal.ru\") ||\n       link.href.includes(\"vfl.ru\") ||\n       link.href.includes(\"lostpic.tk\")) {\n      res.push([\"https://static.t-ru.org/smiles/tr_oops.gif\"]);\n    } else {\n      if (!link.href.includes(\"fastpic.\")) // пока вытаскивать FullImage будем лишь с него\n        res.push([link.href])\n      else {\n        // Формируем URL для прокси. Нам надо же БОЛЬШОЕ оригинальное фото скриншота, поэтому ...\n        const regex = /i(\\d+)\\.fastpic\\.(ru|org)\\/(?:thumb|big)\\/(\\d{2,4}\\/\\d{2,4})\\/[\\da-f]{2}(\\/.+)$/;\n        const match = link.href.match(regex);\n        if (match) {\n          // ... мы формируем новую ссылку по правилу:\n          let url = `https://fastpic.${match[2]}/fullview/${match[1]}/${match[3]}${match[4]}`;\n\n          const encoded = encodeURIComponent(url);\n          const proxyUrl = `https://api.allorigins.win/get?url=${encoded}`;\n          // Синхронный XHR\n          const xhr = new XMLHttpRequest();\n          xhr.open('GET', proxyUrl, false); // false = синхронный режим\n          xhr.send();\n\n          if (xhr.status !== 200) continue;\n\n          // Парсинг ответа\n          const data = JSON.parse(xhr.responseText);\n          const cleanHtml = data.contents.replace(/\\s+/g, '');\n\n          // Извлечение URL\n          const imgMatch = cleanHtml.match(/varloading_img='(.*?)(?=')/i);\n          if (!imgMatch) continue;\n\n          url = imgMatch[1];\n          if (typeof url === 'string' && url.startsWith('http')) {\n            res.push([url]);\n          }\n        }\n        else\n          res.push([link.href]);\n      }\n    }\n  } catch (e) {\n    console.debug('Ошибка обработки:', link.href, e.message);\n  }\n}\n\n// Вывод результата только после всей обработки\nconsole.log(res);\n","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"}}
 

 
Вот итоговый код для скрипта что вышел. ДА! там спецом вставлен вызов дебаггера, чтобы можно было попасть в обработку этого скрипта.
Поэтому не ставьте безраздумно. Просто для "проверить" итоговую логику.
Одна ссылка для теста: https://rutracker.org/forum/viewtopic.php?t=6688394
 
Так вот у меня ВСЕ ссылки итоговые ПОЛНОРАЗМЕРНЫХ скринов получаются в нём. Вроде это хорошо, но....
 
greeple это к тому, что в моей версии еще сделано доп. превращение "брюк" в .... другую ссылку, ибо недостаточно просто получить  
одну ссылку, её надо преобразовать и уже из другой тогда можно получить полные фотки. И это не моя прихоть - это сама суть 4 = четырех!  
парсеров, которые сделаны для этого фотохостинга! Да, они УЖЕ есть в наборе фильтров и их не я делал - и типа они ВСЕ нужны, потому как  
есть разные способы показа URL от этого сервиса и их надо по разному обрабатывать. И вот я встроил лишь ОДНУ обработку! одну из четырех.
 
И да, я могу получить в консоли все итоговые ссылки этих полноразмерных фоток, и просмотреть их могу. НО! вот время, которое тратится на  
их получение - выходит за все границы разумного...
Т.е. этот сервис allorigins.win пригоден лишь для ручной одиночной проверки и не более. Для массового использования он не катит...
В среднем 8/9 секунд уходит на одну фотку. В худших случаях до 15/17 секунд. И это стабильные результаты. Нет такого, что первую ждем, а потом как из пулемета все вылетают.
Тоже самое я получил, когда просто ваш код для проверки запустил для вывода в консоль... Т.е. это не зависит от кривизны рук)))

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Цитата:
И да, я могу получить в консоли все итоговые ссылки этих полноразмерных фоток, и просмотреть их могу. НО! вот время, которое тратится на  
их получение - выходит за все границы разумного...
Т.е. этот сервис allorigins.win пригоден лишь для ручной одиночной проверки и не более. Для массового использования он не катит...
В среднем 8/9 секунд уходит на одну фотку. В худших случаях до 15/17 секунд. И это стабильные результаты. Нет такого, что первую ждем,  
а потом как из пулемета все вылетают.
Тоже самое я получил, когда просто ваш код для проверки запустил для вывода в консоль... Т.е. это не зависит от кривизны рук)))

это я сразу написал, что долго отдаёт, нет смысла в таком варианте
но есть вариант без него, но надо ключик в браузере включать, который отключает cors

Цитата:
это к тому, что в моей версии еще сделано доп. превращение "брюк" в .... другую ссылку, ибо недостаточно просто получить  
одну ссылку, её надо преобразовать и уже из другой тогда можно получить полные фотки.

в моём варианте не полные фотки?

Цитата:
И это не моя прихоть - это сама суть 4 = четырех!  
парсеров, которые сделаны для этого фотохостинга! Да, они УЖЕ есть в наборе фильтров и их не я делал - и типа они ВСЕ нужны, потому как  
есть разные способы показа URL от этого сервиса и их надо по разному обрабатывать. И вот я встроил лишь ОДНУ обработку! одну из четырех.

ты про фастпик? так на трекерах вставляют наверно один вариант, и к чему их разными вариантами брать если в других ссылках просто проще было переделать исходную ссылку под fastpic.org/fullview и потом уже из кода страницы так же берётся ссылка, но не из img, а из тэга script, что разницы никакой не имеет. Любая ссылка на страницу фастпика ведёт на обычную если они вставлены с превью, а не ссылкой. Хотя даже ссылка на полную картинку без доп. параметров md5 и т.д, откроет так же обычную страницу на view где большая картинка там где надо.
Пока не вижу смысла в 4ёх фильтрах, примеры позже посмотрю, и ты скинь в одном посте, желательно и на рутрекере тоже если увидишь.
 
Добавлено:
и fastpic.org/view и fpic.in открывают view страницу
а на ссылке https://fastpic.org/fullview/124/2025/0326/_3ef71fe1a5c21f1d356fb4c3aa24960b.jpg.html выбирать можно так  

Код:
var doc = (x=new XMLHttpRequest,x.open("GET",`https://fastpic.org/fullview/124/2025/0326/_3ef71fe1a5c21f1d356fb4c3aa24960b.jpg.html`,!1),x.send(),(function(a,b,c,d,e){return(e=a&&a.split(b)[1]||d&&a.split(c)[1])?e.split(d?d:c)[0]:''})(x.responseText.replace(/\s/g,''),'<imgsrc="','"class="image'));
 
console.log(doc)

это пример просто в браузере в консоли, и на странице fastpic.org/view и на fastpic.org/fullview возьмёт, а fpic.in редиректит и открывает view
поэтому смысла в 4ёх фильтрах пока не вижу

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

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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Ну пока у меня на этой пробной версии индикатор появляется на секунду и сразу исчезает. Один раз было зависание страницы. Вот всех браузерах. И думаю мертвые хостинги из кода можно тоже удалить.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple (пост)
Цитата:
но надо ключик в браузере включать, который отключает cors

ключи/флажки - точно не вариант для данной темы. пользователь должен просто поставить фильтр и он должен заработать.
Никто не должен ему советовать как-то там по особенному перезапускать его собственный браузер.
 
hababr (пост)
Цитата:
Можно наверно использовать правило для SimpleModifyHeaders?

Ээээ. Для работы просто по fastpic хостингу это(эти?) правило(-ла) не нужно вводить. Текущие 4 фильтра работают и так.
А вот ЛИШЬ только для внутренних "особенностей" обработки картинок внутри страниц трекеров - надо. Исключение выходит.
Как мне кажется перебарщивать с такими правилами не стоит. Типа лепить в любой ситуации. Они все же реальной защитой  
работают по сути.
 
kenko2
Ну да, вы и описали своими словами, что и я описал - с использованием этого анти-CORPS прокси-сайта - толком ничего  
и не выходит. Имагус просто физически не настроен на такую длительную задержку, которая образуется в этом случае.
Он прерывает действие фильтра уже сам - со своей стороны.
А насчет мертвых хостингов - так не все же гуляют по современным раздача. Есть люди, которые ищут и смотрят редкие/старые раздачи. А там в коде страниц все еще они прописаны. И вот чтобы даже не пытаться их считывать - и был встроен этот блок  
сверки со списком. А т.к. это очень быстрая проверка - то и волноваться тут не о чем. Есть и есть - кушать не просит, исполняется
очень быстро.
 
greeple (пост)
Цитата:
в моём варианте не полные фотки?

Да, там, если можно так выразиться, полноэкранные эскизы от полноразмерных, изначально загруженных фоток.
Качество похужее вылазит на таких эскизах.
 
greeple (пост)
Цитата:
ты про фастпик? так на трекерах вставляют наверно один вариант, и к чему их разными вариантами брать если в других ссылках просто проще было переделать исходную ссылку под fastpic.org/fullview и потом уже из кода страницы так же берётся ссылка, но не из img, а из тэга script, что разницы никакой не имеет. Любая ссылка на страницу фастпика ведёт на обычную если они вставлены с превью, а не ссылкой. Хотя даже ссылка на полную картинку без доп. параметров md5 и т.д, откроет так же обычную страницу на view где большая картинка там где надо.  
Пока не вижу смысла в 4ёх фильтрах, примеры позже посмотрю, и ты скинь в одном посте, желательно и на рутрекере тоже если увидишь.

 
Смотрите, я НЕ занимался анализом того - что и как и где этот хостинг показывает и в каком виде.
Я ПРОСТО ориентировался на то, что по ФАКТУ в списке фильтров УЖЕ ЕСТЬ 4 обработчика 4 разных видов ссылок этого сервиса.
И на рутрекере я точно вижу как минимум 2 из них - ту, что начинается с i<три цифры>.fastpic и ту, что начинается сразу с fastpic.  
ЕСЛИ вы можете заняться этим анализом и ИСПРАВИТЬ текущее положение дел c наличием 4 разных фильтров по этому хостингу и
свести их все ровно в один - пожалуйста, сделайте это. Думаю вам тут только все "спасибо" скажут. Только сразу в виде кода чётко
фильтра Имагуса (JSON формат) - как я вышел закинул - выкладывайте изменение...

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 12:59 15-05-2025 | Исправлено: destiny_child, 14:02 15-05-2025
kenko2



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

Цитата:
в использованием этого анти-CORPS прокси-сайта - толком ничего и не выходит.

Понятно, нужно другое решение.
 

Цитата:
А насчет мертвых хостингов - так не все же гуляют по современным раздача. Есть люди, которые ищут и смотрят редкие/старые раздачи.
А там в коде страниц все еще они прописаны.

У нас сейчас речь о версии с полноразмерными картинками. Если хостинг мертв, то и доступа к полному размеру уже нет. Они ж не на трекере хостятся. Много раз наблюдал такое в раздачах с мертвыми хостингами - просто пустые рамки вместо миниатюр, про полный размер и говорить нечего. Собственно, поэтому русскоязычные трекеры и перешли на Fastpic и еще пару долгоиграющих бесплатных хостингов.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kenko2 (пост)
Цитата:
Если хостинг мертв, то и доступа к полному размеру уже нет.

Ну да, нет. НО попытка-то загрузить эти мертвые/запрещенные хостинги все равно будет исполняться, ибо вшита в код.
И вот чтобы даже не пытаться исполнить это - просто проверяем по списку, если URL в нем - просто спецзаглушку-гифку
покажем. А иначе - как вы сказали - Имагус будет зависать, пытаясь показать пустое "нечто" - ссылка-то на "пустоту" ему  
же все равно будет передана кодом - если убрать эту проверку...

Всего записей: 4787 | Зарегистр. 01-04-2006 | Отправлено: 14:01 15-05-2025 | Исправлено: destiny_child, 14:03 15-05-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hababr
Цитата:
Можно наверно использовать правило для SimpleModifyHeaders?

нет, cors в браузере скрипту не даёт принять ответ от запроса, не важно что ты передашь в запрос
destiny_child
Цитата:
ключи/флажки - точно не вариант для данной темы. пользователь должен просто поставить фильтр и он должен заработать.
Никто не должен ему советовать как-то там по особенному перезапускать его собственный браузер.

это я тебе для теста показал что работает быстро только если cors отключен, а если через сайт прокси это делать, то долго будет отдавать
единственный вариант свой сервер написать на node.js или python который будет делать запрос и так же отдавать уже без таких задержек, но это никто делать не будет для этого

Цитата:
Имагус просто физически не настроен на такую длительную задержку, которая образуется в этом случае.
Он прерывает действие фильтра уже сам - со своей стороны.

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

Цитата:
Да, там, если можно так выразиться, полноэкранные эскизы от полноразмерных, изначально загруженных фоток.
Качество похужее вылазит на таких эскизах.

да, конечно вот ссылка https://fastpic.org/view/124/2025/0326/_3ef71fe1a5c21f1d356fb4c3aa24960b.jpg.html
https://fastpic.org/fullview/124/2025/0326/_3ef71fe1a5c21f1d356fb4c3aa24960b.jpg.html вот тут ты берёшь в теге скрипт ссылку  
https://i124.fastpic.org/big/2025/0326/0b/_3ef71fe1a5c21f1d356fb4c3aa24960b.jpg?md5=Yz6pbjnN1oWPKgn7Up0zXQ&expires=1747314000
и точно такую же берёт с https://fastpic.org/view тот скрипт, абсолютно та же ссылка и тот же файл

Цитата:
Я ПРОСТО ориентировался на то, что по ФАКТУ в списке фильтров УЖЕ ЕСТЬ 4 обработчика 4 разных видов ссылок этого сервиса.

ну ок

Цитата:
И на рутрекере я точно вижу как минимум 2 из них - ту, что начинается с i<три цифры>.fastpic и ту, что начинается сразу с fastpic.

а больше никаких и нет у него i<три цифры>.fastpic это превью или фулл размер big, по которой откроется обычная https://fastpic.org/view/ в которой уже ты возьмёшь ссылку, и так же https://fastpic.org/view/ и так же ссылка сокращённая, все ведут на одно место, кроме ссылки https://fastpic.org/fullview из которой в моём последнем коде также возьмёт как и во всех других, один код берёт везде одну и ту же ссылку

Цитата:
ЕСЛИ вы можете заняться этим анализом и ИСПРАВИТЬ текущее положение дел c наличием 4 разных фильтров по этому хостингу и
свести их все ровно в один - пожалуйста, сделайте это. Думаю вам тут только все "спасибо" скажут. Только сразу в виде кода чётко
фильтра Имагуса (JSON формат) - как я вышел закинул - выкладывайте изменение...

если время будет, посмотрю
только (как ты успел заметить) cors запрещает подгружать такими запросами контент с других сайтов, это надо в полях фильтра как-то делать, я не понимаю как работают фильтры, в консоли браузера могу сделать вариант, а как его прикрутить, чтобы запросы работали в фильтре, это уже к спецам. Мне надо доки в чаво понять. В url и res и т.д. Пока вот посмотрел мельком, возможно в твоём варианте подошла бы опция loop? судя по тому что там написано если миниатюры фастпика будут найдены на странице он их по идее через фильтр фастпика должен достать (если правильно понял)
 
Добавлено:
kenko2
Цитата:
Много раз наблюдал такое в раздачах с мертвыми хостингами - просто пустые рамки вместо миниатюр, про полный размер и говорить нечего.

подумалось про web.archive.org, но там редко с хостингов картинок что-то сохраняется, так можно было бы заменять на картинку оттуда
https://rutracker.org/forum/viewtopic.php?t=5506369 тут imageban не мёртный хостинг, но картинок нет, удалены. И в архивах нет.

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



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

Цитата:
cors в браузере

А что его можно отключить прямо в браузере? Это было бы интересно.
 
PS
У меня сегодня YT стал выдавать ошибку "LOGIN REQUIRED..." вместо всплывашки. Во всех браузерах, в консоли пусто. Как на сайте, так и на внешних ссылках и фреймах. В фильтре было изменение, но предыдущая версия тоже не пашет. Больше похоже что это YT опять у себя что-то поменял. Возможно еще РКН что-то накрутил, но это менее вероятно - само видео напрямую (не через Имагус) у меня работает.

Всего записей: 4700 | Зарегистр. 10-11-2005 | Отправлено: 15:47 15-05-2025 | Исправлено: kenko2, 16:00 15-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