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