-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoriginal-images.bookmarklet.js
1 lines (1 loc) · 1.99 KB
/
original-images.bookmarklet.js
1
javascript:(function()%7BopenOriginalSizeImagesFromCurrentPage()%3B%0A%0A%0A%2F**%0A%20*%20Open%20original%20sizes%20of%20the%20ad%20images.%0A%20*%2F%0Afunction%20openOriginalSizeImagesFromCurrentPage()%20%7B%0A%20%20if%20(isStandaloneImagePage())%20%7B%0A%20%20%20%20const%20originalImageUrl%20%3D%20getOriginalImageUrl(window.location.href)%3B%0A%20%20%20%20if%20(originalImageUrl)%20%7B%0A%20%20%20%20%20%20window.open(originalImageUrl%2C%20'_self')%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20true%3B%0A%20%20%7D%0A%0A%20%20%2F%2F%20Ad%20page%20thumbnails.%0A%20%20const%20thumbnails%20%3D%20document.querySelectorAll('.thumb%2C%20.ad_images_image%20img')%3B%0A%20%20thumbnails.forEach(thumb%20%3D%3E%20%7B%0A%20%20%20%20const%20src%20%3D%20thumb.getAttribute('src')%3B%0A%20%20%20%20const%20originalImageUrl%20%3D%20getOriginalImageUrl(src)%3B%0A%20%20%20%20if%20(originalImageUrl)%20%7B%0A%20%20%20%20%20%20window.open(originalImageUrl)%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%7D%0A%0A%2F**%0A%20*%20Get%20url%20for%20the%20original%20size%20of%20the%20image%2C%20from%20any%20other%20size.%0A%20*%2F%0Afunction%20getOriginalImageUrl(url)%20%7B%0A%20%20const%20matches%20%3D%20url.match(%2Frule%3D(%5B%5E%26%5D*)%2F)%3B%0A%0A%20%20%2F%2F%20Images%20must%20always%20have%20the%20rule%20parameter.%0A%20%20if%20(!matches%5B1%5D)%20%7B%0A%20%20%20%20alert('%F0%9F%A6%86%20TOI%3A%20No%20rule%20parameter%20found.')%3B%0A%20%20%7D%0A%0A%20%20if%20(matches%5B1%5D%20%3D%3D%3D%20'original')%20%7B%0A%20%20%20%20alert('%F0%9F%A6%86%20TOI%3A%20Image%20is%20already%20the%20original%20one.')%3B%0A%20%20%20%20return%20null%3B%0A%20%20%7D%0A%0A%20%20return%20url.replace(matches%5B1%5D%2C%20'original')%3B%0A%7D%0A%0A%2F**%0A%20*%20Check%20if%20the%20current%20page%20is%20a%20standalone%20one%20(has%20the%20%3Frule%20param).%0A%20*%2F%0Afunction%20isStandaloneImagePage()%20%7B%0A%20%20const%20urlParams%20%3D%20new%20URLSearchParams(window.location.search)%3B%0A%20%20return%20urlParams.get('rule')%20!%3D%3D%20null%3B%0A%7D%7D)()%3B