Sleazy Fork is available in English.

CFake.com image and link fixer

Prevents links from opening a new window, hides ads, and automatically loads the high res image

Versione datata 11/05/2022. Vedi la nuova versione l'ultima versione.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name        CFake.com image and link fixer
// @namespace   cfake.com/*
// @version      1.2
// @description  Prevents links from opening a new window, hides ads, and automatically loads the high res image
// @author       codingjoe
// @match        https://cfake.com/*
// @grant        none
// @license      MIT
// ==/UserScript==

// cut the bs
document.body.onload = function () {};
document.body.style.overflow = "auto";

// xpath
function $x(xpath, root) {
    let doc = root ? root.evaluate ? root : root.ownerDocument : document, next;
    let got = doc.evaluate(xpath, root || doc, null, null, null), result = [];
    while (next = got.iterateNext()) result.push(next);
    return result;
}

(function() {
    'use strict';
    var strMatch = "javascript:showimage('";
    let img
    
    // hide ads
    $x("//div[@id='over' and contains(text(), 'AdBlock ad')] | //div[@id='content_ban'] | //*[@id='content_square']").forEach(ad => {
        ad.style.display = "none";
    });
    
    // enables middle click to open page in new tab
    $x(`//a[contains(@href, "${strMatch}")]`).forEach(link => {
        var pos = link.href.indexOf(".jpg")+4;
        link.href = `https://cfake.com/${link.href.substring(strMatch.length, pos)}`;
    })

    // retrieve high res image
    $x("//img[contains(@src, 'medias/photos')]").forEach(img => {        
        let btnSwitchSize = document.querySelector("img[title='Switch Size']");
        if (btnSwitchSize === null) {
            img.parentNode.href = img.src;
        } else {
            new Promise(resolve => {
                btnSwitchSize.click();
                setTimeout(resolve, 200);
            }).then(resolve => {
                img = document.querySelector("img#content_img");
                img.parentNode.href = img.src;
                resolve();
            });
        }
    });
})();