Apina.biz improved

Browse apina.biz with full-sized images. Plus other tweaks.

Version au 09/09/2014. Voir la dernière version.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name        Apina.biz improved
// @namespace   Rennex/apina.biz
// @description Browse apina.biz with full-sized images. Plus other tweaks.
// @include     http://apina.biz/*
// @version     2.1
// @run-at      document-start
// @grant       none
// ==/UserScript==

var m
if (m = location.href.match(/apina\.biz\/(\d+\.(jpg|gif|png))/)) {
    // we've somehow landed on the zoom-in page (from an external link?)
    // -> redirect to the picture
    location.replace("http://termite.apcdn.com/full/" + m[1])
}
// also remove that ?ref=randoms bullshit from the address bar
if (m = location.href.match(/apina\.biz\/(.+)\?ref=randoms/)) {
    history.replaceState(null, "", m[1])
}

// hide the picture before it even starts loading
var head = document.querySelector("head")
// (can the head still be non-existent at this point?)
//if (!head) { alert("headless") }
var style = document.createElement("style")
style.type = "text/css"
style.innerHTML = "#big_image { display: none; }"
head.appendChild(style)

// call this when the DOM has loaded
addEventListener("DOMContentLoaded", function () {
    // if we are in the image browsing mode, viewing a medium-sized image,
    // this will find an element
    var m, img, a = document.querySelector("#big_image a")
    if (a) {
        if (m = a.href.match(/\/\d+[^\/]+$/)) {
            // fix the link to point directly to the image
            a.href = "http://termite.apcdn.com/full" + m[0]
            // and remove that annoying title popup while we're at it
            a.removeAttribute("title")

            // change the img element to use the full-sized image and appear wider
            img = a.querySelector("img")
            if (img) {
                // seems that we have to remove this image and create a new one,
                // to prevent it from visibly growing moments later
                a.removeChild(img)

                // re-enable displaying the div
                head.removeChild(style)

                // create the new image element
                img = new Image()
                img.src = a.href
                img.style = "max-width: 100%"
                a.appendChild(img)
            }

        }
    }
}, false)