ਵਰਤੋਂਕਾਰ:Vigyani/scripts/autowelcome.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
//<pre><nowiki>
//Auto welcome user script written by GeorgeMoney
if(welcome == undefined) {
//If you would like to make your own config you have 2 options:
//1:Copy the entire code to your monobook and change the config
//2:Copy everything, from this line until you see 'end config', into your monobook.js, and include the module to your monobook via an import function
var welcome={};welcome.edit={};welcome.link={};welcome.link.tab={};welcome.link.newUserLog={};welcome.link.redLinkTalk={};welcome.options={};
//config
welcome.edit.summary = "Welcome to Wikipedia!";
welcome.edit.text = "{{sub" + "st:ਫਰਮਾ:ਜੀ ਆਇਆਂ ਨੂੰ}}" + "\n" + "~~" + "~~";
welcome.edit.textAnon = "{{sub" + "st:Welcomeip}}" + "\n" + "~~" + "~~";
welcome.edit.button = 'wpSave';
welcome.link.newUserLog.defaultColor = "blue";
welcome.link.newUserLog.clickedColor = "green";
welcome.link.newUserLog.text = "[welcome]";
welcome.link.redLinkTalk.defaultColor = "blue";
welcome.link.redLinkTalk.clickedColor = "green";
welcome.link.redLinkTalk.text = "[welcome]";
welcome.link.redLinkTalk.blink = false;
welcome.link.tab.text = "welcome!";
welcome.link.tab.accessKey = 'a';
welcome.options.newUserLogaddReloadButton = true;
welcome.options.newUserLogEnabled = true;
welcome.options.redLinkTalkEnabled = true;
welcome.options.addTab = true;
welcome.options.askIfPageIsNotBlank = true;
welcome.options.maxLinks = 1000;
welcome.options.warnIfOverMaxLinks = false;
//end config
}
//main script
if(welcome.options.newUserLogEnabled && (/Special(%3A|:)Log(\/newusers$|(.*?&|\?)type=newusers)/i).test(window.location.href)) {
if(window.location.hash != "") window.location.hash = "";
else {
addOnloadHook(function() {
var lis = document.getElementById('bodyContent').getElementsByTagName('ul')[0].getElementsByTagName('li');
for (var i=0; i<lis.length; i++) {
var li = lis[i];
var url = li.firstChild.nextSibling.nextSibling.nextSibling.href;
var charao = (url.indexOf('?') != -1)?'&':'?';
url += charao+"autowelcome=true"
var link = document.createElement('a');
link.appendChild(document.createTextNode(welcome.link.newUserLog.text));
link.style.color = welcome.link.newUserLog.defaultColor;
monclick = function() {
//this.style = { };
this.style.textDecoration = 'none';
this.style.color = welcome.link.newUserLog.clickedColor;
var n = parseInt(this.name.split('_')[2]);
var newhref = "#anchor_welcome_"+(n+1);
this.onmouseover = function() { return false; }
this.onfocus = function() { return false; }
this.onclick = function() {
window.open(this.href);
this.onclick = function() { return false; };
return false;
}
this.onmousedown = function() { return false; }
this.onmouseup = function() { return false; }
this.onmouseout = function() {
//var n = parseInt(this.name.split('_')[2]);
//var newhref = "#anchor_welcome_"+(n+1);
//this.href /**/+= '&hasdone=true'; //newhref;
//this.href=newhref;
this.href = "javascript:void(0);";
this.onmouseout = function() {
return false;
}
};
//this.href = newhref;
//this.tagName = 'SPAN';
//this.innerHTML = 'welcomed';
this.style.cursor = "default";
};
//link.onfocus = monclick;
link.onmouseup = monclick;
link.href = url;
link.id = "id_welcome_"+i;
link.name = "anchor_welcome_"+i;
li.appendChild(link);
}
if(welcome.options.newUserLogaddReloadButton) {
var h1 = document.getElementsByTagName('h1')[0];
var button = document.createElement('input');
button.onclick = function() {
if(window.location.hash != "")
window.location.hash = "";
location.reload();
}
button.value = "reload";
button.type = "button";
h1.parentNode.insertBefore(button, h1.nextSibling);
}
});
}
}
if(welcome.options.redLinkTalkEnabled && !((/Special(%3A|:)Log(\/newusers$|(.*?&|\?)type=newusers)/i).test(window.location.href)) && ( ( (wgNamespaceNumber > -1 && wgNamespaceNumber % 2 != 0) || (wgCanonicalNamespace == "Wikipedia"||wgCanonicalNamespace == 'Special') ) || !wgIsArticle )) {
addOnloadHook(function() {
var alinks = document.getElementById('bodyContent').getElementsByTagName('a');
if(alinks.length > welcome.options.maxLinks) {
if(welcome.options.warnIfOverMaxLinks)
var ok_to_go = confirm("This page has over "+welcome.options.maxLinks+" links.\n"
+"Searching for red links to add welcome links might take a while and freeze your"
+" browser\nTo continue and add welcome links, press ok.");
else var ok_to_go = false;
} else var ok_to_go = true;
if(!ok_to_go) return;
for(var i=0, j=0; i<alinks.length; i++) {
var lin = alinks[i];
if(lin.className == "new" && (/User([_ ]talk)?:/i).test(lin.href) && lin.href.substr('http://en.wikipedia.org/w/index.php?title='.length).indexOf('/') == -1) {
var url = lin.href;
url = url.replace('User:', 'User_talk:');
var charao = (url.indexOf('?') != -1)?'&':'?';
url += charao+"autowelcome=true"
var nlin = document.createElement('a');
nlin.appendChild(document.createTextNode(welcome.link.redLinkTalk.text));
nlin.style.color = welcome.link.redLinkTalk.defaultColor;
monclick = function() {
this.style.textDecoration = 'none';
this.style.color = welcome.link.redLinkTalk.clickedColor;
var n = parseInt(this.name.split('_')[2]);
var newhref = "#anchor_welcome_"+(n+1);
this.onmouseover = function() { return false; }
this.onfocus = function() { return false; }
this.onclick = function() {
window.open(this.href);
this.onclick = function() { return false; };
return false;
}
this.onmousedown = function() { return false; }
this.onmouseup = function() { return false; }
this.onmouseout = function() {
//var n = parseInt(this.name.split('_')[2]);
//var newhref = "#anchor_welcome_"+(n+1);
//this.href /**/+= '&hasdone=true'; //newhref;
//this.href=newhref;
this.href = "javascript:void(0);";
this.onmouseout = function() {
return false;
}
};
//this.href = newhref;
//this.tagName = 'SPAN';
//this.innerHTML = 'welcomed';
this.style.cursor = "default";
};
nlin.onmouseup = monclick;
nlin.href = url;
nlin.id = "id_welcome_"+j;
nlin.name = "anchor_welcome_"+j;
if(welcome.link.redLinkTalk.blink) nlin.style.textDecoration = 'blink';
try { //alert(lin+lin.href+lin.className+lin.innerHTML+lin.nextSibling);
if(lin.nextSibling) {
lin.parentNode
.insertBefore(
nlin,
lin.nextSibling
);
} else {
lin.parentNode
.appendChild(
nlin
);
}
j++;
} catch(e) {
//alert(lin+lin.href+lin.className+lin.innerHTML+lin.nextSibling);
//alert(e.toString());
}
}
}
});
}
if(welcome.options.addTab && ( wgCanonicalNamespace == 'User' || wgCanonicalNamespace == 'User_talk' ) ) {
addOnloadHook(function() {
try {
var href = document.getElementById('ca-edit').firstChild.href;
var charao = (href.indexOf('?') != -1)?'&':'?';
href += charao+"autowelcome=true";
if(wgCanonicalNamespace == 'User') href = href.replace(/User:/i, 'User_talk:');
var tbs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
addlilink(tbs, href, welcome.link.tab.text, 'ca-welcome', 'Welcome '+wgTitle, welcome.link.tab.accessKey);
} catch(e) { }
});
}
if(window.location.href.indexOf('autowelcome=true') != -1
&&window.location.href.indexOf('action=edit') == -1) {
window.location.href += '&action=edit';
}
if(window.location.href.indexOf('action=edit') != -1
&& window.location.href.indexOf('autowelcome=true') != -1) {
if(window.location.href.indexOf('hasdone=true') != -1) {
location.href = location.href.split('action=edit')[0]
.split('autowelcome=true')[0];
} else {
addOnloadHook(function() {
var text = document.getElementById('wpTextbox1').value;
if(welcome.options.askIfPageIsNotBlank && text != '') {
var oktogo = confirm("There was other text detected on this page\nWould you like to continue with the welcome?");
} else var oktogo = true;
var newtext = text + '\n';
if((/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/).test(wgPageName))
newtext += welcome.edit.textAnon;
else
newtext += welcome.edit.text;
document.getElementById('wpTextbox1').value = newtext;
document.getElementById('wpSummary').value = welcome.edit.summary;
if(!oktogo) return;
document.getElementById(welcome.edit.button).click();
});
}
}
//</nowiki></pre>