Secure share on Imgur.

Upgrade all "http" url to "https" at sharing fileds.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Secure share on Imgur.
// @namespace    moe.jixun.script.imgur
// @version      1.1
// @description  Upgrade all "http" url to "https" at sharing fileds.
// @author       Jixun <https://jixun.moe/>
// @include      http://imgur.com/*
// @include      https://imgur.com/*
// @include      http://*.imgur.com/*
// @include      https://*.imgur.com/*
// @grant        none
// ==/UserScript==

function fixValue (val) {
    if (val.indexOf('http://') != -1)
        val = val.replace(/\bhttp\b/g, 'https');

    if (val[0] == '[')
        val = '!' + val;

    return val;
}

function injectZeroClip () {
    var oldRender = Imgur.ZeroClippableField.prototype.render;
    Imgur.ZeroClippableField.prototype.render = function () {
        this.props.value = fixValue(this.props.value);
        return oldRender.apply(this, arguments);
    };
}

function injectCopy () {
    var oldRender = Imgur.Elements.Copy.prototype.render;
    Imgur.Elements.Copy.prototype.render = function () {
        this.props.value = fixValue(this.props.value);
        return oldRender.apply(this, arguments);
    };
}

addEventListener('load', function() {
    injectZeroClip();
    injectCopy();
    console.info('Secure share enabled!');
});