Podgląd zdjęć Adobe

Patryk

Artykuł z 27 maja, 2026

Otwórz wszystkie zdjęcia z Adobe w nowych kartach i wygodnie przeglądaj zdjęcia w poszukiwaniu znaków wodnych. Pamiętaj o zezwoleniu na otwieranie wielu kart jednocześnie – uprawnienia przeglądarki dla danej strony.

Poniższy kod wklej do konsoli (F12 DEV TOOLS)

(function() {
  const results = new Map();
  function extractBgUrls(bgString) {
    const urls = [];
    const regex = /url\(["']?([^"')]+)["']?\)/gi;
    let m;
    while ((m = regex.exec(bgString)) !== null) urls.push(m[1]);
    return urls;
  }
  function getFilename(url) {
    try { return decodeURIComponent(url.split('/').pop().split('?')[0]); }
    catch(e) { return url; }
  }
  function getBaseId(filename) {
    let name = filename.replace(/\.[a-z0-9]+$/i, '');
    name = name.replace(/^[^A-Z0-9]*(Slider[-_])?/i, match => match.replace(/Slider[-_]/i, ''));
    const match1000 = name.match(/(1000_F_\d+)/i);
    if (match1000) return match1000[1];
    const matchAdobe = name.match(/(AdobeStock_\d+)/i);
    if (matchAdobe) return matchAdobe[1];
    return null;
  }
  function scoreFilename(filename) {
    let score = 0;
    if (!/\-\d+x\d+\.[a-z]+$/i.test(filename)) score += 10;
    if (!/_Preview/i.test(filename)) score += 5;
    if (!/^Slider-/i.test(filename)) score += 3;
    if (!/_Preview-1/i.test(filename)) score += 2;
    return score;
  }
  function addUrl(url) {
    if (!url || url.startsWith('data:') || url === 'about:blank') return;
    const filename = getFilename(url);
    const baseId = getBaseId(filename);
    if (!baseId) return;
    if (!results.has(baseId)) {
      results.set(baseId, { url, filename });
    } else {
      const currentScore = scoreFilename(results.get(baseId).filename);
      const newScore = scoreFilename(filename);
      if (newScore > currentScore) results.set(baseId, { url, filename });
    }
  }
  const imgAttrs = ['src','data-src','data-original','data-lazy-src','data-bg','data-img','data-full-url'];
  document.querySelectorAll('img').forEach(img => {
    imgAttrs.forEach(attr => { const v = img.getAttribute(attr); if (v) addUrl(v); });
    ['srcset','data-srcset'].forEach(attr => {
      const v = img.getAttribute(attr);
      if (v) v.split(',').forEach(p => { const u = p.trim().split(/\s+/)[0]; if (u) addUrl(u); });
    });
  });
  document.querySelectorAll('source').forEach(src => {
    ['srcset','data-srcset'].forEach(attr => {
      const v = src.getAttribute(attr);
      if (v) v.split(',').forEach(p => { const u = p.trim().split(/\s+/)[0]; if (u) addUrl(u); });
    });
  });
  document.querySelectorAll('[style]').forEach(el => {
    const bg = el.style.backgroundImage;
    if (bg && bg !== 'none') extractBgUrls(bg).forEach(addUrl);
  });
  document.querySelectorAll('*').forEach(el => {
    try {
      const bg = window.getComputedStyle(el).backgroundImage;
      if (bg && bg !== 'none') extractBgUrls(bg).forEach(addUrl);
    } catch(e) {}
  });
  document.querySelectorAll('style').forEach(s => extractBgUrls(s.textContent || '').forEach(addUrl));
  document.querySelectorAll('a[href]').forEach(a => {
    const href = a.getAttribute('href') || '';
    if (/\.(jpg|jpeg|png|webp|gif|svg)(\?|$)/i.test(href)) addUrl(href);
  });
  if (results.size === 0) {
    console.warn('⚠️ Brak zdjęć Adobe Stock na tej stronie.');
    return;
  }
  // ── Otwieramy każde zdjęcie w nowej karcie ────────────────────────────────
  const urls = [...results.values()].map(({ url }) => url);
  console.log(`Otwieranie ${urls.length} zdjęć...`);
  urls.forEach((url, i) => setTimeout(() => window.open(url, '_blank'), i * 200));
})();