Chad has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/327415 )

Change subject: Empty out dead extension
......................................................................


Empty out dead extension

Change-Id: I88c654bd390a8a4ed20943e464ee51c47a6be231
---
D .gitignore
D .gitreview
D Gruntfile.js
D MWSearch.i18n.php
D MWSearch.php
D MWSearchUpdateHook.php
D MWSearchUpdater.php
D MWSearch_body.php
A OBSOLETE
D i18n/ace.json
D i18n/af.json
D i18n/an.json
D i18n/ar.json
D i18n/arz.json
D i18n/ast.json
D i18n/ba.json
D i18n/bar.json
D i18n/bcc.json
D i18n/be-tarask.json
D i18n/bg.json
D i18n/bn.json
D i18n/br.json
D i18n/bs.json
D i18n/ca.json
D i18n/ce.json
D i18n/cs.json
D i18n/cy.json
D i18n/da.json
D i18n/de.json
D i18n/diq.json
D i18n/dsb.json
D i18n/el.json
D i18n/en.json
D i18n/eo.json
D i18n/es.json
D i18n/et.json
D i18n/eu.json
D i18n/fa.json
D i18n/fi.json
D i18n/fr.json
D i18n/frp.json
D i18n/fur.json
D i18n/gl.json
D i18n/gsw.json
D i18n/he.json
D i18n/hi.json
D i18n/hil.json
D i18n/hr.json
D i18n/hsb.json
D i18n/ht.json
D i18n/hu.json
D i18n/ia.json
D i18n/id.json
D i18n/ig.json
D i18n/it.json
D i18n/ja.json
D i18n/jv.json
D i18n/ka.json
D i18n/ko.json
D i18n/ksh.json
D i18n/lb.json
D i18n/li.json
D i18n/lt.json
D i18n/lv.json
D i18n/map-bms.json
D i18n/mk.json
D i18n/ml.json
D i18n/mr.json
D i18n/ms.json
D i18n/mt.json
D i18n/nah.json
D i18n/nb.json
D i18n/nds.json
D i18n/new.json
D i18n/nl.json
D i18n/nn.json
D i18n/oc.json
D i18n/pl.json
D i18n/pms.json
D i18n/pt-br.json
D i18n/pt.json
D i18n/qqq.json
D i18n/ro.json
D i18n/roa-tara.json
D i18n/ru.json
D i18n/rue.json
D i18n/sah.json
D i18n/si.json
D i18n/sk.json
D i18n/sl.json
D i18n/sr-ec.json
D i18n/sr-el.json
D i18n/stq.json
D i18n/su.json
D i18n/sv.json
D i18n/te.json
D i18n/tg-cyrl.json
D i18n/tg-latn.json
D i18n/th.json
D i18n/tk.json
D i18n/tl.json
D i18n/tr.json
D i18n/tzm.json
D i18n/uk.json
D i18n/ur.json
D i18n/vec.json
D i18n/vi.json
D i18n/vo.json
D i18n/wa.json
D i18n/yi.json
D i18n/yue.json
D i18n/zh-hans.json
D i18n/zh-hant.json
D luceneUpdate.php
D package.json
115 files changed, 1 insertion(+), 2,471 deletions(-)

Approvals:
  Chad: Verified; Looks good to me, approved



diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1689d7a..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*~
-*.kate-swp
-.*.swp
-node_modules/**
diff --git a/.gitreview b/.gitreview
deleted file mode 100644
index ab2da39..0000000
--- a/.gitreview
+++ /dev/null
@@ -1,5 +0,0 @@
-[gerrit]
-host=gerrit.wikimedia.org
-port=29418
-project=mediawiki/extensions/MWSearch.git
-track=1
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index 7756e75..0000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*jshint node:true */
-module.exports = function ( grunt ) {
-       grunt.loadNpmTasks( 'grunt-jsonlint' );
-       grunt.loadNpmTasks( 'grunt-banana-checker' );
-
-       grunt.initConfig( {
-               banana: {
-                       all: 'i18n/'
-               },
-               jsonlint: {
-                       all: [
-                               '**/*.json',
-                               '!node_modules/**'
-                       ]
-               }
-       } );
-
-       grunt.registerTask( 'test', [ 'jsonlint', 'banana' ] );
-       grunt.registerTask( 'default', 'test' );
-};
diff --git a/MWSearch.i18n.php b/MWSearch.i18n.php
deleted file mode 100644
index ae657a2..0000000
--- a/MWSearch.i18n.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * This is a backwards-compatibility shim, generated by:
- * 
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
- *
- * Beginning with MediaWiki 1.23, translation strings are stored in json files,
- * and the EXTENSION.i18n.php file only exists to provide compatibility with
- * older releases of MediaWiki. For more information about this migration, see:
- * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
- *
- * This shim maintains compatibility back to MediaWiki 1.17.
- */
-$messages = array();
-if ( !function_exists( 'wfJsonI18nShim503bc7bff6f40556' ) ) {
-       function wfJsonI18nShim503bc7bff6f40556( $cache, $code, &$cachedData ) {
-               $codeSequence = array_merge( array( $code ), 
$cachedData['fallbackSequence'] );
-               foreach ( $codeSequence as $csCode ) {
-                       $fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
-                       if ( is_readable( $fileName ) ) {
-                               $data = FormatJson::decode( file_get_contents( 
$fileName ), true );
-                               foreach ( array_keys( $data ) as $key ) {
-                                       if ( $key === '' || $key[0] === '@' ) {
-                                               unset( $data[$key] );
-                                       }
-                               }
-                               $cachedData['messages'] = array_merge( $data, 
$cachedData['messages'] );
-                       }
-
-                       $cachedData['deps'][] = new FileDependency( $fileName );
-               }
-               return true;
-       }
-
-       $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 
'wfJsonI18nShim503bc7bff6f40556';
-}
diff --git a/MWSearch.php b/MWSearch.php
deleted file mode 100644
index ed23a3a..0000000
--- a/MWSearch.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/**
- * Copyright 2004, 2005 Kate Turner, Brion Vibber.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-# To use this, add something like the following to LocalSettings:
-#
-#  require_once("extensions/MWSearch/MWSearch.php");
-#
-#  $wgSearchType = 'LuceneSearch';
-#  $wgLuceneHost = '192.168.0.1';
-#  $wgLucenePort = 8123;
-#
-# To load-balance with from multiple servers:
-#
-#  $wgLuceneHost = array( "192.168.0.1", "192.168.0.2" );
-#
-# The MWDaemon search daemon needs to be running on the specified host(s)
-# - it's in the 'lucene-search' and 'mwsearch' modules in CVS.
-##########
-
-
-# Back-end version; set to 2.1 to add support for some advanced features.
-$wgLuceneSearchVersion = 2;
-
-# If to use lucene as a prefix search backend
-$wgEnableLucenePrefixSearch = false;
-
-# For how long (in seconds) to cache lucene results, off by default (0)
-# NOTE: caching is typically inefficient for queries, with cache
-# hit rates way below 1% even for very long expiry times
-$wgLuceneSearchCacheExpiry = 0;
-
-# timeout for search backend to respond
-$wgLuceneSearchTimeout = 6;
-
-$wgExtensionCredits['other'][] = array(
-       'path'           => __FILE__,
-       'name'           => 'MWSearch',
-       'author'         => array( 'Kate Turner', 'Brion Vibber' ),
-       'descriptionmsg' => 'mwsearch-desc',
-       'url'            => 'https://www.mediawiki.org/wiki/Extension:MWSearch',
-);
-
-$dir = __DIR__ . '/';
-
-$wgMessagesDirs['MWSearch'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['MWSearch'] = $dir . 'MWSearch.i18n.php';
-$wgExtensionFunctions[] = 'efLucenePrefixSetup';
-
-$wgAutoloadClasses['LuceneSearch'] = $dir . 'MWSearch_body.php';
-$wgAutoloadClasses['LuceneResult'] = $dir . 'MWSearch_body.php';
-$wgAutoloadClasses['LuceneSearchSet'] = $dir . 'MWSearch_body.php';
-$wgAutoloadClasses['MWSearchUpdater'] = $dir . 'MWSearchUpdater.php';
-
-function efLucenePrefixSetup() {
-       global $wgHooks, $wgLuceneSearchVersion, $wgEnableLucenePrefixSearch;
-       if( $wgLuceneSearchVersion >= 2.1 && $wgEnableLucenePrefixSearch ) {
-               $wgHooks['PrefixSearchBackend'][] = 
'LuceneSearch::prefixSearch';
-       }
-}
diff --git a/MWSearchUpdateHook.php b/MWSearchUpdateHook.php
deleted file mode 100644
index 3750ea0..0000000
--- a/MWSearchUpdateHook.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-require_once( 'MWSearchUpdater.php' );
-
-$wgExtensionFunctions[] = 'mwSearchUpdateHookSetup';
-
-function mwSearchUpdateHookSetup() {
-       global $wgHooks;
-       $wgHooks['ArticleSaveComplete'  ][] = 'mwSearchUpdateSave';
-       $wgHooks['ArticleDeleteComplete'][] = 'mwSearchUpdateDelete';
-       $wgHooks['TitleMoveComplete'    ][] = 'mwSearchUpdateMove';
-}
-
-/**
- * @param $article Article
- * @param $user
- * @param $text
- * @param $summary
- * @param $isminor
- * @param $iswatch
- * @param $section
- * @return bool
- */
-function mwSearchUpdateSave( $article, $user, $text, $summary, $isminor, 
$iswatch, $section ) {
-       global $wgDBname;
-       MWSearchUpdater::updatePage( $wgDBname, $article->getTitle(), $text );
-       return true;
-}
-
-/**
- * @param $article Article
- * @param $user
- * @param $reason
- * @return bool
- */
-function mwSearchUpdateDelete( $article, $user, $reason ) {
-       global $wgDBname;
-       MWSearchUpdater::deletePage( $wgDBname, $article->getTitle() );
-       return true;
-}
-
-/**
- * @param $from
- * @param $to Title
- * @param $user
- * @param $pageid
- * @param $redirid
- * @return bool
- */
-function mwSearchUpdateMove( $from, $to, $user, $pageid, $redirid ) {
-       global $wgDBname;
-       
-       $db = wfGetDB( DB_MASTER );
-       $pageRevision = Revision::loadFromPageId( $db, $pageid );
-       if( !is_null( $pageRevision ) ) {
-               MWSearchUpdater::updatePage( $wgDBname, $to, 
$pageRevision->getText() );
-       }
-       
-       $redirText = '#REDIRECT [[' . $to->getPrefixedText() . "]]\n";
-       MWSearchUpdater::updatePage( $wgDBname, $from, $redirText );
-       return true;
-}
-
diff --git a/MWSearchUpdater.php b/MWSearchUpdater.php
deleted file mode 100644
index 3113969..0000000
--- a/MWSearchUpdater.php
+++ /dev/null
@@ -1,195 +0,0 @@
-<?php
-
-// Requires PEAR XML_RPC module
-
-require_once( 'PEAR.php' );
-require_once( 'XML/RPC.php' );
-
-$mwSearchUpdateHost = 'localhost';
-$mwSearchUpdatePort = 8124;
-$mwSearchUpdateDebug = false;
-
-class MWSearchUpdater {
-       /**
-        * Queue a request to update a page in the search index.
-        *
-        * @param string $dbname
-        * @param Title $title
-        * @param string $text
-        * @return bool
-        * @static
-        */
-       static function updatePage( $dbname, $title, $text ) {
-               return MWSearchUpdater::sendRPC( 'searchupdater.updatePage',
-                       array( $dbname, $title, $text ) );
-       }
-
-       /**
-        * Queue a request to update a page in the search index,
-        * including metadata fields.
-        *
-        * @param string $dbname
-        * @param Title $title
-        * @param string $text
-        * @param array $metadata
-        * @return bool
-        * @static
-        */
-       static function updatePageData( $dbname, $title, $text, $metadata ) {
-               $translated = array();
-               foreach( $metadata as $pair ) {
-                       list( $key, $value ) = explode( '=', $pair, 2 );
-                       $translated[] = array( 'Key' => $key, 'Value' => $value 
);
-               }
-               return MWSearchUpdater::sendRPC( 'searchupdater.updatePageData',
-                       array( $dbname, $title, $text, $translated ) );
-       }
-
-       /**
-        * Queue a request to delete a page from the search index.
-        *
-        * @param string $dbname
-        * @param Title $title
-        * @return bool
-        * @static
-        */
-       static function deletePage( $dbname, $title ) {
-               return MWSearchUpdater::sendRPC( 'searchupdater.deletePage',
-                       array( $dbname, $title ) );
-       }
-
-       /**
-        * Get a brief bit of status info on the update daemon.
-        * @return string
-        * @static
-        */
-       static function getStatus() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.getStatus' );
-       }
-
-       /**
-        * Request that the daemon start applying updates if it's stopped.
-        * @return bool
-        * @static
-        */
-       static function start() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.start' );
-       }
-
-       /**
-        * Request that the daemon stop applying updates and close open indexes.
-        * @return bool
-        * @static
-        */
-       static function stop() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.stop' );
-       }
-
-       /**
-        * Request that the daemon stop applying updates and close open indexes.
-        * @return bool
-        * @static
-        */
-       static function quit() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.quit' );
-       }
-
-       /**
-        * Request that the daemon flush and reopen all indexes, without 
changing
-        * the global is-running state.
-        * @return bool
-        * @static
-        */
-       static function flushAll() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.flushAll' );
-       }
-
-       /**
-        * Request that the daemon flush and reopen all indexes, without 
changing
-        * the global is-running state, and that indexes should be optimized 
when
-        * closed.
-        * @return bool
-        * @static
-        */
-       static function optimize() {
-               return MWSearchUpdater::sendRPC( 'searchupdater.optimize' );
-       }
-
-       /**
-        * Request that the daemon flush and reopen a given index, without 
changing
-        * the global is-running state.
-        * @return bool
-        * @static
-        */
-       static function flush( $dbname ) {
-               return MWSearchUpdater::sendRPC( 'searchupdater.flush',
-                       array( $dbname ) );
-       }
-
-       /**
-        * @access private
-        * @static
-        */
-       static function outParam( $param ) {
-               if( $param instanceof Title ) {
-                       return new XML_RPC_Value(
-                               array(
-                                       'Namespace' => new XML_RPC_Value( 
$param->getNamespace(), 'int' ),
-                                       'Text'      => new XML_RPC_Value( 
$param->getText(), 'string' ) ),
-                                       'struct' );
-               } elseif( is_string( $param ) ) {
-                       return new XML_RPC_Value( $param, 'string' );
-               } elseif( is_array( $param ) ) {
-                       $type = 'array';
-                       if( count( $param ) ) {
-                               $keys = array_keys( $param );
-                               if( $keys[0] !== 0 ) {
-                                       $type = 'struct';
-                               }
-                       }
-                       $translated = array_map( array( 'MWSearchUpdater', 
'outParam' ), $param );
-                       return new XML_RPC_Value( $translated, $type );
-               } else {
-                       throw new MWException( 'MWSearchUpdater::sendRPC given 
bogus parameter' );
-               }
-       }
-
-       /**
-        * @access private
-        * @static
-        */
-       static function sendRPC( $method, $params = array() ) {
-               global $mwSearchUpdateHost, $mwSearchUpdatePort, 
$mwSearchUpdateDebug;
-               $client = new XML_RPC_Client( '/SearchUpdater', 
$mwSearchUpdateHost, $mwSearchUpdatePort );
-               if( $mwSearchUpdateDebug ) {
-                       $client->debug = true;
-               }
-
-               $rpcParams = array_map( array( 'MWSearchUpdater', 'outParam' ), 
$params );
-
-               $message = new XML_RPC_Message( $method, $rpcParams );
-               wfSuppressWarnings();
-               $start = microtime( true );
-               $result = $client->send( $message );
-               $delta = microtime( true ) - $start;
-               wfRestoreWarnings();
-
-               $debug = sprintf( "MWSearchUpdater::sendRPC for %s took 
%0.2fms\n",
-                       $method, $delta * 1000.0 );
-               wfDebug( $debug );
-               if( $mwSearchUpdateDebug ) {
-                       echo $debug;
-               }
-
-               if( !is_object( $result ) ) {
-                       throw new MWException( "XML-RPC error: 
{$client->errstr}" );
-               } elseif( $result->faultCode() ) {
-                       throw new MWException( $result->faultCode() . ': ' . 
$result->faultString() );
-               } else {
-                       $value = $result->value();
-                       return $value->getval();
-               }
-       }
-}
-
-
diff --git a/MWSearch_body.php b/MWSearch_body.php
deleted file mode 100644
index 9ad9b4a..0000000
--- a/MWSearch_body.php
+++ /dev/null
@@ -1,750 +0,0 @@
-<?php
-
-class LuceneSearch extends SearchEngine {
-       /**
-        * Perform a full text search query and return a result set.
-        *
-        * @param string $term - Raw search term
-        * @return LuceneSearchSet|Status
-        * @access public
-        */
-       function searchText( $term ) {
-               return LuceneSearchSet::newFromQuery( 'search', $term, 
$this->namespaces,
-                       $this->limit, $this->offset, 
$this->searchingEverything() );
-       }
-
-       /**
-        * Perform a title-only search query and return a result set.
-        *
-        * @param string $term - Raw search term
-        * @return null
-        * @access public
-        */
-       function searchTitle( $term ) {
-               return null;
-       }
-
-       /**
-        *  PrefixSearchBackend override for OpenSearch results
-        */
-       static function prefixSearch( $ns, $search, $limit, &$results, $offset 
= 0 ) {
-               $it = LuceneSearchSet::newFromQuery( 'prefix', $search, $ns, 
$limit, $offset );
-               $results = array();
-               if( $it && !$it instanceof Status ) { // $it can be null
-                       while( $res = $it->next() ) {
-                               $results[] = 
$res->getTitle()->getPrefixedText();
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Check if we are searching all the namespaces on this wiki
-        *
-        * @return boolean
-        */
-       function searchingEverything(){
-               return $this->namespaces ==  array_keys( 
SearchEngine::searchableNamespaces() );
-       }
-
-       /**
-        * Prepare query for the lucene-search daemon:
-        *
-        * 1) rewrite namespaces into standardized form
-        * e.g. image:clouds -> [6]:clouds
-        *
-        * 2) rewrite localizations of "search everything" keyword
-        * e.g. alle:heidegger -> all:heidegger
-        *
-        * @param string query
-        * @return string rewritten query
-        * @access private
-        */
-       function replacePrefixes( $query ) {
-               global $wgContLang;
-               wfProfileIn( __METHOD__ );
-
-               // quick check, most of the time we don't need any rewriting
-               if(strpos($query,':')===false){
-                       wfProfileOut( __METHOD__ );
-                       return $query;
-               }
-
-               // "search everything" keyword
-               $allkeyword = 
wfMessage('searchall')->inContentLanguage()->text();
-
-               global $wgCanonicalNamespaceNames, $wgNamespaceAliases;
-               $nsNamesRaw = array_merge($wgContLang->getNamespaces(), 
$wgCanonicalNamespaceNames,
-                       array_keys( array_merge($wgNamespaceAliases, 
$wgContLang->getNamespaceAliases()) ) );
-
-               # add all namespace names w/o spaces
-               $nsNames = array();
-               foreach($nsNamesRaw as $ns){
-                       if( $ns != ''){
-                               $nsNames[] = $ns;
-                               $nsNames[] = str_replace('_',' ',$ns);
-                       }
-               }
-
-               $regexp = implode('|',array_unique( $nsNames ));
-
-               # rewrite the query by replacing valid namespace names
-               $parts = preg_split('/(")/',$query,-1,PREG_SPLIT_DELIM_CAPTURE);
-               $inquotes = false;
-               $rewritten = '';
-               foreach($parts as $part){
-                       if( $part == '"'){ # stuff in quote doesnt get rewritten
-                               $rewritten .= $part;
-                               $inquotes = !$inquotes;
-                       } elseif( $inquotes ){
-                               $rewritten .= $part;
-                       } else{
-                               # replace namespaces
-                               $r = preg_replace_callback('/(^|[| 
:])('.$regexp.'):/i',array($this,'replaceNamespace'),$part);
-                               # replace to backend all: notation
-                               $rewritten .= str_replace($allkeyword.':', 
'all:', $r);
-                       }
-               }
-               wfProfileOut( __METHOD__ );
-               return $rewritten;
-       }
-
-       /** callback to replace namespace names to internal notation, e.g. 
User: -> [2]: */
-       function replaceNamespace($matches){
-               global $wgContLang;
-               $inx = $wgContLang->getNsIndex(str_replace(' ', '_', 
$matches[2]));
-               if ($inx === false)
-                       return $matches[0];
-               else
-                       return $matches[1]."[$inx]:";
-
-       }
-
-       /** Merge the prefix into the query (if any) */
-       function transformSearchTerm( $term ) {
-               global $wgLuceneSearchVersion;
-
-               if ( $wgLuceneSearchVersion >= 2.1 && $this->prefix != '' ){
-                       # convert to internal backend prefix notation
-                       $term = $term.' prefix:'.$this->prefix;
-               }
-               return $term;
-       }
-
-       public function supports( $feature ) {
-               switch ( $feature ) {
-               case 'search-update':
-                       return false;
-               default:
-                       return parent::supports( $feature );
-               }
-       }
-}
-
-class LuceneResult extends SearchResult {
-       /**
-        * Construct a result object from single result line
-        *
-        * @param array $lines
-        * @param string $method - method used to fetch these results
-        * @return array (float, Title)
-        * @access private
-        */
-       function __construct( $lines, $method ) {
-               global $wgContLang;
-
-               $interwiki = null;
-
-               $line = $lines['result'];
-               wfDebug( "Lucene line: '$line'\n" );
-
-               # detect format
-               $parts = explode(' ', $line);
-               if(count($parts) == 3)
-                       list( $score, $namespace, $title ) = $parts;
-               else
-                       list( $score, $interwiki, $namespace, $nsText, $title ) 
= $parts;
-
-               $score     = floatval( $score );
-               $namespace = intval( $namespace );
-               $title     = urldecode( $title );
-               if(!isset($nsText))
-                       $nsText = $wgContLang->getNsText($namespace);
-               else
-                       $nsText = urldecode($nsText);
-
-               $this->mInterwiki = '';
-               // make title
-               if( is_null($interwiki)){
-                       $this->mTitle = Title::makeTitle( $namespace, $title );
-               } else{
-                       $interwiki = urldecode( $interwiki );
-                       // there might be a better way to make an interwiki link
-                       $t = $interwiki.':'.$nsText.':'.str_replace( '_', ' ', 
$title );
-                       $this->mTitle = Title::newFromText( $t );
-                       $this->mInterwiki = $interwiki;
-               }
-
-               $this->mScore = $score;
-
-               $this->mWordCount = null;
-               if(array_key_exists("#h.wordcount",$lines))
-                       $this->mWordCount = intval($lines["#h.wordcount"][0]);
-
-               $this->mSize = null;
-               if(array_key_exists("#h.size",$lines))
-                       $this->mSize = intval($lines["#h.size"][0]);
-
-               $this->mDate = null;
-               if(array_key_exists("#h.date",$lines))
-                       $this->mDate = $lines["#h.date"][0];
-
-               // various snippets
-               list( $this->mHighlightTitle, $dummy ) = 
$this->extractSnippet($lines,$nsText,"#h.title");
-               if( is_null($this->mHighlightTitle) && $this->isInterwiki() ){
-                       // construct highlighted interwiki title without the 
interwiki part
-                       $this->mHighlightTitle = ($nsText==''? '' : 
$nsText.':') . str_replace( '_', ' ', $title );
-               }
-
-               list( $this->mHighlightText, $dummy ) = 
$this->extractSnippet($lines,'',"#h.text",true);
-
-               list( $this->mHighlightRedirect, $redirect ) = 
$this->extractSnippet($lines,$nsText,"#h.redirect");
-               $this->mRedirectTitle = null;
-               if( !is_null($redirect)){
-                       # build redirect Title object
-                       if($interwiki != ''){
-                               $t = $interwiki.':'.$redirect;
-                               $this->mRedirectTitle = Title::newFromText( $t 
);
-                       } else{
-                               $parts = explode(":",$redirect,2);
-                               $redirectNs = intval($parts[0]);
-                               $redirectText = str_replace('_', ' ', 
$parts[1]);
-                               $this->mRedirectTitle = 
Title::makeTitle($redirectNs,$redirectText);
-                       }
-               }
-
-               list( $this->mHighlightSection, $section) = 
$this->extractSnippet($lines,'',"#h.section");
-               $this->mSectionTitle = null;
-               if( !is_null($section)){
-                       # build title + fragment Title object
-                       $t = $nsText.':'.str_replace( '_', ' ', $title 
).'#'.$section;
-                       $this->mSectionTitle = Title::newFromText($t);
-               }
-
-               # fetch revision info if not an interwiki title, and not using 
prefix search
-               if($this->mInterwiki == '' && $method != 'prefix')
-                       $this->mRevision = Revision::newFromTitle( 
$this->mTitle );
-
-               if(!is_null($this->mTitle) && $this->mTitle->getNamespace() == 
NS_IMAGE)
-                       $this->mImage = wfFindFile( $this->mTitle );
-       }
-
-       /**
-        * Get the pair [highlighted snippet, unmodified text] for highlighted 
text
-        *
-        * @param string $lines
-        * @param string $nsText textual form of namespace
-        * @param string $type
-        * @param boolean $useFinalSeparator
-        * @return array (highlighted, unmodified text)
-        */
-       function extractSnippet($lines, $nsText, $type, 
$useFinalSeparator=false){
-               if(!array_key_exists($type,$lines))
-                       return array(null,null);
-               $ret = "";
-               $original = null;
-               foreach($lines[$type] as $h){
-                       list($s,$o) = 
$this->extractSnippetLine($h,$useFinalSeparator);
-                       $ret .= $s;
-                       $original = $o;
-               }
-               if($nsText!='')
-                       $ret = $nsText.':'.$ret;
-               return array($ret,$original);
-       }
-
-       /**
-        * Parse one line of a snippet
-        *
-        * @param string $line
-        * @param boolean $useFinalSeparator if "..." is to be appended to the 
end of snippet
-        * @access protected
-        * @return array(snippet,unmodified text)
-        */
-       function extractSnippetLine($line, $useFinalSeparator){
-               $parts = explode(" ",$line);
-               if(count($parts)!=4 && count($parts)!=5){
-                       wfDebug("Bad result line:".$line."\n");
-                       return "";
-               }
-               $splits = $this->stripBracketsSplit($parts[0]);
-               $highlight = $this->stripBracketsSplit($parts[1]);
-               $suffix = urldecode($this->stripBrackets($parts[2]));
-               $text = urldecode($parts[3]);
-               $original = null;
-               if(count($parts) > 4)
-                       $original = urldecode($parts[4]);
-
-               $splits[] = strlen($text);
-               $start = 0;
-               $snippet = "";
-               $hi = 0;
-               $ellipsis = wfMessage( 'ellipsis' 
)->inContentLanguage()->text();
-
-               foreach($splits as $sp){
-                       $sp = intval($sp);
-                       // highlight words!
-                       while($hi < count($highlight) && 
intval($highlight[$hi]) < $sp){
-                               $s = intval($highlight[$hi]);
-                               $e = intval($highlight[$hi+1]);
-                               $snippet .= 
substr($text,$start,$s-$start)."<span 
class='searchmatch'>".substr($text,$s,$e-$s)."</span>";
-                               $start = $e;
-                               $hi += 2;
-                       }
-                       // copy till split point
-                       $snippet .= substr($text,$start,$sp-$start);
-                       if($sp == strlen($text) && $suffix != '')
-                               $snippet .= $suffix;
-                       elseif($useFinalSeparator)
-                               $snippet .= " <b>" . $ellipsis . "</b> ";
-
-                       $start = $sp;
-               }
-               return array($snippet,$original);
-       }
-
-
-       /**
-        * @access private
-        */
-       function stripBrackets($str){
-               if($str == '[]')
-                       return '';
-               return substr($str,1,strlen($str)-2);
-       }
-
-       /**
-        * @access private
-        * @return array
-        */
-       function stripBracketsSplit($str){
-               $strip = $this->stripBrackets($str);
-               if($strip == '')
-                       return array();
-               else
-                       return explode(",",$strip);
-       }
-
-       function getTitle() {
-               return $this->mTitle;
-       }
-
-       function getScore() {
-               return null; // lucene scores are meaningless to the user...
-       }
-
-       function getTitleSnippet(){
-               if( is_null($this->mHighlightTitle) )
-                       return '';
-               return $this->mHighlightTitle;
-       }
-
-       function getTextSnippet($terms) {
-               if( is_null($this->mHighlightText) )
-                       return parent::getTextSnippet($terms);
-               return $this->mHighlightText;
-       }
-
-       function getRedirectSnippet() {
-               if( is_null($this->mHighlightRedirect) )
-                       return '';
-               return $this->mHighlightRedirect;
-       }
-
-       function getRedirectTitle(){
-               return $this->mRedirectTitle;
-       }
-
-       function getSectionSnippet(){
-               if( is_null($this->mHighlightSection) )
-                       return '';
-               return $this->mHighlightSection;
-       }
-
-       function getSectionTitle(){
-               return $this->mSectionTitle;
-       }
-
-       function getInterwikiPrefix(){
-               return $this->mInterwiki;
-       }
-
-       function isInterwiki(){
-               return $this->mInterwiki != '';
-       }
-
-       function getTimestamp(){
-               if( is_null($this->mDate) )
-                       return parent::getTimestamp();
-               return $this->mDate;
-       }
-
-       function getWordCount(){
-               if( is_null($this->mWordCount) )
-                       return parent::getWordCount();
-               return $this->mWordCount;
-       }
-
-       function getByteSize(){
-               if( is_null($this->mSize) )
-                       return parent::getByteSize();
-               return $this->mSize;
-       }
-}
-
-class LuceneSearchSet extends SearchResultSet {
-       /**
-        * Contact the MWDaemon search server and return a wrapper
-        * object with the set of results. Results may be cached.
-        *
-        * @param string $method The protocol verb to use
-        * @param string $query
-        * @param int $limit
-        * @param int $offset
-        * @param bool $searchAll
-        * @return LuceneSearchSet|Status
-        * @access public
-        */
-       static function newFromQuery( $method, $query, $namespaces = array(),
-               $limit = 20, $offset = 0, $searchAll = false ) {
-
-               wfProfileIn( __METHOD__ );
-
-               global $wgLuceneHost, $wgLucenePort, $wgDBname, $wgMemc;
-               global $wgLuceneSearchVersion, $wgLuceneSearchCacheExpiry;
-
-               $hosts = $wgLuceneHost;
-               if( $method == 'prefix'){
-                       global $wgLucenePrefixHost;
-                       if( isset($wgLucenePrefixHost) )
-                               $hosts = $wgLucenePrefixHost;
-               }
-
-               if( is_array( $hosts ) ) {
-                       $pick = mt_rand( 0, count( $hosts ) - 1 );
-                       $host = $hosts[$pick];
-               } else {
-                       $host = $hosts;
-               }
-
-               $enctext = rawurlencode( trim( $query ) );
-               $searchUrl = 
"http://$host:$wgLucenePort/$method/$wgDBname/$enctext?"; .
-                       wfArrayToCgi( array(
-                               'namespaces' => implode( ',', $namespaces ),
-                               'offset'     => $offset,
-                               'limit'      => $limit,
-                               'version'    => $wgLuceneSearchVersion,
-                               'iwlimit'        => 10,
-                               'searchall'  => $searchAll? 1 : 0,
-                       ) );
-
-               // try to fetch cached if caching is turned on
-               if($wgLuceneSearchCacheExpiry > 0){
-                       $key = "$wgDBname:lucene:" . md5( $searchUrl );
-                       $resultSet = $wgMemc->get( $key );
-                       if( is_object( $resultSet ) ) {
-                               wfDebug( __METHOD__ . ": got cached lucene 
results for key $key\n" );
-                               wfProfileOut( __METHOD__ );
-                               return $resultSet;
-                       }
-               }
-
-               $work = new PoolCounterWorkViaCallback( 'LuceneSearchRequest', 
"_lucene:host:$host",
-                       array( 'doWork' => function() use ( $host, $searchUrl ) 
{
-                               global $wgLuceneSearchTimeout;
-
-                               wfDebug( "Fetching search data from 
$searchUrl\n" );
-                               wfSuppressWarnings();
-                               $httpProfile ="LuceneSearchSet::newFromQuery" . 
'-contact-' . $host;
-                               wfProfileIn( $httpProfile );
-
-                               // Search server will be in local network but 
may not trigger checks on
-                               // Http::isLocal(), so suppress usage of 
$wgHTTPProxy if enabled.
-                               $req = MWHttpRequest::factory( $searchUrl,
-                                       array( 'proxy' => false, 'timeout' => 
$wgLuceneSearchTimeout ) );
-                               $status = $req->execute();
-                               $content = $req->getContent();
-                               $m = array();
-                               if( !$status->isGood() ) {
-                                       $errors = $status->getErrorsArray();
-                                       foreach( $errors as $err ) {
-                                               if( isset( $err[0] ) && $err[0] 
== 'http-timed-out' ) {
-                                                       wfDebugLog( 'mwsearch', 
"Search timeout requesting $searchUrl" );
-                                               }
-                                       }
-                                       if ( $req->getStatus() == 500
-                                               && $req->getResponseHeader( 
'Content-Type' ) == 'text/html'
-                                               && preg_match( 
'/<div>([^>]*)<\/div>/i', $content, $m ) )
-                                       {
-                                               $status = Status::newFatal( 
'mwsearch-backend-error', $m[1] );
-                                               if ( $m[1] !== 'Empty search' ) 
{
-                                                       wfDebugLog( 'mwsearch', 
'Search backend error: ' . $m[1] );
-                                               }
-                                       }
-                               } else {
-                                       $status->value = $content;
-                               }
-
-                               wfProfileOut( $httpProfile );
-                               wfRestoreWarnings();
-                               return $status;
-                       }, 'error' => function( $status ) {
-                               return $status;
-                       } ) );
-               $workStatus = $work->execute();
-
-               if( !$workStatus->isGood() ) {
-                       // Network error or server error
-                       wfProfileOut( __METHOD__ );
-                       return $workStatus;
-               } else {
-                       $inputLines = explode( "\n", trim( $workStatus->value ) 
);
-                       $resultLines = array_map( 'trim', $inputLines );
-               }
-
-               $suggestion = null;
-               $info = null;
-               $interwiki = null;
-
-               # All methods have same syntax...
-               $totalHits = array_shift( $resultLines );
-               if( $totalHits === false ) {
-                       # I/O error? this shouldn't happen
-                       wfDebug( "Couldn't read summary line...\n" );
-               } else {
-                       $totalHits = intval( $totalHits );
-                       wfDebug( "total [$totalHits] hits\n" );
-                       if($wgLuceneSearchVersion >= 2.1){
-                               # second line is info
-                               list($dummy,$info) = explode(' 
',array_shift($resultLines),2);
-                               # third line is suggestions
-                               $s = array_shift($resultLines);
-                               if(self::startsWith($s,'#suggest '))
-                                       $suggestion = $s;
-
-                               # fifth line is interwiki info line
-                               $iwHeading = array_shift($resultLines);
-                               list($dummy,$iwCount,$iwTotal) = explode(' 
',$iwHeading);
-                               if($iwCount>0){
-                                       # pack interwiki lines into a separate 
result set
-                                       $interwikiLen = 0;
-                                       
while(!self::startsWith($resultLines[$interwikiLen],"#results"))
-                                               $interwikiLen++;
-                                       $interwikiLines = 
array_splice($resultLines,0,$interwikiLen);
-                                       $interwiki = new LuceneSearchSet( 
$method, $query, $interwikiLines, intval($iwCount), intval($iwTotal) );
-                               }
-
-                               # how many results we got
-                               list($dummy,$resultCount) = explode(" 
",array_shift($resultLines));
-                               $resultCount = intval($resultCount);
-                       } else{
-                               $resultCount = count($resultLines);
-                       }
-               }
-
-
-               $resultSet = new LuceneSearchSet( $method, $query, 
$resultLines, $resultCount, $totalHits,
-                                        $suggestion, $info, $interwiki );
-
-               if($wgLuceneSearchCacheExpiry > 0){
-                       wfDebug( __METHOD__ . ": caching lucene results for key 
$key\n" );
-                       $wgMemc->add( $key, $resultSet, 
$wgLuceneSearchCacheExpiry );
-               }
-
-               wfProfileOut( __METHOD__ );
-               return $resultSet;
-       }
-
-       static function startsWith($source, $prefix){
-               return strncmp($source, $prefix, strlen($prefix)) == 0;
-       }
-
-       /**
-        * Private constructor. Use LuceneSearchSet::newFromQuery().
-        *
-        * @param string $method
-        * @param string $query
-        * @param array $lines
-        * @param int $resultCount
-        * @param int $totalHits
-        * @param string $suggestion
-        * @param string $info
-        * @access private
-        */
-       function __construct( $method, $query, $lines, $resultCount, $totalHits 
= null, $suggestion = null, $info = null, $interwiki = null ) {
-               $this->mMethod            = $method;
-               $this->mQuery             = $query;
-               $this->mTotalHits         = $totalHits;
-               $this->mResults           = $lines;
-               $this->mResultCount       = $resultCount;
-               $this->mPos               = 0;
-               $this->mSuggestionQuery   = null;
-               $this->mSuggestionSnippet = '';
-               $this->parseSuggestion($suggestion);
-               $this->mInfo              = $info;
-               $this->mInterwiki         = $interwiki;
-       }
-
-       /** Get suggestions from a suggestion result line */
-       function parseSuggestion($suggestion){
-               if( is_null($suggestion) )
-                       return;
-               // parse split points and highlight changes
-               list($dummy,$points,$sug) = explode(" ",$suggestion);
-               $sug = urldecode($sug);
-               $points = explode(",",substr($points,1,-1));
-               array_unshift($points,0);
-               $suggestText = "";
-               for($i=1;$i<count($points);$i+=2){
-                       $suggestText .= 
htmlspecialchars(substr($sug,$points[$i-1],$points[$i]-$points[$i-1]));
-                       $suggestText .= 
'<em>'.htmlspecialchars(substr($sug,$points[$i],$points[$i+1]-$points[$i]))."</em>";
-               }
-               $suggestText .= htmlspecialchars(substr($sug,end($points)));
-
-               $this->mSuggestionQuery = $this->replaceGenericPrefixes($sug);
-               $this->mSuggestionSnippet = 
$this->replaceGenericPrefixes($suggestText);
-       }
-
-       /** replace prefixes like [2]: that are not in phrases */
-       function replaceGenericPrefixes($text){
-               $out = "";
-               $phrases = explode('"',$text);
-               for($i=0;$i<count($phrases);$i+=2){
-                       $out .= preg_replace_callback('/\[([0-9]+)\]:/', 
array($this,'genericPrefixCallback'), $phrases[$i]);
-                       if($i+1 < count($phrases))
-                               $out .= '"'.$phrases[$i+1].'"'; // phrase text
-               }
-               return $out;
-       }
-
-       function genericPrefixCallback($matches){
-               global $wgContLang;
-               return $wgContLang->getFormattedNsText($matches[1]).":";
-       }
-
-       function numRows() {
-               return $this->mResultCount;
-       }
-
-       function termMatches() {
-               $resq = preg_replace( "/\\[.*?\\]:/", " ", $this->mQuery ); # 
generic prefixes
-               $resq = preg_replace( "/all:/", " ", $resq );
-
-               // Fixme: this is ripped from SearchMySQL and probably kind of 
sucks,
-               // but it handles quoted phrase searches more or less correctly.
-               // Should encapsulate this stuff better.
-
-               // FIXME: This doesn't handle parenthetical expressions.
-               $regexes = array();
-               $m = array();
-               $lc = SearchEngine::legalSearchChars();
-               if( preg_match_all( '/([-+<>~]?)(([' . $lc . 
']+)(\*?)|"[^"]*")/',
-                         $resq, $m, PREG_SET_ORDER ) ) {
-                       foreach( $m as $terms ) {
-                               if( !empty( $terms[3] ) ) {
-                                       // Match individual terms in result 
highlighting...
-                                       $regexp = preg_quote( $terms[3], '/' );
-                                       if( $terms[4] ) $regexp .= 
"[0-9A-Za-z_]+";
-                               } else {
-                                       // Match the quoted term in result 
highlighting...
-                                       $regexp = preg_quote( str_replace( '"', 
'', $terms[2] ), '/' );
-                               }
-                               $regexes[] = $regexp;
-                       }
-                       wfDebug( __METHOD__ . ': Match with /' . implode( '|', 
$regexes ) . "/\n" );
-               } else {
-                       wfDebug( "Can't understand search query '{$resq}'\n" );
-               }
-               return $regexes;
-       }
-
-       /**
-        * Stupid hack around PHP's limited lambda support
-        * @access private
-        */
-       function regexQuote( $term ) {
-               return preg_quote( $term, '/' );
-       }
-
-       function hasResults() {
-               return count( $this->mResults ) > 0;
-       }
-
-       /**
-        * Some search modes return a total hit count for the query
-        * in the entire article database. This may include pages
-        * in namespaces that would not be matched on the given
-        * settings.
-        *
-        * @return int
-        * @access public
-        */
-       function getTotalHits() {
-               return $this->mTotalHits;
-       }
-
-       /**
-        * Return a result set of hits on other (multiple) wikis associated 
with this one
-        *
-        * @return SearchResultSet
-        */
-       function getInterwikiResults() {
-               return $this->mInterwiki;
-       }
-
-       /**
-        * Some search modes return a suggested alternate term if there are
-        * no exact hits. Returns true if there is one on this set.
-        *
-        * @return bool
-        * @access public
-        */
-       function hasSuggestion() {
-               return is_string( $this->mSuggestionQuery ) && 
$this->mSuggestionQuery != '';
-       }
-
-       function getSuggestionQuery(){
-               return $this->mSuggestionQuery;
-       }
-
-       function getSuggestionSnippet(){
-               return $this->mSuggestionSnippet;
-       }
-
-       /**
-        * Fetches next search result, or false.
-        * @return LuceneResult
-        * @access public
-        * @abstract
-        */
-       function next() {
-               # Group together lines belonging to one hit
-               $group = array();
-
-               for(;$this->mPos < count($this->mResults);$this->mPos++){
-                       $l = trim($this->mResults[$this->mPos]);
-                       if(count($group) == 0) // main line
-                               $group['result'] = $l;
-                       elseif($l[0] == '#'){ // additional meta
-                               list($meta,$value) = explode(" ",$l,2);
-                               $group[$meta][] = $value;
-                       } else
-                               break;
-               }
-               if($group == false)
-                       return false;
-               else
-                       return new LuceneResult( $group, $this->mMethod );
-       }
-
-}
diff --git a/OBSOLETE b/OBSOLETE
new file mode 100644
index 0000000..8b5f06a
--- /dev/null
+++ b/OBSOLETE
@@ -0,0 +1 @@
+This extension has not worked since MediaWiki 1.24 or so and has been archived
diff --git a/i18n/ace.json b/i18n/ace.json
deleted file mode 100644
index dbfe36f..0000000
--- a/i18n/ace.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Si Gam Acèh"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/af.json b/i18n/af.json
deleted file mode 100644
index dcac424..0000000
--- a/i18n/af.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Naudefj"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-uitbreiding"
-}
diff --git a/i18n/an.json b/i18n/an.json
deleted file mode 100644
index 9bbd906..0000000
--- a/i18n/an.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Juanpabl"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/ar.json b/i18n/ar.json
deleted file mode 100644
index 8197447..0000000
--- a/i18n/ar.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Meno25"
-               ]
-       },
-       "mwsearch-desc": "إضافة MWSearch"
-}
diff --git a/i18n/arz.json b/i18n/arz.json
deleted file mode 100644
index 20325dd..0000000
--- a/i18n/arz.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Ramsis II"
-               ]
-       },
-       "mwsearch-desc": "اضافة MWSearch"
-}
diff --git a/i18n/ast.json b/i18n/ast.json
deleted file mode 100644
index fbef75b..0000000
--- a/i18n/ast.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Esbardu",
-                       "Xuacu"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch",
-       "mwsearch-backend-error": "El sistema de gueta devolvió un error: $1"
-}
diff --git a/i18n/ba.json b/i18n/ba.json
deleted file mode 100644
index 960815f..0000000
--- a/i18n/ba.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Assele"
-               ]
-       },
-       "mwsearch-desc": "MWSearch плагины"
-}
diff --git a/i18n/bar.json b/i18n/bar.json
deleted file mode 100644
index 54a5af9..0000000
--- a/i18n/bar.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Mucalexx"
-               ]
-       },
-       "mwsearch-desc": "Hintergrundprózess fyr d'Lucene-Suachmaschijn"
-}
diff --git a/i18n/bcc.json b/i18n/bcc.json
deleted file mode 100644
index 711ac1c..0000000
--- a/i18n/bcc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Mostafadaneshvar"
-               ]
-       },
-       "mwsearch-desc": "پلاگین گردگ م.و"
-}
diff --git a/i18n/be-tarask.json b/i18n/be-tarask.json
deleted file mode 100644
index 7f886a7..0000000
--- a/i18n/be-tarask.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Jim-by",
-                       "Wizardist"
-               ]
-       },
-       "mwsearch-desc": "Плагін MWSearch",
-       "mwsearch-backend-error": "Бэкэнд пошуку вярнуў памылку: $1"
-}
diff --git a/i18n/bg.json b/i18n/bg.json
deleted file mode 100644
index 97b12f2..0000000
--- a/i18n/bg.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "DCLXVI"
-               ]
-       },
-       "mwsearch-desc": "Разширение за търсене в МедияУики"
-}
diff --git a/i18n/bn.json b/i18n/bn.json
deleted file mode 100644
index d8825cd..0000000
--- a/i18n/bn.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Bellayet"
-               ]
-       },
-       "mwsearch-desc": "MWSearch প্লাগইন"
-}
diff --git a/i18n/br.json b/i18n/br.json
deleted file mode 100644
index 5f2fb72..0000000
--- a/i18n/br.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Fulup"
-               ]
-       },
-       "mwsearch-desc": "Adveziant MWSearch evit ar c'hlaskoù e MediaWiki"
-}
diff --git a/i18n/bs.json b/i18n/bs.json
deleted file mode 100644
index eee738b..0000000
--- a/i18n/bs.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "CERminator"
-               ]
-       },
-       "mwsearch-desc": "Modul pretrage za MediaWiki"
-}
diff --git a/i18n/ca.json b/i18n/ca.json
deleted file mode 100644
index 930e6c4..0000000
--- a/i18n/ca.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Paucabot"
-               ]
-       },
-       "mwsearch-desc": "Extensió MWSearch"
-}
diff --git a/i18n/ce.json b/i18n/ce.json
deleted file mode 100644
index de8e3b2..0000000
--- a/i18n/ce.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Умар"
-               ]
-       },
-       "mwsearch-backend-error": "Лахаро гайтина гӀалат: $1"
-}
diff --git a/i18n/cs.json b/i18n/cs.json
deleted file mode 100644
index b98832d..0000000
--- a/i18n/cs.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Matěj Grabovský",
-                       "Mormegil"
-               ]
-       },
-       "mwsearch-desc": "Zásuvný modul MWSearch",
-       "mwsearch-backend-error": "Vyhledávací stroj vrátil chybu: $1"
-}
diff --git a/i18n/cy.json b/i18n/cy.json
deleted file mode 100644
index e5a9b39..0000000
--- a/i18n/cy.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Lloffiwr"
-               ]
-       },
-       "mwsearch-desc": "Ategyn MWSearch",
-       "mwsearch-backend-error": "Cafwyd gwall wrth chwilio yng nghrombil y 
prosesydd: $1"
-}
diff --git a/i18n/da.json b/i18n/da.json
deleted file mode 100644
index d1fe477..0000000
--- a/i18n/da.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Froztbyte"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-plugin"
-}
diff --git a/i18n/de.json b/i18n/de.json
deleted file mode 100644
index 4f32588..0000000
--- a/i18n/de.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Kghbln",
-                       "Metalhead64",
-                       "Raimond Spekking"
-               ]
-       },
-       "mwsearch-desc": "Ermöglicht einen Hintergrundprozess für die 
Lucene-Suchmaschine",
-       "mwsearch-backend-error": "Das Such-Backend hat einen Fehler 
zurückgegeben: $1"
-}
diff --git a/i18n/diq.json b/i18n/diq.json
deleted file mode 100644
index e14854f..0000000
--- a/i18n/diq.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Aspar"
-               ]
-       },
-       "mwsearch-desc": "zeylê MWSearchi"
-}
diff --git a/i18n/dsb.json b/i18n/dsb.json
deleted file mode 100644
index fbb7279..0000000
--- a/i18n/dsb.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Michawiki"
-               ]
-       },
-       "mwsearch-desc": "Tykac MWSearch"
-}
diff --git a/i18n/el.json b/i18n/el.json
deleted file mode 100644
index d0e075a..0000000
--- a/i18n/el.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Dead3y3"
-               ]
-       },
-       "mwsearch-desc": "Πρόσθετο MWSearch"
-}
diff --git a/i18n/en.json b/i18n/en.json
deleted file mode 100644
index 5ccb3e1..0000000
--- a/i18n/en.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-       "@metadata": {
-               "authors": []
-       },
-       "mwsearch-desc": "MWSearch plugin",
-       "mwsearch-backend-error": "The search backend returned an error: $1"
-}
\ No newline at end of file
diff --git a/i18n/eo.json b/i18n/eo.json
deleted file mode 100644
index d063178..0000000
--- a/i18n/eo.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Yekrats"
-               ]
-       },
-       "mwsearch-desc": "Etendilo ''MWSearch''"
-}
diff --git a/i18n/es.json b/i18n/es.json
deleted file mode 100644
index 50a003c..0000000
--- a/i18n/es.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Remember the dot",
-                       "Fitoschido"
-               ]
-       },
-       "mwsearch-desc": "Complemento MWSearch",
-       "mwsearch-backend-error": "El motor de búsqueda devolvió un error: $1"
-}
diff --git a/i18n/et.json b/i18n/et.json
deleted file mode 100644
index 9fd31ec..0000000
--- a/i18n/et.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Pikne"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-lisa"
-}
diff --git a/i18n/eu.json b/i18n/eu.json
deleted file mode 100644
index 5cec39b..0000000
--- a/i18n/eu.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "An13sa"
-               ]
-       },
-       "mwsearch-desc": "MMWSearch plugina"
-}
diff --git a/i18n/fa.json b/i18n/fa.json
deleted file mode 100644
index 40fb9b3..0000000
--- a/i18n/fa.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Huji",
-                       "Reza1615"
-               ]
-       },
-       "mwsearch-desc": "افزونهٔ MWSearch",
-       "mwsearch-backend-error": "کد جستجو با خطا مواجه شد: $1"
-}
diff --git a/i18n/fi.json b/i18n/fi.json
deleted file mode 100644
index b05adff..0000000
--- a/i18n/fi.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Nike"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-liitännäinen"
-}
diff --git a/i18n/fr.json b/i18n/fr.json
deleted file mode 100644
index 81bce12..0000000
--- a/i18n/fr.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Gomoko",
-                       "Grondin",
-                       "IAlex",
-                       "Urhixidur"
-               ]
-       },
-       "mwsearch-desc": "Extension pour les recherches dans MediaWiki",
-       "mwsearch-backend-error": "La recherche d’arrière-plan a renvoyé une 
erreur : $1"
-}
diff --git a/i18n/frp.json b/i18n/frp.json
deleted file mode 100644
index d81d243..0000000
--- a/i18n/frp.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "ChrisPtDe"
-               ]
-       },
-       "mwsearch-desc": "Modulo d’èxtension por les rechèrches dens MediaWiki."
-}
diff --git a/i18n/fur.json b/i18n/fur.json
deleted file mode 100644
index 4cf924f..0000000
--- a/i18n/fur.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Klenje"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/gl.json b/i18n/gl.json
deleted file mode 100644
index c3a3ea3..0000000
--- a/i18n/gl.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Toliño"
-               ]
-       },
-       "mwsearch-desc": "Complemento MWSearch",
-       "mwsearch-backend-error": "O sistema de procuras devolveu un erro: $1"
-}
diff --git a/i18n/gsw.json b/i18n/gsw.json
deleted file mode 100644
index 89f6f2d..0000000
--- a/i18n/gsw.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Als-Holder"
-               ]
-       },
-       "mwsearch-desc": "Hintergrundprozäss fir d Lucene-Suechmaschin"
-}
diff --git a/i18n/he.json b/i18n/he.json
deleted file mode 100644
index 7c72222..0000000
--- a/i18n/he.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Amire80",
-                       "Rotem Liss"
-               ]
-       },
-       "mwsearch-desc": "תוסף MWSearch",
-       "mwsearch-backend-error": "שרת החיפוש החזיר שגיאה: $1"
-}
diff --git a/i18n/hi.json b/i18n/hi.json
deleted file mode 100644
index d803301..0000000
--- a/i18n/hi.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Kaustubh"
-               ]
-       },
-       "mwsearch-desc": "एमडब्ल्यूखोज प्लगीन"
-}
diff --git a/i18n/hil.json b/i18n/hil.json
deleted file mode 100644
index 15ce3df..0000000
--- a/i18n/hil.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Tagimata"
-               ]
-       },
-       "mwsearch-desc": "MWPangita plugin"
-}
diff --git a/i18n/hr.json b/i18n/hr.json
deleted file mode 100644
index 73c10c9..0000000
--- a/i18n/hr.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Dalibor Bosits"
-               ]
-       },
-       "mwsearch-desc": "Plugin za MWSearch"
-}
diff --git a/i18n/hsb.json b/i18n/hsb.json
deleted file mode 100644
index a66e9cb..0000000
--- a/i18n/hsb.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Michawiki"
-               ]
-       },
-       "mwsearch-desc": "Tykač MWSearch",
-       "mwsearch-backend-error": "Pytanska funkcija je zmylk wróćiła: $1"
-}
diff --git a/i18n/ht.json b/i18n/ht.json
deleted file mode 100644
index 368dbcd..0000000
--- a/i18n/ht.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Masterches"
-               ]
-       },
-       "mwsearch-desc": "Yon ekstansyon, plug-in pou MWSearch"
-}
diff --git a/i18n/hu.json b/i18n/hu.json
deleted file mode 100644
index 857a665..0000000
--- a/i18n/hu.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Dani"
-               ]
-       },
-       "mwsearch-desc": "MWSearch beépülő modul"
-}
diff --git a/i18n/ia.json b/i18n/ia.json
deleted file mode 100644
index 2b4fcc1..0000000
--- a/i18n/ia.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "McDutchie"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/id.json b/i18n/id.json
deleted file mode 100644
index 8e5cc8a..0000000
--- a/i18n/id.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Rex"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/ig.json b/i18n/ig.json
deleted file mode 100644
index c47fb4a..0000000
--- a/i18n/ig.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Ukabia"
-               ]
-       },
-       "mwsearch-desc": "MWChöwá jikodo"
-}
diff --git a/i18n/it.json b/i18n/it.json
deleted file mode 100644
index 39f4abf..0000000
--- a/i18n/it.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Beta16",
-                       "Darth Kule"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch",
-       "mwsearch-backend-error": "Il backend di ricerca ha restituito un 
errore: $1"
-}
diff --git a/i18n/ja.json b/i18n/ja.json
deleted file mode 100644
index b5f3c73..0000000
--- a/i18n/ja.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Muttley",
-                       "Shirayuki"
-               ]
-       },
-       "mwsearch-desc": "MediaWiki検索プラグイン",
-       "mwsearch-backend-error": "検索バックエンドがエラーを返しました: $1"
-}
diff --git a/i18n/jv.json b/i18n/jv.json
deleted file mode 100644
index 99ea9c2..0000000
--- a/i18n/jv.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Meursault2004"
-               ]
-       },
-       "mwsearch-desc": "plugin MWSearch"
-}
diff --git a/i18n/ka.json b/i18n/ka.json
deleted file mode 100644
index 09cebd6..0000000
--- a/i18n/ka.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "BRUTE"
-               ]
-       },
-       "mwsearch-desc": "MWSearch მოდული"
-}
diff --git a/i18n/ko.json b/i18n/ko.json
deleted file mode 100644
index 187cf21..0000000
--- a/i18n/ko.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Kwj2772",
-                       "아라"
-               ]
-       },
-       "mwsearch-desc": "MWSearch 플러그인",
-       "mwsearch-backend-error": "검색 백엔드 오류를 반환했습니다: $1"
-}
diff --git a/i18n/ksh.json b/i18n/ksh.json
deleted file mode 100644
index aecb43c..0000000
--- a/i18n/ksh.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Purodha"
-               ]
-       },
-       "mwsearch-desc": "De Hengerjrondprozeß för de <i lang=\"en\">Lucene</i> 
Söke.",
-       "mwsearch-backend-error": "Beim Söhke kohm ene Fähler erus: $1"
-}
diff --git a/i18n/lb.json b/i18n/lb.json
deleted file mode 100644
index e91d251..0000000
--- a/i18n/lb.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Robby"
-               ]
-       },
-       "mwsearch-desc": "Plug-in Sichen Media-Wiki",
-       "mwsearch-backend-error": "D'Sichfonctioun huet e Feeler generéiert: $1"
-}
diff --git a/i18n/li.json b/i18n/li.json
deleted file mode 100644
index 3e318dc..0000000
--- a/i18n/li.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Ooswesthoesbes"
-               ]
-       },
-       "mwsearch-desc": "MWZeuk ingaef"
-}
diff --git a/i18n/lt.json b/i18n/lt.json
deleted file mode 100644
index 7f4c0c4..0000000
--- a/i18n/lt.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Matasg"
-               ]
-       },
-       "mwsearch-desc": "MWSearch įskiepis"
-}
diff --git a/i18n/lv.json b/i18n/lv.json
deleted file mode 100644
index 279d06b..0000000
--- a/i18n/lv.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Papuass"
-               ]
-       },
-       "mwsearch-desc": "MWSearch spraudnis",
-       "mwsearch-backend-error": "Meklēšanas sistēma atgrieza kļūdu: $1"
-}
diff --git a/i18n/map-bms.json b/i18n/map-bms.json
deleted file mode 100644
index 2dd056c..0000000
--- a/i18n/map-bms.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "StefanusRA"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/mk.json b/i18n/mk.json
deleted file mode 100644
index 15997a5..0000000
--- a/i18n/mk.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Bjankuloski06"
-               ]
-       },
-       "mwsearch-desc": "Приклучок MWSearch",
-       "mwsearch-backend-error": "Пребараното место даде грешка: $1"
-}
diff --git a/i18n/ml.json b/i18n/ml.json
deleted file mode 100644
index c51a4b8..0000000
--- a/i18n/ml.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Shijualex"
-               ]
-       },
-       "mwsearch-desc": "മീഡിയാവിക്കി തിരച്ചിൽ പ്ലഗിൻ"
-}
diff --git a/i18n/mr.json b/i18n/mr.json
deleted file mode 100644
index 4007f47..0000000
--- a/i18n/mr.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Kaustubh"
-               ]
-       },
-       "mwsearch-desc": "एमडब्ल्यूशोध प्लगीन"
-}
diff --git a/i18n/ms.json b/i18n/ms.json
deleted file mode 100644
index 0fa5419..0000000
--- a/i18n/ms.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Anakmalaysia",
-                       "Aviator"
-               ]
-       },
-       "mwsearch-desc": "Pemalam MWSearch",
-       "mwsearch-backend-error": "Backend carian telah memulangkan ralat: $1"
-}
diff --git a/i18n/mt.json b/i18n/mt.json
deleted file mode 100644
index 0cc238d..0000000
--- a/i18n/mt.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Chrisportelli"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/nah.json b/i18n/nah.json
deleted file mode 100644
index 54b1e69..0000000
--- a/i18n/nah.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Fluence"
-               ]
-       },
-       "mwsearch-desc": "HMTlatēmoaliztli"
-}
diff --git a/i18n/nb.json b/i18n/nb.json
deleted file mode 100644
index 1465c4a..0000000
--- a/i18n/nb.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Jon Harald Søby"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-programtillegg",
-       "mwsearch-backend-error": "Søkebakstykket returnerte en feil: $1"
-}
diff --git a/i18n/nds.json b/i18n/nds.json
deleted file mode 100644
index b51f4cd..0000000
--- a/i18n/nds.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Slomox"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-Plugin"
-}
diff --git a/i18n/new.json b/i18n/new.json
deleted file mode 100644
index 365a257..0000000
--- a/i18n/new.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Eukesh"
-               ]
-       },
-       "mwsearch-desc": "MWमालेज्या प्लगइन"
-}
diff --git a/i18n/nl.json b/i18n/nl.json
deleted file mode 100644
index b27f52d..0000000
--- a/i18n/nl.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "SPQRobin",
-                       "Siebrand",
-                       "Akoopal"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-plugin",
-       "mwsearch-backend-error": "De zoekmachine heeft een foutmelding 
teruggegeven: $1"
-}
diff --git a/i18n/nn.json b/i18n/nn.json
deleted file mode 100644
index ae3c9a3..0000000
--- a/i18n/nn.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Harald Khan",
-                       "Njardarlogar"
-               ]
-       },
-       "mwsearch-desc": "MWSearch-programtillegg"
-}
diff --git a/i18n/oc.json b/i18n/oc.json
deleted file mode 100644
index f554adf..0000000
--- a/i18n/oc.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Cedric31"
-               ]
-       },
-       "mwsearch-desc": "Plug-in Recèrcas MW"
-}
diff --git a/i18n/pl.json b/i18n/pl.json
deleted file mode 100644
index c2cd072..0000000
--- a/i18n/pl.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Wpedzich"
-               ]
-       },
-       "mwsearch-desc": "Wtyczka MWSearch"
-}
diff --git a/i18n/pms.json b/i18n/pms.json
deleted file mode 100644
index 026a0d6..0000000
--- a/i18n/pms.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Dragonòt"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/pt-br.json b/i18n/pt-br.json
deleted file mode 100644
index 266751e..0000000
--- a/i18n/pt-br.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Carla404",
-                       "Cainamarques"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch",
-       "mwsearch-backend-error": "O sistema de busca retornou um erro: $1"
-}
diff --git a/i18n/pt.json b/i18n/pt.json
deleted file mode 100644
index 6c17d24..0000000
--- a/i18n/pt.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Malafaya",
-                       "Hamilton Abreu"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch",
-       "mwsearch-backend-error": "O servidor de pesquisas devolveu um erro: $1"
-}
diff --git a/i18n/qqq.json b/i18n/qqq.json
deleted file mode 100644
index fbc0090..0000000
--- a/i18n/qqq.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Nike",
-                       "Raimond Spekking",
-                       "Raymond",
-                       "Shirayuki",
-                       "Umherirrender"
-               ]
-       },
-       "mwsearch-desc": "{{desc|name=MediaWiki 
Search|url=https://www.mediawiki.org/wiki/Extension:MWSearch}}";,
-       "mwsearch-backend-error": "Used as fatal error message. Parameters:\n* 
$1 - error message which is extracted from the \"500 internal server error\" 
page"
-}
diff --git a/i18n/ro.json b/i18n/ro.json
deleted file mode 100644
index 283cb5d..0000000
--- a/i18n/ro.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Stelistcristi"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/roa-tara.json b/i18n/roa-tara.json
deleted file mode 100644
index 5cf00d2..0000000
--- a/i18n/roa-tara.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Joetaras"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch",
-       "mwsearch-backend-error": "'A ricerche de rrete ave turnate 'n'errore: 
$1"
-}
diff --git a/i18n/ru.json b/i18n/ru.json
deleted file mode 100644
index f0f5537..0000000
--- a/i18n/ru.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Okras",
-                       "Александр Сигачёв"
-               ]
-       },
-       "mwsearch-desc": "Плагин MWSearch",
-       "mwsearch-backend-error": "Поисковый бэкенд возвратил ошибку: $1"
-}
diff --git a/i18n/rue.json b/i18n/rue.json
deleted file mode 100644
index 39235c4..0000000
--- a/i18n/rue.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Gazeb"
-               ]
-       },
-       "mwsearch-desc": "Плаґін MWSearch"
-}
diff --git a/i18n/sah.json b/i18n/sah.json
deleted file mode 100644
index 0c3149e..0000000
--- a/i18n/sah.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "HalanTul"
-               ]
-       },
-       "mwsearch-desc": "MWSearch плагин"
-}
diff --git a/i18n/si.json b/i18n/si.json
deleted file mode 100644
index ccb1a36..0000000
--- a/i18n/si.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "පසිඳු කාවින්ද"
-               ]
-       },
-       "mwsearch-desc": "MWසෙවුම් ප්ලගිනය"
-}
diff --git a/i18n/sk.json b/i18n/sk.json
deleted file mode 100644
index 722caf5..0000000
--- a/i18n/sk.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Helix84"
-               ]
-       },
-       "mwsearch-desc": "Zásuvný modul MWSearch"
-}
diff --git a/i18n/sl.json b/i18n/sl.json
deleted file mode 100644
index 5f447cb..0000000
--- a/i18n/sl.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Dbc334"
-               ]
-       },
-       "mwsearch-desc": "Vtičnik MWSearch",
-       "mwsearch-backend-error": "Ozadje iskanja je vrnilo napako: $1"
-}
diff --git a/i18n/sr-ec.json b/i18n/sr-ec.json
deleted file mode 100644
index 30819d2..0000000
--- a/i18n/sr-ec.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Millosh"
-               ]
-       },
-       "mwsearch-desc": "MWSearch додатак"
-}
diff --git a/i18n/sr-el.json b/i18n/sr-el.json
deleted file mode 100644
index 23d5f33..0000000
--- a/i18n/sr-el.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Michaello"
-               ]
-       },
-       "mwsearch-desc": "MWSearch dodatak"
-}
diff --git a/i18n/stq.json b/i18n/stq.json
deleted file mode 100644
index 2200721..0000000
--- a/i18n/stq.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Pyt"
-               ]
-       },
-       "mwsearch-desc": "Bäätergruundprozess foar ju Lucene-Säikmaskine"
-}
diff --git a/i18n/su.json b/i18n/su.json
deleted file mode 100644
index b06bafe..0000000
--- a/i18n/su.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Kandar"
-               ]
-       },
-       "mwsearch-desc": "Plugin MWSearch"
-}
diff --git a/i18n/sv.json b/i18n/sv.json
deleted file mode 100644
index 411a1e6..0000000
--- a/i18n/sv.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Lokal Profil",
-                       "M.M.S."
-               ]
-       },
-       "mwsearch-desc": "MWSearch-programtillägg",
-       "mwsearch-backend-error": "Sök-backend returnerade ett fel: $1"
-}
diff --git a/i18n/te.json b/i18n/te.json
deleted file mode 100644
index a6e1dba..0000000
--- a/i18n/te.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "వైజాసత్య"
-               ]
-       },
-       "mwsearch-desc": "మీ.వి.శోధనా పొడిగింపు"
-}
diff --git a/i18n/tg-cyrl.json b/i18n/tg-cyrl.json
deleted file mode 100644
index f5fd33d..0000000
--- a/i18n/tg-cyrl.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Ibrahim"
-               ]
-       },
-       "mwsearch-desc": "Афзунаи MWSearch"
-}
diff --git a/i18n/tg-latn.json b/i18n/tg-latn.json
deleted file mode 100644
index a6a496a..0000000
--- a/i18n/tg-latn.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Liangent"
-               ]
-       },
-       "mwsearch-desc": "Afzunai MWSearch"
-}
diff --git a/i18n/th.json b/i18n/th.json
deleted file mode 100644
index a382dae..0000000
--- a/i18n/th.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Octahedron80"
-               ]
-       },
-       "mwsearch-desc": "ปลั๊กอิน MWSearch"
-}
diff --git a/i18n/tk.json b/i18n/tk.json
deleted file mode 100644
index 8d3c025..0000000
--- a/i18n/tk.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Hanberke"
-               ]
-       },
-       "mwsearch-desc": "MWSearch goşmaça moduly"
-}
diff --git a/i18n/tl.json b/i18n/tl.json
deleted file mode 100644
index ad5cd75..0000000
--- a/i18n/tl.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "AnakngAraw"
-               ]
-       },
-       "mwsearch-desc": "Pampasak na MWHanapin (''MWSearch'')"
-}
diff --git a/i18n/tr.json b/i18n/tr.json
deleted file mode 100644
index 7f9e832..0000000
--- a/i18n/tr.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Joseph"
-               ]
-       },
-       "mwsearch-desc": "MWSearch eklentisi"
-}
diff --git a/i18n/tzm.json b/i18n/tzm.json
deleted file mode 100644
index a831a15..0000000
--- a/i18n/tzm.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Tifinaghes"
-               ]
-       },
-       "mwsearch-desc": "ⵜⴰⵔⵏⵓⵜ ⵏ MWSearch"
-}
diff --git a/i18n/uk.json b/i18n/uk.json
deleted file mode 100644
index baea900..0000000
--- a/i18n/uk.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Ahonc",
-                       "Andriykopanytsia"
-               ]
-       },
-       "mwsearch-desc": "Плаґін MWSearch",
-       "mwsearch-backend-error": "Сервер пошуку повернув помилку: $1"
-}
diff --git a/i18n/ur.json b/i18n/ur.json
deleted file mode 100644
index b1eb613..0000000
--- a/i18n/ur.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Noor2020"
-               ]
-       },
-       "mwsearch-backend-error": "اس تلاش کے پیش نظر یہ غلطی ہے ۔ $1"
-}
diff --git a/i18n/vec.json b/i18n/vec.json
deleted file mode 100644
index 0e6b57c..0000000
--- a/i18n/vec.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Candalua"
-               ]
-       },
-       "mwsearch-desc": "MWSearch plugin",
-       "mwsearch-backend-error": "El backend de riserca el ga dato un eror: $1"
-}
diff --git a/i18n/vi.json b/i18n/vi.json
deleted file mode 100644
index 71ca40d..0000000
--- a/i18n/vi.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Minh Nguyen"
-               ]
-       },
-       "mwsearch-desc": "Phần bổ trợ MWSearch",
-       "mwsearch-backend-error": "Phía sau tìm kiếm đã gây lỗi: $1"
-}
diff --git a/i18n/vo.json b/i18n/vo.json
deleted file mode 100644
index 50e8dd1..0000000
--- a/i18n/vo.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Smeira"
-               ]
-       },
-       "mwsearch-desc": "program: MWSearch"
-}
diff --git a/i18n/wa.json b/i18n/wa.json
deleted file mode 100644
index d282c05..0000000
--- a/i18n/wa.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Srtxg"
-               ]
-       },
-       "mwsearch-desc": "Tchôke-divins d' cweraedje po MediaWiki"
-}
diff --git a/i18n/yi.json b/i18n/yi.json
deleted file mode 100644
index 4deddc2..0000000
--- a/i18n/yi.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "פוילישער"
-               ]
-       },
-       "mwsearch-desc": "MWSearch צוגאָב"
-}
diff --git a/i18n/yue.json b/i18n/yue.json
deleted file mode 100644
index 73e9589..0000000
--- a/i18n/yue.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Shinjiman",
-                       "Yueman"
-               ]
-       },
-       "mwsearch-desc": "MWSearch 插件",
-       "mwsearch-backend-error": "搜尋後臺出錯:$1"
-}
diff --git a/i18n/zh-hans.json b/i18n/zh-hans.json
deleted file mode 100644
index 68dcec8..0000000
--- a/i18n/zh-hans.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Hzy980512",
-                       "PhiLiP",
-                       "Shinjiman"
-               ]
-       },
-       "mwsearch-desc": "MWSearch插件",
-       "mwsearch-backend-error": "搜索引擎后端返回错误:$1"
-}
diff --git a/i18n/zh-hant.json b/i18n/zh-hant.json
deleted file mode 100644
index ace40c6..0000000
--- a/i18n/zh-hant.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-       "@metadata": {
-               "authors": [
-                       "Shinjiman",
-                       "Waihorace",
-                       "LNDDYL"
-               ]
-       },
-       "mwsearch-desc": "MWSearch 增益集",
-       "mwsearch-backend-error": "搜尋返回了錯誤 $1"
-}
diff --git a/luceneUpdate.php b/luceneUpdate.php
deleted file mode 100644
index d88ec0e..0000000
--- a/luceneUpdate.php
+++ /dev/null
@@ -1,410 +0,0 @@
-<?php
-
-// symlink me into maintenance/
-
-$options = array( 'skip' );
-require_once( 'commandLine.inc' );
-
-
-if( !isset( $args[0] ) ) {
-       print "Call MWUpdateDaemon remotely for status or updates.\n";
-       print "Usage: php luceneUpdate.php [database] [--skip=n] 
{status|flush|stop|start|restart|rebuild}\n";
-       exit( -1 );
-}
-
-$ret = true;
-
-switch( $args[0] ) {
-case 'stop':
-       try {
-               MWSearchUpdater::stop();
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-case 'restart':
-case 'flushall':
-case 'flush':
-       try {
-               MWSearchUpdater::flushAll();
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-case 'start':
-       try {
-               MWSearchUpdater::start();
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-//case 'flush':
-//     global $wgDBname;
-//     try {
-//             MWSearchUpdater::flush( $wgDBname );
-//     } catch ( MWException $e ) {
-//             $ret = $e;
-//     }
-//     break;
-case 'status':
-       // no-op
-       break;
-case 'quit':
-       try {
-               MWSearchUpdater::quit();
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-case 'optimize':
-       try {
-               MWSearchUpdater::optimize();
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-case 'update':
-       $title = Title::newFromText( $args[1] );
-       if( is_null( $title ) ) {
-               die( "Invalid title\n" );
-       }
-       $rev = Revision::newFromTitle( $title );
-       try {
-               if( $rev ) {
-                       $text = $rev->getText();
-                       $ret = MWSearchUpdater::updatePage( $wgDBname, $title, 
$text );
-               } else {
-                       $ret = MWSearchUpdater::deletePage( $wgDBname, $title );
-               }
-       } catch ( MWException $e ) {
-               $ret = $e;
-       }
-       break;
-case 'rebuild':
-       $builder = new LuceneBuilder();
-       if( isset( $options['skip'] ) ) {
-               $builder->skip( intval( $options['skip'] ) );
-       }
-       $ret = $builder->rebuildAll();
-       break;
-case 'deleted':
-       $builder = new LuceneBuilder();
-       $since = @$args[1];
-       $ret = $builder->rebuildDeleted( $since );
-       break;
-case 'recent':
-       $builder = new LuceneBuilder();
-       $since = @$args[1];
-       $ret = $builder->rebuildRecent( $since );
-       break;
-case 'random':
-       // fill with random junk for load testing and heap profiling
-       // don't run this on your production database ;)
-       function wfRandomString( $length ) {
-               $str = '';
-               for( $i = 0; $i < $length; $i++ ) {
-                       $char = mt_rand( 32, 127 );
-                       $str .= chr( $char );
-               }
-               return $str;
-       }
-       $n = 0;
-       while(true) {
-               $randomTitle = Title::makeTitle( NS_MAIN, wfRandomString( 20 ) 
);
-               $randomText = wfRandomString( 16384 );
-               MWSearchUpdater::updatePage( $wgDBname, $randomTitle, 
$randomText );
-               $n++;
-               if( $n % 100 == 0 ) {
-                       echo MWSearchUpdater::getStatus() . "\n";
-                       LuceneBuilder::wait();
-               }
-       }
-       break;
-default:
-       echo "Unknown command.\n";
-       exit( -1 );
-}
-
-if( $ret instanceof MWException ) {
-       echo $ret->getMessage() . "\n";
-       exit( -1 );
-}
-
-try {
-       $status = MWSearchUpdater::getStatus();
-       echo $status . "\n";
-       exit( 0 );
-} catch ( MWException $e ) {
-       echo $e->getMessage() . "\n";
-       exit( -1 );
-}
-
-
-///
-
-class LuceneBuilder {
-       function __construct() {
-               $this->db       = wfGetDB( DB_SLAVE );
-               $this->dbstream =& $this->streamingSlave( $this->db );
-               $this->offset = 0;
-       }
-
-       function &streamingSlave( $db ) {
-               global $wgDBname;
-               $stream = new DatabaseMysql( $db->mServer, $db->mUser, 
$db->mPassword, $wgDBname );
-               $stream->bufferResults( false );
-
-               $timeout = 3600 * 24;
-               $stream->query( "SET net_read_timeout=$timeout" );
-               $stream->query( "SET net_write_timeout=$timeout" );
-               return $stream;
-       }
-
-       function skip( $offset ) {
-               $this->offset = intval( $offset );
-       }
-
-       function init( $max ) {
-               $this->max = $max;
-               $this->count = 0;
-               $this->startTime = microtime( true );
-       }
-
-       function progress() {
-               global $wgDBname;
-               $this->count++;
-               if( $this->count % 100 == 0 ) {
-                       $now = microtime( true );
-                       $delta = $now - $this->startTime;
-                       $portion = $this->count / $this->max;
-                       $eta = $this->startTime + ($delta / $portion);
-                       $rate = $this->count / $delta;
-
-                       printf( "%s: %6.3f%% on %s, ETA %s [%d/%d] %.2f/sec\n",
-                               wfTimestamp( TS_DB, intval( $now ) ),
-                               $portion * 100.0,
-                               $wgDBname,
-                               wfTimestamp( TS_DB, intval( $eta ) ),
-                               $this->count,
-                               $this->max,
-                               $rate );
-
-                       $this->wait();
-               }
-       }
-
-       /**
-        * See if the daemon's getting overloaded and pause if so
-        */
-       function wait() {
-               $cutoff = 500;
-               $waittime = 10;
-
-               while( true ) {
-                       try {
-                               $status = MWSearchUpdater::getStatus();
-                       } catch ( MWException $e ) {
-                               echo $e->getMessage() . "\n";
-                               sleep( $waittime );
-                               continue;
-                       }
-
-                       // Updater IS running; 90418 items queued.
-                       if( !preg_match( '/([0-9]+) items queued/', $status, 
$matches ) ) {
-                               // ?! confused
-                               break;
-                       }
-
-                       $count = intval( $matches[1] );
-                       if( $count < $cutoff ) {
-                               break;
-                       }
-
-                       printf( "%s: %s\n",
-                               wfTimestamp( TS_DB ),
-                               $status );
-
-                       sleep( $waittime );
-               }
-       }
-
-       function finalStatus() {
-               global $wgDBname;
-               $now = microtime( true );
-               $delta = $now - $this->startTime;
-               $rate = $this->count / $delta;
-
-               printf( "%s: done on %s, [%d/%d] %.2f/sec\n",
-                       wfTimestamp( TS_DB, intval( $now ) ),
-                       $wgDBname,
-                       $this->count,
-                       $this->max,
-                       $rate );
-       }
-
-       function rebuildAll() {
-               global $wgDBname;
-
-               $lastError = true;
-
-               $maxId = $this->db->selectField( 'page', 'MAX(page_id)', '', 
__METHOD__ );
-               $maxId -= $this->offset; // hack for percentages
-               $this->init( $maxId );
-               if( $maxId < 1 ) {
-                       echo "Nothing to do.\n";
-                       return;
-               }
-
-               $limit = array();
-               if( $this->offset ) {
-                       $limit = array( 'LIMIT $offset, 10000000' );
-               }
-
-               $result = $this->dbstream->select( array( 'page' ),
-                       array( 'page_namespace', 'page_title', 'page_latest' ),
-                       '',
-                       __METHOD__,
-                       $limit );
-
-               $errorCount = 0;
-               foreach ( $result as $row ) {
-                       $this->progress();
-
-                       $title = Title::makeTitle( $row->page_namespace, 
$row->page_title );
-                       $rev = Revision::newFromId( $row->page_latest );
-                       if( is_null( $rev ) ) {
-                               // Page was probably deleted while we were 
running
-                               continue;
-                       }
-
-                       $text = $rev->getText();
-
-                       try {
-                               MWSearchUpdater::updatePage( $wgDBname, $title, 
$text );
-                       } catch( MWException $e ) {
-                               echo "ERROR: " . $e->getMessage() . "\n";
-                               $lastError = $e;
-                               $errorCount++;
-                               if( $errorCount > 20 ) {
-                                       echo "Lots of errors, giving up. :(\n";
-                                       return $lastError;
-                               }
-                       }
-               }
-               $this->finalStatus();
-               $this->dbstream->freeResult( $result );
-
-               return $lastError;
-       }
-
-       /**
-        * Trawl thorugh the deletion log entries to remove any deleted pages
-        * that might have been missed when the index updater daemon was broken.
-        */
-       function rebuildDeleted( $since = null ) {
-               global $wgDBname;
-
-               if( is_null( $since ) ) {
-                       $since = '20010115000000';
-               }
-
-               // Turn buffering back on; these are relatively small.
-               $this->dbstream->bufferResults( true );
-
-               $cutoff  = $this->dbstream->addQuotes( 
$this->dbstream->timestamp( $since ) );
-               $logging = $this->dbstream->tableName( 'logging' );
-               $page    = $this->dbstream->tableName( 'page' );
-               $result  = $this->dbstream->query(
-                       "SELECT log_namespace,log_title
-                        FROM $logging
-                        LEFT OUTER JOIN $page
-                        ON log_namespace=page_namespace AND 
log_title=page_title
-                        WHERE log_type='delete'
-                        AND log_timestamp > $cutoff
-                        AND page_namespace IS NULL", __METHOD__ );
-
-               $max = $this->dbstream->numRows( $result );
-               if( $max == 0 ) {
-                       echo "Nothing to do.\n";
-                       return;
-               }
-               $this->init( $max );
-               $lastError = true;
-
-               foreach ( $result as $row ) {
-                       $this->progress();
-                       $title = Title::makeTitle( $row->log_namespace, 
$row->log_title );
-                       try {
-                               MWSearchUpdater::deletePage( $wgDBname, $title 
);
-                       } catch ( MWException $e ) {
-                               echo "ERROR: " . $e->getMessage() . "\n";
-                               $lastError = $e;
-                       }
-               }
-
-               $this->finalStatus();
-               $this->dbstream->freeResult( $result );
-
-               return $lastError;
-       }
-
-       /**
-        * Trawl thorugh the recentchanges log to update pages which have been
-        * modified since a given date. This gives a chance to catch up if
-        * the index updater daemon was broken or disabled since last build.
-        */
-       function rebuildRecent( $since = null ) {
-               global $wgDBname;
-
-               if( is_null( $since ) ) {
-                       $since = '20010115000000';
-               }
-
-               // Turn buffering back on; these are relatively small.
-               //$this->dbstream->bufferResults( true );
-
-               $cutoff  = $this->dbstream->addQuotes( 
$this->dbstream->timestamp( $since ) );
-               $recentchanges = $this->dbstream->tableName( 'recentchanges' );
-               $revision      = $this->dbstream->tableName( 'revision' );
-               $page          = $this->dbstream->tableName( 'page' );
-               $result        = $this->dbstream->query(
-                       "SELECT *
-                        FROM $recentchanges,$page,$revision
-                        WHERE rc_namespace=page_namespace
-                        AND rc_title=page_title
-                        AND rc_this_oldid=page_latest
-                        AND page_latest=rev_id
-                        AND rc_timestamp > $cutoff", __METHOD__ );
-
-               #$max = $this->dbstream->numRows( $result );
-               $max = 10000; // wacky estimate
-               if( $max == 0 ) {
-                       echo "Nothing to do.\n";
-                       return;
-               }
-               $this->init( $max );
-               $lastError = true;
-
-               foreach ( $result as $row ) {
-                       $this->progress();
-                       $rev = new Revision( $row );
-                       if( is_object( $rev ) ) {
-                               $title = Title::makeTitle( 
$row->page_namespace, $row->page_title );
-                               try {
-                                       MWSearchUpdater::updatePage( $wgDBname, 
$title, $rev->getText() );
-                               } catch ( MWException $e ) {
-                                       echo "ERROR: " . $e->getMessage() . 
"\n";
-                                       $lastError = $e;
-                               }
-                       }
-               }
-
-               $this->finalStatus();
-               $this->dbstream->freeResult( $result );
-
-               return $lastError;
-       }
-
-}
-
-
diff --git a/package.json b/package.json
deleted file mode 100644
index 41cecca..0000000
--- a/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "scripts": {
-    "test": "grunt test"
-  },
-  "devDependencies": {
-    "grunt": "0.4.5",
-    "grunt-cli": "0.1.13",
-    "grunt-banana-checker": "0.4.0",
-    "grunt-jsonlint": "1.0.7"
-  }
-}

-- 
To view, visit https://gerrit.wikimedia.org/r/327415
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I88c654bd390a8a4ed20943e464ee51c47a6be231
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MWSearch
Gerrit-Branch: master
Gerrit-Owner: Chad <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to