सदस्य:Shubhamkanodia/tafi.js

मुक्त ज्ञानकोश विकिपीडिया से

सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।

  • मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
  • गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
  • इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
  • कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
  • ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Timotheus_Canens/displaymessage.js&action=raw&ctype=text/javascript');
if (wgNamespaceNumber === 0) {
	var TAFI_AJAXnumber = 0;
	TAFI_PageName=wgPageName.replace("_"," ");

    //var new_TAFI_PageName = wgPageName;

    function TAFI_init() {
    	alert("Inside init");
        if (!wfSupportsAjax()) {
            displayMessage('<span style="color:red; font-size:120%">आपका ब्राउज़र AJAX का समर्थन नहीं करता, जो कि TAFI स्क्रिप्ट के काम करने के लिए आवश्यक है।</span>');
            return;
        }
        alert("supports ajax");

        form = '<div id="TAFI_initialform">' +
            '<h3>' + TAFI_PageName + ' को सुधालेख बनायें</h3>' +
            '<label for="TAFI_img">चित्र:</label>&emsp;' +
            '<input type="text" size="50" id="TAFI_img_text" name="TAFI_img_text" />&emsp;&emsp;' +
            '<label for="TAFI_cap">कैप्शन:</label>&emsp;' +
            '<input type="text" size="50" id="TAFI_cap_text" name="TAFI_cap_text" /><br />' +
            '<label for="TAFI_oldid1">oldid1:</label>&emsp;' +
            '<input type="text" size="50" id="TAFI_oldid1_text" name="TAFI_oldid1_text" />&emsp;&emsp;' +
            '<label for="TAFI_oldid2">oldid2:</label>&emsp;' +
            '<input type="text" size="50" id="TAFI_oldid2_text" name="TAFI_oldid2_text" /><br />' +
            '<input type="button" id="TAFI_submit" name="TAFI_submit_button" value="जमा करे" onclick="TAFI_begin()" /> </div>';
        displayMessage(form);

    }

    function TAFI_begin() {
		alert("Inside begin");
        Date.prototype.getWeek = function () {
            var onejan = new Date(this.getFullYear(), 0, 1);
            return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
        }

        var cur_weekNumber = (new Date()).getWeek();
        var prev_weekNumber = cur_weekNumber - 1;
        var today = new Date();
        var day = today.getDay();
        diff = today.getDate() - day + (day == 0 ? -6:1);
        var curFirstDay=today.setDate(diff);
        if(curFirstDay - 7 = 0)-------------------------
        
        yyyy = today.getFullYear();
        alert("Done with date");


        displayMessage('<ul id="TAFI_status"></ul><ul id="TAFI_finish"></ul>'); 
        document.getElementById('TAFI_finish').innerHTML += '<span id="TAFI_finished_wrapper"><span id="TAFI_finished_main" style="display:none"><li id="TAFI_done"><b>पूर्ण हुआ (<a href="/wiki/' + encodeURI(TAFI_PageName) + '?action=purge" title="' + TAFI_PageName + '">पृष्ठ पुनः लोड करें</a>)</b></li></span></span>';
        
        var prev_TAFI_Link = "विकिपीडिया:इस सप्ताह का सुधार हेतु लेख/" + yyyy + "/" + prev_weekNumber;
        var prev_TAFI_Name = TAFI_getPageText(prev_TAFI_Link);
        prev_TAFI_Name = prev_TAFI_Name.substring(2, prev_TAFI_Name.indexOf(']'));
        alert("B4 getpage");
        prev_TAFI_text = TAFI_getPageText(prev_TAFI_Name);
        alert("Got\n"+prev_TAFI_text);
        prev_TAFI_text = prev_TAFI_text.replace(/{\{सुधालेख\}\}\n/, '');
        alert("Getting Token");
        token = TAFI_getToken(true);
        alert("Token fetch done!");
       
        TAFI_editPage(prev_TAFI_Name, prev_TAFI_text, token, "{{सुधालेख}} हटाया");
        prev_TAFI_talkpage = TAFI_getPageText("वार्ता:" + prev_TAFI_Name);
        prev_TAFI_talkpage = "{\{पूर्व सुधालेख\|date=\|page="+ TAFI_PageName + "\|oldid1=\}\}\n" + prev_TAFI_talkpage;--------------------------
        TAFI_editPage("वार्ता:" + prev_TAFI_Name, prev_TAFI_talkpage, token, "{{पूर्व सुधालेख}} जोड़ा");

        var cur_TAFI_Link = "विकिपीडिया:इस सप्ताह का सुधार हेतु लेख/" + yyyy + "/" + cur_weekNumber;
        var new_TAFI_PageName = "[[" + TAFI_PageName + "]]";
        TAFI_editPage(cur_TAFI_Link, new_TAFI_PageName, token, " नया सुधालेख: " + TAFI_PageName);
        var img = document.getElementById('TAFI_img_text').value;
        var cap = document.getElementById('TAFI_cap_text').value;

alert("Inserting Caption");
            var cur_TAFI_CapLink = cur_TAFI_Link + "/चित्र/caption";
            TAFI_editPage(cur_TAFI_CapLink, cap, token, "नया कैप्शन जोड़ा");

alert("Inserting Image");
            var cur_TAFI_imgLink = cur_TAFI_Link + "/चित्र";
            TAFI_editPage(cur_TAFI_imgLink, img, token, "नया चित्र जोड़ा");
alert("Done!");
document.getElementById('TAFI_finished_main').style.display = '';

    }




    function TAFI_getPageText(title) {
    	alert("Entering pagetext");
        document.getElementById('TAFI_status').innerHTML += '<li id="TAFI_get' + escape(title) + '"><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a>प्राप्त किया जा रहा है</li>';

        var req = sajax_init_object();

        req.open("GET", wgScriptPath + "/api.php?action=query&prop=revisions&rvprop=content&format=json&indexpageids=1&titles=" + encodeURIComponent(title), false);

        req.send(null);
        
        var response = eval('(' + req.responseText + ')');
        pageid = response['query']['pageids'][0];

        if (pageid == "-1") {
            document.getElementById('TAFI_get' + escape(title)).innerHTML = '<a class="new" href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> मौजूद नहीं है';
            delete req;
            return '';
        }

        pagetext = response['query']['pages'][pageid]['revisions'][0]['*'];
        delete req;

        document.getElementById('TAFI_get' + escape(title)).innerHTML = '<a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> प्राप्त किया जा रहा है';
        alert("Exiting pagetext");
        return pagetext;
    }

    function TAFI_editPage(title, newtext, token, summary) {
    	alert("Entering editpage");
        document.getElementById('TAFI_finished_wrapper').innerHTML = '<span id="TAFI_AJAX_finished_' + TAFI_AJAXnumber + '" style="display:none">' + document.getElementById('TAFI_finished_wrapper').innerHTML + '</span>';
        var func_id = TAFI_AJAXnumber;
        TAFI_AJAXnumber++;
        document.getElementById('TAFI_status').innerHTML += '<li id="TAFI_edit' + escape(title) + '"><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> में बदलाव किये जा रहे हैं</li>';
        var req = sajax_init_object();
        var params = "action=edit&format=json&token=" + encodeURIComponent(token) + "&title=" + encodeURIComponent(title) + "&text=" + encodeURIComponent(newtext) + "&notminor=1&unwatch=1&summary=" + encodeURIComponent(summary);
        url = wgScriptPath + "/api.php";
        req.open("POST", url, true);
        req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        req.setRequestHeader("Content-length", params.length);
        req.setRequestHeader("Connection", "close");
        req.onreadystatechange = function () {
           alert("Mid of edittext");
           if (req.readyState == 4 && req.status == 200) {
                response = eval('(' + req.responseText + ')');
                try {
                    if (response['edit']['result'] == "Success") {
                        document.getElementById('TAFI_edit' + escape(title)).innerHTML = '<a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> को सहेजा';
                    } else {
                        document.getElementById('TAFI_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> पर संपादन असफल रहा</b></div>. Error info:' + response['error']['code'] + ' : ' + response['error']['info'];
                    }
                } catch (err) {
                    document.getElementById('TAFI_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> पर संपादन असफल रहा</b></div>';
                }
                document.getElementById('TAFI_AJAX_finished_' + func_id).style.display = '';
                delete req;
            }
        }
        req.send(params)
    }

    function TAFI_getToken(show) {
    	alert("Entering token");
        if (show) {
            document.getElementById('TAFI_status').innerHTML += '<li id="TAFI_gettoken">टोकन प्राप्त किया जा रहा है</li>';
        }
            	alert("Printed 1st token");
        var req = sajax_init_object();
        alert("Getting Path");
        req.open("GET", wgScriptPath + "/api.php?action=query&prop=info&indexpageids=1&intoken=edit&format=json&titles=" + encodeURIComponent(TAFI_PageName), false);
        req.send(null);
        alert("Response");
        var response = eval('(' + req.responseText + ')');
        pageid = response['query']['pageids'][0];
        token = response['query']['pages'][pageid]['edittoken'];
        alert("Here");
        delete req;
        alert("Delete");
        if (show) {
            document.getElementById('TAFI_gettoken').innerHTML = 'टोकन प्राप्त किया जा रहा है';
        }
      alert("Printed 2nd token, exiting....");
        return token;
    }

    function TAFI_addLink() {
        mw.util.addPortletLink("p-cactions", "javascript:TAFI_init()", "सुधालेख चुनें", "ca-TAFI", "इस लेख को नया सुधालेख चुनें");
    }

    jQuery(document).ready(TAFI_addLink);
}