Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name OLX Full Resolution Images
- // @namespace http://tampermonkey.net/
- // @version 0.4
- // @description Replace OLX images with full resolution versions and add a button to preview full resolution images
- // @author Kordian
- // @match https://www.olx.pl/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // Function to update image URLs
- function updateImageUrls() {
- // Select all image elements on the page
- const images = document.querySelectorAll('img[src*=";s="]');
- images.forEach(img => {
- // Store the original URL in a data attribute
- img.dataset.originalSrc = img.src;
- // Modify the image URL to replace the size parameter with 0x0 for full resolution
- img.src = img.src.replace(/;s=\d+x\d+/, ';s=0x0');
- });
- }
- // Create the preview button
- function createPreviewButton() {
- const button = document.createElement('div');
- button.textContent = 'Pokaż galerię ogłoszenia';
- button.style.position = 'fixed';
- button.style.bottom = '10px';
- button.style.left = '10px';
- button.style.padding = '10px 20px';
- button.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
- button.style.color = '#fff';
- button.style.borderRadius = '10px';
- button.style.cursor = 'pointer';
- button.style.zIndex = '1000';
- button.style.fontSize = '14px';
- button.style.textAlign = 'center';
- button.style.boxShadow = '0px 4px 6px rgba(0, 0, 0, 0.1)';
- document.body.appendChild(button);
- const previewContainer = document.createElement('div');
- previewContainer.style.position = 'fixed';
- previewContainer.style.top = '50%';
- previewContainer.style.left = '50%';
- previewContainer.style.transform = 'translate(-50%, -50%)';
- previewContainer.style.maxHeight = '80vh';
- previewContainer.style.maxWidth = '80vw';
- previewContainer.style.overflow = 'auto';
- previewContainer.style.display = 'none';
- previewContainer.style.zIndex = '1001';
- previewContainer.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
- previewContainer.style.padding = '20px';
- previewContainer.style.borderRadius = '10px';
- document.body.appendChild(previewContainer);
- button.addEventListener('click', () => {
- const images = document.querySelectorAll('img[src*=";s=0x0"]');
- previewContainer.innerHTML = '';
- images.forEach(img => {
- const previewImage = document.createElement('img');
- previewImage.src = img.dataset.originalSrc.replace(/;s=\d+x\d+/, ';s=0x0');
- previewImage.style.maxHeight = '80vh';
- previewImage.style.maxWidth = '80vw';
- previewImage.style.margin = '10px';
- previewContainer.appendChild(previewImage);
- });
- previewContainer.style.display = 'block';
- });
- // Hide preview container when clicking outside of it
- document.addEventListener('click', (event) => {
- if (!previewContainer.contains(event.target) && event.target !== button) {
- previewContainer.style.display = 'none';
- }
- });
- }
- // Run the update function initially
- updateImageUrls();
- // Set up a mutation observer to catch dynamically loaded images
- const observer = new MutationObserver(updateImageUrls);
- observer.observe(document.body, { childList: true, subtree: true });
- // Create the preview button
- createPreviewButton();
- })();
Advertisement
Add Comment
Please, Sign In to add comment