குறிப்பு - சேமித்த பின்னர், நீங்கள் செய்த மாற்றங்களைக் காண்பதற்கு உங்கள் உலவியின் இடைமாற்று அகற்றப்பட வேண்டும்.

  • மொஸில்லா பயர்பாக்ஸ் / சபாரி: Shift+Reload, அல்லது Ctrl-F5 அல்லது Ctrl-R (⌘-R Mac ல்)
  • கூகிள் குரோம் Ctrl-Shift-R அழுத்தவும். (⌘-Shift-R Mac ல்) ;
  • இண்டர்நெட் எக்ஸ்ப்ளோரர்: Ctrl-Refresh அல்லது Ctrl-F5 ஐ அழுத்தவும்.
  • ஒபேரா: Tools → Preferences இல் இடைமாற்றை அகற்றவும்;
/*
    This userscript is to get relevant categories from English Wikipedia
    @Author [[User:Neechalkaran]]

*/
 
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

var nslist={};
for (var i in mw.config.values.wgFormattedNamespaces)
{nslist[mw.config.values.wgFormattedNamespaces[i]]=i;}
var encats;
var tacats;
var tainner;
var encats_inner={};
var reflang="en";
var categorylabel=mw.config.values.wgFormattedNamespaces[14];
if(reflang==mw.config.values.wgContentLanguage)reflang="ta";

function get_cat_suggestions(){
document.getElementById("catrec").innerText="Loading...";
jQuery.ajax({
url : mw.config.values.wgServer+"/w/api.php?action=query&format=json&prop=langlinks&redirects&lllang="+reflang+"&titles="+mw.config.values.wgPageName,
type: "GET",
dataType: "json",
success : async function (data) {
missingcats=[]; 
for(var id in data["query"]["pages"])if("langlinks" in data["query"]["pages"][id]){
	var links=data["query"]["pages"][id]["langlinks"];
	if(links.length==1){
		await get_cats("en",links[0]["*"]);
		await get_cats(mw.config.values.wgPageContentLanguage,mw.config.values.wgPageName);
		//console.log("fetching")
while (encats === undefined || tacats === undefined){ await sleep(2000);}
		await getinnerlink("en",mw.config.values.wgPageContentLanguage,encats)
     while (tainner === undefined){ await sleep(2000);}
		//console.log(encats_inner)
		//console.log(tacats)
		for(var i in tacats){tacats[i]=categorylabel+":"+tacats[i];}
		for(var i in encats_inner)
		{
			if(tacats.indexOf(encats_inner[i])==-1) 
		missingcats.push(encats_inner[i]);
		}
    }
};

document.getElementById("catrec").innerHTML="";
if(missingcats.length>0)
{//console.log(missingcats)
	//await addimages(missingimages);
	
for(var j=0;j<missingcats.length;j++)	
{var label = document.createElement('label');
label.innerText=missingcats[j];
var inp = document.createElement('input');
inp.name =missingcats[j];
inp.type="checkbox";
var sp =document.createElement('div');
sp.appendChild(inp);
sp.appendChild(label);
 $('#catrec').append(sp);
}
}
else{
var sp =document.createElement('div');
sp.innerText="No Category Suggestions";
 $('#catrec').append(sp);
	
	
}
},
error: function(e){console.log("No Interlang Links");}

});
}
function getinnerlink(fromlang,tolang,titles)
{
jQuery.ajax({
url : "https://"+fromlang+".wiki.x.io/w/api.php?origin=*&action=query&format=json&prop=langlinks&redirects&lllang="+tolang+"&titles="+titles.join("%7C"),
type: "GET",
dataType: "json",
success : async function (data) {
for(var id in data["query"]["pages"]){
	if("langlinks" in data["query"]["pages"][id]){
	var links=data["query"]["pages"][id]["langlinks"];

	if(links.length==1){
		encats_inner[data["query"]["pages"][id]["title"]]=links[0]["*"];
	}
	}
}
tainner=true;
},
error: function(e){console.log("No Interlang Links");}
});
//return names;
}
function get_cats(lang, title){
if(lang==mw.config.values.wgContentLanguage && title==mw.config.values.wgPageName)
{
var cats=mw.config.values.wgCategories; 
if(lang=="en"){encats=cats;}
else{tacats=cats;}
return;}
	jQuery.ajax({
url : "//"+lang+".wiki.x.io/w/api.php?action=query&prop=categories&format=json&origin=*&titles="+title,
type: "GET",
dataType: "json",
success : function (data) {
var images=[]	
for(var id in data["query"]["pages"]){
	if(data["query"]["pages"][id]["categories"]==null)continue;
	var cats=data["query"]["pages"][id]["categories"];
	for(var i=0;i<cats.length;i++){
		var name=cats[i]["title"];
		//name=name.replace(nslist[cats[i]["ns"]]+":","");
		//name=name.replace("Category:","");
	    images.push(name);	
		//console.log(links[i]["title"]);
	}
}
//console.log(images);
if(lang=="en"){encats=images;}
else{tacats=images;}
},
error: function(data){console.log("Error in API fetch");return [];}
});
}



//url : "https://en.wiki.x.io/w/api.php?action=parse&prop=text&section=0&format=json&page="+title,
function get_wikicontent(title){
jQuery.ajax({
url : "//en.wiki.x.io/w/index.php?action=raw&type=text/javascript&title="+title,
type: "GET",
dataType: "script",
success : function (data) {
parts=data.split("[[File:");
result=[];
for(var j=1;j<parts.length;j++){
	breaker=0;
	for(var k=0;k<parts[j].length;k++)
	{if(breaker==0 && parts[j].substr(k,2)=="]]")
		{result.append(parts[j].substr(0,k))}
	}
}
return result;
}
});
}



function addimages(images){
//images=["File:BSE - Bombay Stock Exchange Building.jpg","File:Jana Gana Mana instrumental.ogg","File:Transgender Resource Center.jpg"]
var requestUrl="https://commons.wikimedia.org/w/api.php?action=query&origin=*&format=json&uselang=en&inprop=url&iiextmetadatalanguage=en&prop=info%7Cimageinfo%7Centityterms&iiprop=extmetadata&titles="+convertutf(images.join("|"))
var imagetext="";
//console.log(requestUrl );
$.getJSON( requestUrl ).done( showresult ).fail( function (response) {console.log("Error");}  ) ;
function showresult(response)
{var data=response;
var text="";
if(data["query"]["pages"])
for(var it in data["query"]["pages"])
{var info=data["query"]["pages"][it]["imageinfo"];
if(info==null)continue;
for(var j in info){
if(!info[j]["extmetadata"])continue
if(!info[j]["extmetadata"]["ImageDescription"])continue
var d = $('<div>').html(info[j]["extmetadata"]["ImageDescription"]["value"]);
imagetext+="[["+data["query"]["pages"][it]["title"]+"|thumb|left|"+d.text()+"]]\n";
//console.log(d.text());
}
	}	
	
   
   if ($('#wpTextbox1'). length > 0) 
   {$('#wpTextbox1').prepend(imagetext+"\n");}
   if($('.ve-ce-attachedRootNode p').length>0)
   {$('.ve-ce-attachedRootNode p').eq(0).prepend(imagetext+"\n");}
   	
}

}

function convertutf(s) {
function parse(a, c){return string.fromCharCode(parseInt(c, 16));}
return encodeURIComponent(s.replace(/%u([0-f]{4})/gi, parse));
}



if (document.getElementById('catrec')==null){
	
var catrec = document.createElement('div');
var result = document.createElement('div');
result.id="catrec"
var inp = document.createElement('input');
inp.style ='margin: 4px 2px;';
inp.type="button";
inp.onclick=get_cat_suggestions;
inp.value="Suggest category";
catrec.appendChild(inp);
catrec.appendChild(result);
}
if(!mw.config.values.wgEditMessage){
if ($('#footer').length > 0) 
   {
   	$('#footer').prepend(catrec);
   }

}
if(mw.config.values.wgAction=="edit"){
   if ($('.mw-editTools').length > 0) 
   {$('.mw-editTools').prepend(inp);
   }
    }
"https://ta.wiki.x.io/w/index.php?title=பயனர்:Neechalkaran/CategoryRecommendation.js&oldid=4172695" இலிருந்து மீள்விக்கப்பட்டது