hababr
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору kenko2 На Wildberries сломались картинки из карточки товара (из отзывов показываются), я пофиксил: Код: {"R_Wildberries.ru":{"link":"^wildberries\\.ru/catalog/(\\d+)/(detail\\.aspx|feedbacks)(\\S+)?","url":"data:,none?$1$2$3","res":":\nvar r = [];\nconst x = new XMLHttpRequest();\nx.open('GET', 'https://wbx-content-v2.wbstatic.net/ru/' + $[1] + '.json', false);\nx.send();\nconst info = JSON.parse(x.responseText);\n\n// fetch item photos\n// skip when triggered by feedback links or elements\nif ($[2] == 'detail.aspx' && !$[3]?.includes('#Comments') && !this.TRG.className.includes('product-card__rating') && !this.TRG.className.includes('product-card__count')) {\n const folder = 1e4 * Math.floor(info.nm_id / 1e4);\n if (info.media.has_video) {\n r.push([`https://video.wbstatic.net/video/new/${folder}/${info.nm_id}.mp4`, info.imt_name]);\n }\n\n for (var i = 1; i <= info.media.photo_count; i++) {\n // r.push([`https://images.wbstatic.net/big/new/${folder}/${info.nm_id}-${i}.jpg`, info.imt_name]);\n r.push([imageUrl(info.nm_id, 'big', i), info.imt_name]);\n }\n}\n\n// fetch feedback photos page by page\nconst PER_PAGE = 30;\nconst PAGES_LIMIT = 5;\nfor (var i = 0; i < PAGES_LIMIT; i++) {\n x.open('POST', 'https://public-feedbacks.wildberries.ru/api/v1/feedbacks/site', false);\n x.send('{\"imtId\":' + info.imt_id + ',\"skip\":' + PER_PAGE*i + ',\"take\":30,\"order\":\"dateDesc\",\"hasPhoto\":true}');\n const resp = JSON.parse(x.responseText);\n if (resp.feedbacks && resp.feedbacks.length) {\n resp.feedbacks.forEach(f => f.photos.forEach(p => r.push([\n 'https://feedbackphotos.wbstatic.net/' + p.fullSizeUri, '⭐ '.repeat(f.productValuation) + '☆ '.repeat(5 - f.productValuation) + f.text\n ])));\n }\n\n if (!resp.feedbacks || resp.feedbacks.length < PER_PAGE) break;\n}\n\nif (r.length == 0) r = false;\n\nreturn r;\n\nfunction imageUrl(id, size, number) {\n var i = parseInt(id, 10);\n var ext = \"webp\";\n var url = constructHostV2(i);\n return \"\".concat(url, \"/images/\").concat(size, \"/\").concat(null != number ? number : 1, \".\").concat(ext)\n}\n\nfunction volHostV2(t) {\n return t >= 0 && t <= 143 ? \"//basket-01.wb.ru/\" :\n t >= 144 && t <= 287 ? \"//basket-02.wb.ru/\" :\n t >= 288 && t <= 431 ? \"//basket-03.wb.ru/\" :\n t >= 432 && t <= 719 ? \"//basket-04.wb.ru/\" :\n t >= 720 && t <= 1007 ? \"//basket-05.wb.ru/\" :\n t >= 1008 && t <= 1061 ? \"//basket-06.wb.ru/\" :\n t >= 1062 && t <= 1115 ? \"//basket-07.wb.ru/\" :\n t >= 1116 && t <= 1169 ? \"//basket-08.wb.ru/\" :\n t >= 1170 && t <= 1313 ? \"//basket-09.wb.ru/\" :\n t >= 1314 && t <= 1601 ? \"//basket-10.wb.ru/\" : \"//basket-11.wb.ru/\";\n}\n\nfunction constructHostV2(id) {\n var e = parseInt(id, 10),\n n = ~~(e / 1e5),\n r = ~~(e / 1e3),\n a = volHostV2(n);\n return \"\".concat(a, \"vol\").concat(n, \"/part\").concat(r, \"/\").concat(e);\n}","img":"^(images.wbstatic.net)/(?:tm|c\\d+x\\d+)/(.+\\.jpg)","to":"$1/big/$2","note":"64h\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=1200#9\nOLD\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=660#2\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=460#10\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=48222&start=3500#7\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=48222&start=2920#14\n\n!!!\nФильтр подгружает также оценку + фото + тексты отзывов, сделанных покупателями."}} |
|