User:Gary/namespace redirect.js

/*

NAMESPACE REDIRECT

Description: Redirects pages that begin with certain prefixes to appropriate namespaces.

Example: C:Test -> :Category:Test, F:Test -> File:Test,

T:Test -> Template:Test, UT:TEST -> User Talk:Test

To edit a page, E:Test

For spam fighting: L:test.com -> Special:Linksearch/*.test.com

  • /

if (typeof(unsafeWindow) != 'undefined')

{

console = unsafeWindow.console;

mw = unsafeWindow.mw;

}

function namespaceRedirect()

{

if (mw.config.get('wgPageName') != 'Special:Search') return false;

var searchText = $('#searchText');

if (!searchText.length) return false;

var searchTerm = searchText.attr('value');

var colon = searchTerm.indexOf(':');

if (colon != -1)

{

var firstPart = searchTerm.substring(0, colon);

var secondPart = searchTerm.substring(colon + 1);

var pageName = '';

switch (firstPart.toUpperCase())

{

case 'C':

pageName = 'Category:' + secondPart;

break;

case 'F':

pageName = 'File:' + secondPart;

break;

case 'T':

pageName = 'Template:' + secondPart;

break;

case 'U':

pageName = 'User:' + secondPart;

break;

/* User:7 - add in User Talk namespace shortcut */

case 'UT':

pageName = 'User Talk:' + secondPart;

break;

/* User:7 - add in shortcut to do a link search for spam fighters*/

case 'L':

pageName = 'Special:LinkSearch/*.' + secondPart;

break;

}

if (pageName != '') window.location = mw.config.get('wgServer') + '/wiki/' + pageName;

else if (firstPart.toUpperCase() == 'E') window.location = mw.config.get('wgScriptPath') + '/index.php?title=' + secondPart + '&action=edit';

}

}

$(namespaceRedirect);