Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// /BareURLinline.js -- v3.0, with support for {{Bare URL PDF}} and {{Bare URL image}}
// Install with:
// <code><nowiki> {{subst:Iusc|User:BrownHairedGirl/BareURLinline.js}} </nowiki></code>
// or with
// <code><nowiki> importScript( 'User:BrownHairedGirl/BareURLinline.js' ); // Backlink: [[User:BrownHairedGirl/BareURLinline.js]] </nowiki></code>
// This script is hacked from [[User:DannyS712/Draft no cat.js]]
// If forking this script, please note our contributions / give us credit
if ( mw.config.get( 'wgNamespaceNumber' ) === 0) {
mw.loader.using( 'mediawiki.util', function () {
$(document).ready( function () {
var link = mw.util.addPortletLink( 'p-cactions', '#', 'BareURLinline', 'ca-bareurlinline', 'BareURLinline');
$( link ).click( function ( event ) {
event.preventDefault();
tag_bareurlinline();
} );
} );
} );
}
function tag_bareurlinline(){
var edit_summary = " tag(s) using [[User:BrownHairedGirl/BareURLinline.js|a script]]. "
+ "For other recently-tagged pages with [[WP:Bare URLs|bare URLs]], "
+ "see [[:Category:Articles with bare URLs for citations from " + bui_monthyear_datestamp() + "]]";
var send_req = {
action: 'query',
titles: mw.config.get( 'wgPageName' ),
prop: 'revisions',
intoken: 'edit',
rvprop: 'content',
indexpageids: 1,
dataType: 'xml',
format: 'xml'
};
var buiTagsAdded = 0;
var buPDFtagsAdded = 0;
var buimgtagsAdded = 0;
var buspreadsheettagsAdded = 0;
var wgPageName = mw.config.get( 'wgPageName' );
$.get( mw.config.get( 'wgScriptPath' ) + '/api.php', send_req, function( response ) {
var text = $( response ).find( 'rev' ).text();
const PDFURLregex = /\.pdf$/i;
const spreadsheetURLregex = /\.(xlsx?|ods)$/i;
const imageURLregex = /\.(JPG|JPEG|JP2|JPX|JPE|JFIF|JIF|TIFF|TIF|GIF|BMP|PNG|APNG|MNG|PBM|PGM|PPM|PNM|WEBP|HDR|HEIF|HEIFS|HEIC|HEICS|AVCI|AVCS|AVIF|AVIFS)$/i;
var newText = text
.replace(/(?<begin><ref[^>]*?\>)\s*\[?\s*(?<url>https?:[^>< \|\[\]]+)\s*\]?\s*(?<end><\s*\/\s*ref)/gi,
function(match, p1, p2, p3) {
if (p2.match(PDFURLregex)) {
buPDFtagsAdded += 1;
return p1 + p2 + ' {{Bare URL PDF|date=' + bui_monthyear_datestamp() + '}}' +p3;
}
else if (p2.match(imageURLregex)) {
buimgtagsAdded += 1;
return p1 + p2 + ' {{Bare URL image|date=' + bui_monthyear_datestamp() + '}}' +p3;
}
else if (p2.match(spreadsheetURLregex)) {
buspreadsheettagsAdded += 1;
return p1 + p2 + ' {{Bare URL spreadsheet|date=' + bui_monthyear_datestamp() + '}}' +p3;
}
else {
buiTagsAdded += 1;
return p1 + p2 + ' {{Bare URL inline|date=' + bui_monthyear_datestamp() + '}}' +p3;
}
}
);
if (text == newText) {
// nothing was changed
alert("[[" + wgPageName + "]]: No untagged bare URLs");
return;
}
newText = newText.replaceAll("<br>", "<br />");
newText = newText.replaceAll("<br/>", "<br />");
var tagsAdded = buiTagsAdded + buPDFtagsAdded + buimgtagsAdded + buspreadsheettagsAdded;
if (confirm("[[" + wgPageName + "]]: " + tagsAdded + " untagged bare URLs.\n\nTag them with {{Bare URL inline}}?")) {
var summaryExtra = "";
var mytagsummary = "";
if (buiTagsAdded > 0) {
mytagsummary = mytagsummary + buiTagsAdded + " {{[[Template:Bare URL inline|Bare URL inline]]}} ";
}
if (buPDFtagsAdded > 0) {
summaryExtra = summaryExtra + " and [[:Category:Articles with PDF format bare URLs for citations]]";
if (mytagsummary != "") {
mytagsummary = mytagsummary + "and ";
}
mytagsummary = mytagsummary + buPDFtagsAdded + " {{[[Template:Bare URL PDF|Bare URL PDF]]}} ";
}
if (buimgtagsAdded > 0) {
summaryExtra = summaryExtra + " and [[:Category:Articles with image file bare URLs for citations]]";
if (mytagsummary != "") {
mytagsummary = mytagsummary + "and ";
}
mytagsummary = mytagsummary + buimgtagsAdded + " {{[[Template:Bare URL image|Bare URL image]]}} ";
}
if (buspreadsheettagsAdded > 0) {
summaryExtra = summaryExtra + " and [[:Category:Articles with spreadsheet file bare URLs for citations]]";
if (mytagsummary != "") {
mytagsummary = mytagsummary + "and ";
}
mytagsummary = mytagsummary + buspreadsheettagsAdded + " {{[[Template:Bare URL spreadsheet|Bare URL spreadsheet]]}} ";
}
var submit = {
action: 'edit',
pageid: mw.config.get( 'wgArticleId' ),
text: newText,
summary: "Added " + mytagsummary + " " + edit_summary + summaryExtra,
minor: true,
token: mw.user.tokens.get( 'csrfToken' )
};
$.when(
$.post( mw.config.get( 'wgScriptPath' ) + '/api.php', submit, function( response ){ } )
).done( function() { location.reload();} );
}
} );
}
function bui_monthyear_datestamp() {
var d = new Date();
var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
var myyear = d.getFullYear();
let mydatestamp = month[d.getMonth()] + " " + myyear.toString();
return mydatestamp;
}