diff --git a/runners/CMakeLists.txt b/runners/CMakeLists.txt index 2a808be4b..3d0f56a1a 100644 --- a/runners/CMakeLists.txt +++ b/runners/CMakeLists.txt @@ -1,11 +1,11 @@ add_subdirectory(converter) add_subdirectory(datetime) add_subdirectory(katesessions) -# add_subdirectory(mediawiki) +add_subdirectory(mediawiki) add_subdirectory(spellchecker) add_subdirectory(characters) add_subdirectory(dictionary) if(NOT WIN32) add_subdirectory(konsoleprofiles) endif(NOT WIN32) diff --git a/runners/mediawiki/CMakeLists.txt b/runners/mediawiki/CMakeLists.txt index d6a443362..634905fd7 100644 --- a/runners/mediawiki/CMakeLists.txt +++ b/runners/mediawiki/CMakeLists.txt @@ -1,19 +1,23 @@ +add_definitions(-DTRANSLATION_DOMAIN="plasma_runner_mediawiki") + set(krunner_mediawiki_SRCS mediawikirunner.cpp mediawiki.cpp ) -kde4_add_plugin(krunner_mediawiki ${krunner_mediawiki_SRCS}) -target_link_libraries(krunner_mediawiki ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_SOLID_LIBS}) +add_library(krunner_mediawiki MODULE ${krunner_mediawiki_SRCS}) +target_link_libraries(krunner_mediawiki + KF5::Runner + KF5::I18n + Qt5::Network +) -install(TARGETS krunner_mediawiki DESTINATION ${PLUGIN_INSTALL_DIR} ) +install(TARGETS krunner_mediawiki DESTINATION ${KDE_INSTALL_PLUGINDIR} ) install(FILES plasma-runner-wikipedia.desktop plasma-runner-wikitravel.desktop plasma-runner-techbase.desktop - DESTINATION ${SERVICES_INSTALL_DIR}) - -# doesn't seem to work, maybe XML API is disabled -#install(FILES plasma-runner-userbase.desktop DESTINATION ${SERVICES_INSTALL_DIR}) - + plasma-runner-userbase.desktop + DESTINATION ${KDE_INSTALL_KSERVICES5DIR} +) diff --git a/runners/mediawiki/mediawiki.cpp b/runners/mediawiki/mediawiki.cpp index 7990266c3..33103829b 100644 --- a/runners/mediawiki/mediawiki.cpp +++ b/runners/mediawiki/mediawiki.cpp @@ -1,242 +1,244 @@ /* * Copyright 2009 by Richard Moore * Copyright 2009 by Sebastian K?gler * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "mediawiki.h" +// KF +#include +// Qt #include #include #include #include #include - -#include -#include - -#include +#include enum State { StateApiChanged, StateApiUpdating, StateReady }; struct MediaWikiPrivate { int state; QList results; QUrl apiUrl; QUrl baseUrl; QNetworkAccessManager *manager; int maxItems; QNetworkReply *reply; int timeout; QUrl query; QByteArray userAgent; }; MediaWiki::MediaWiki( QObject *parent ) : QObject( parent ), d( new MediaWikiPrivate ) { d->state = StateApiChanged; // should be overwritten by the user - d->apiUrl = QUrl("http://en.wikipedia.org/w/api.php"); + d->apiUrl = QUrl(QStringLiteral("https://en.wikipedia.org/w/api.php")); //FIXME: at the moment KIO doesn't seem to work in threads d->manager = new QNetworkAccessManager( this ); + d->manager->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); //d->manager = new KIO::AccessManager( this ); d->maxItems = 10; d->timeout = 30 * 1000; // 30 second - d->reply = 0; + d->reply = nullptr; d->userAgent = QByteArray("KDE Plasma Silk; MediaWikiRunner; 1.0"); - connect( d->manager, SIGNAL(finished(QNetworkReply*)), SLOT(finished(QNetworkReply*)) ); + connect(d->manager, &QNetworkAccessManager::finished, this, &MediaWiki::onNetworkRequestFinished); } MediaWiki::~MediaWiki() { delete d; } QList MediaWiki::results() const { return d->results; } int MediaWiki::maxItems() const { return d->maxItems; } void MediaWiki::setMaxItems( int limit ) { d->maxItems = limit; } QUrl MediaWiki::apiUrl() const { return d->apiUrl; } void MediaWiki::setApiUrl( const QUrl &url ) { if ( d->apiUrl == url ) return; d->apiUrl = url; d->state = StateApiChanged; } int MediaWiki::timeout() const { return d->timeout; } void MediaWiki::setTimeout( int millis ) { d->timeout = millis; } void MediaWiki::abort() { if ( !d->reply ) return; d->reply->abort(); - d->reply = 0; + d->reply = nullptr; } void MediaWiki::search( const QString &searchTerm ) { QUrl url = d->apiUrl; - url.addQueryItem( QString("action"), QString("query") ); - url.addQueryItem( QString("format"), QString("xml") ); - url.addQueryItem( QString("list"), QString("search") ); - url.addQueryItem( QString("srsearch"), searchTerm ); - url.addQueryItem( QString("srlimit"), QString::number(d->maxItems) ); + QUrlQuery urlQuery(url); + urlQuery.addQueryItem(QStringLiteral("action"), QStringLiteral("query")); + urlQuery.addQueryItem(QStringLiteral("format"), QStringLiteral("xml")); + urlQuery.addQueryItem(QStringLiteral("list"), QStringLiteral("search")); + urlQuery.addQueryItem(QStringLiteral("srsearch"), searchTerm ); + urlQuery.addQueryItem(QStringLiteral("srlimit"), QString::number(d->maxItems)); + url.setQuery(urlQuery); - kDebug() << "Constructed search URL" << url; + qDebug() << "Constructed search URL" << url; if ( d->state == StateReady ) { QNetworkRequest req(url); req.setRawHeader( QByteArray("User-Agent"), d->userAgent ); - kDebug() << "mediawiki User-Agent" << req.rawHeader(QByteArray("UserAgent")); + qDebug() << "mediawiki User-Agent" << req.rawHeader(QByteArray("UserAgent")); d->reply = d->manager->get( req ); QTimer::singleShot( d->timeout, this, SLOT(abort()) ); } else if ( d->state == StateApiChanged ) { d->query = url; findBase(); } } void MediaWiki::findBase() { // http://en.wikipedia.org/w/api.php?action=query&meta=siteinfo QUrl url = d->apiUrl; - url.addQueryItem( QString("action"), QString("query") ); - url.addQueryItem( QString("format"), QString("xml") ); - url.addQueryItem( QString("meta"), QString("siteinfo") ); + QUrlQuery urlQuery(url); + urlQuery.addQueryItem(QStringLiteral("action"), QStringLiteral("query")); + urlQuery.addQueryItem(QStringLiteral("format"), QStringLiteral("xml")); + urlQuery.addQueryItem(QStringLiteral("meta"), QStringLiteral("siteinfo")); + url.setQuery(urlQuery); - kDebug() << "Constructed base query URL" << url; + qDebug() << "Constructed base query URL" << url; QNetworkRequest req(url); req.setRawHeader( QByteArray("User-Agent"), d->userAgent ); d->reply = d->manager->get( req ); d->state = StateApiUpdating; } -void MediaWiki::finished( QNetworkReply *reply ) +void MediaWiki::onNetworkRequestFinished(QNetworkReply *reply) { if ( reply->error() != QNetworkReply::NoError ) { - kDebug() << "Request failed, " << reply->errorString(); + qDebug() << "Request failed, " << reply->errorString(); emit finished(false); return; } - kDebug() << "Request succeeded" << d->apiUrl; + qDebug() << "Request succeeded" << d->apiUrl; if ( d->state == StateApiUpdating ) { bool ok = processBaseResult( reply ); Q_UNUSED ( ok ); reply->deleteLater(); - reply= 0; + reply= nullptr; d->state = StateReady; QNetworkRequest req(d->query); req.setRawHeader( QByteArray("User-Agent"), d->userAgent ); d->reply = d->manager->get( req ); QTimer::singleShot( d->timeout, this, SLOT(abort()) ); } else { bool ok = processSearchResult( reply ); emit finished( ok ); d->reply->deleteLater(); - d->reply = 0; + d->reply = nullptr; } } bool MediaWiki::processBaseResult( QIODevice *source ) { QXmlStreamReader reader( source ); while ( !reader.atEnd() ) { QXmlStreamReader::TokenType tokenType = reader.readNext(); - // kDebug() << "Token" << int(tokenType); + // qDebug() << "Token" << int(tokenType); if ( tokenType == QXmlStreamReader::StartElement ) { - if ( reader.name() == QString("general") ) { + if (reader.name() == QLatin1String("general")) { QXmlStreamAttributes attrs = reader.attributes(); - d->baseUrl = QUrl( attrs.value( QString("base") ).toString() ); - return true; + d->baseUrl = QUrl(attrs.value(QStringLiteral("base")).toString()); + return true; } } else if ( tokenType == QXmlStreamReader::Invalid ) return false; } return true; } bool MediaWiki::processSearchResult( QIODevice *source ) { d->results.clear(); QXmlStreamReader reader( source ); while ( !reader.atEnd() ) { QXmlStreamReader::TokenType tokenType = reader.readNext(); - // kDebug() << "Token" << int(tokenType); + // qDebug() << "Token" << int(tokenType); if ( tokenType == QXmlStreamReader::StartElement ) { - if ( reader.name() == QString("p") ) { + if (reader.name() == QLatin1String("p")) { QXmlStreamAttributes attrs = reader.attributes(); - Result r; - r.url = d->baseUrl.resolved( attrs.value( QString("title") ).toString() ); - r.title = attrs.value( QString("title") ).toString(); + Result r; + r.title = attrs.value(QStringLiteral("title")).toString(); + r.url = d->baseUrl.resolved(QUrl(r.title)); - kDebug() << "Got result: url=" << r.url << "title=" << r.title; + qDebug() << "Got result: url=" << r.url << "title=" << r.title; - d->results.prepend( r ); + d->results.prepend( r ); } } else if ( tokenType == QXmlStreamReader::Invalid ) { return false; } } return true; } - - diff --git a/runners/mediawiki/mediawiki.h b/runners/mediawiki/mediawiki.h index e74568dd9..5e42743cf 100644 --- a/runners/mediawiki/mediawiki.h +++ b/runners/mediawiki/mediawiki.h @@ -1,140 +1,142 @@ /* * Copyright 2009 by Richard Moore * Copyright 2009 by Sebastian K?gler * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MEDIAWIKI_H #define MEDIAWIKI_H +// Qt #include #include #include class QNetworkReply; +class QIODevice; /** * Searches MediaWiki based wikis like wikipedia and techbase. * * @author Richard Moore, rich@kde.org */ class MediaWiki : public QObject { Q_OBJECT public: /** * Contains information about a single match from the search. */ class Result { public: Result() { }; Result( const Result &r ) { this->title = r.title; this->url = r.url; }; Result &operator= (const Result &other) { this->title = other.title; this->url = other.url; return *this; }; /** The page title of the match. */ QString title; /** The URL of the page containing the match. */ QUrl url; }; /** * Create a media wiki querying object with the specified parent. The querying * object can be used for multple queries, though only one can be performed at * a time. * @param parent The parent object */ - MediaWiki( QObject *parent=0 ); - virtual ~MediaWiki(); + explicit MediaWiki(QObject *parent = nullptr); + ~MediaWiki() override; /** * @returns a list of matches. */ QList results() const; /** @returns the currently specified maximum number of results to return. */ int maxItems() const; /** Sets the maximum number of results to return. * * @param limit Maximumber number of results to retrieve */ void setMaxItems( int limit ); /** @returns the currently specified API URL. */ QUrl apiUrl() const; /** * Sets the URL at which the wikis API page can be found. For example, wikipedia * has the API file at http://en.wikipedia.org/w/api.php whilst techbase has the * * @param url The URL of the api.php file, for example http://techbase.kde.org/api.php */ void setApiUrl( const QUrl &url ); /** @returns the currently specified timeout in milliseconds. */ int timeout() const; /** * Sets timeout in milliseconds. Once the specified time has elapsed, the current * query is aborted. * * @param millis Query timeout in milliseconds */ void setTimeout( int millis ); -signals: +Q_SIGNALS: /** * Emitted when a search has been completed. * @param success true if the search was completed successfully. */ void finished( bool success ); -public slots: +public Q_SLOTS: /** * Search the wiki for the specified search term. */ void search( const QString &searchTerm ); /** * Aborts the currently running request. */ void abort(); -private slots: - void finished( QNetworkReply *reply ); +private Q_SLOTS: + void onNetworkRequestFinished(QNetworkReply *reply); private: void findBase(); bool processBaseResult( QIODevice *source ); bool processSearchResult( QIODevice *source ); struct MediaWikiPrivate * const d; }; #endif // MEDIAWIKI_H diff --git a/runners/mediawiki/mediawikirunner.cpp b/runners/mediawiki/mediawikirunner.cpp index 24eb19258..372215d65 100644 --- a/runners/mediawiki/mediawikirunner.cpp +++ b/runners/mediawiki/mediawikirunner.cpp @@ -1,145 +1,153 @@ /* * Copyright 2009 Sebastian K?gler * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "mediawikirunner.h" + #include "mediawiki.h" +// KF +#include +#include +#include +// Qt #include -#include +#include #include +#include +#include -#include -#include -#include -#include -#include -#include -MediaWikiRunner::MediaWikiRunner(QObject *parent, const QVariantList& args) +MediaWikiRunner::MediaWikiRunner(QObject *parent, const QVariantList &args) : Plasma::AbstractRunner(parent, args) { - Q_UNUSED(args); - setObjectName("MediaWikiRunner"); + setObjectName(QStringLiteral("MediaWikiRunner")); - const QString constraint = QString("[X-KDE-PluginInfo-Name] == '%1'").arg(id()); - const KService::List offers = KServiceTypeTrader::self()->query("Plasma/Runner", constraint); + const QString constraint = QStringLiteral("[X-KDE-PluginInfo-Name] == '%1'").arg(id()); + const KService::List offers = KServiceTypeTrader::self()->query(QStringLiteral("Plasma/Runner"), constraint); foreach (const KPluginInfo &info, KPluginInfo::fromServices(offers)) { - QStringList _urls = info.property("X-Plasma-Args").toStringList(); - QString _u; - kDebug() << info.name() << info.property("X-Plasma-Args").toStringList() << _urls.count(); + const auto _urls = info.property(QStringLiteral("X-Plasma-Args")).toStringList(); + qDebug() << info.name() << _urls << _urls.count(); if (_urls.count()) { - m_apiUrl = _urls[0]; + m_apiUrl = QUrl(_urls[0]); } else { - kWarning() << "No X-Plasma-Args found in .desktop file"; + qWarning() << "No X-Plasma-Args found in .desktop file"; } m_name = info.name(); m_comment = info.comment(); - m_icon = KIcon(info.icon()); + m_iconName = info.icon(); } - addSyntax(Plasma::RunnerSyntax("wiki :q:", i18n("Searches %1 for :q:.", m_name))); + addSyntax(Plasma::RunnerSyntax(QStringLiteral("wiki :q:"), i18n("Searches %1 for :q:.", m_name))); setSpeed( SlowSpeed ); } MediaWikiRunner::~MediaWikiRunner() { } void MediaWikiRunner::match(Plasma::RunnerContext &context) { // Check for networkconnection - if(Solid::Networking::status() == Solid::Networking::Unconnected) { + if (!m_networkConfigurationManager.isOnline() || + !m_apiUrl.isValid()) { return; } QString term = context.query(); + if (!context.singleRunnerQueryMode()) { - if (!term.startsWith("wiki ")) { + if (!term.startsWith(QLatin1String("wiki "))) { return; - } else { - term = term.remove("wiki "); } + + term.remove(0, 5); } - if (!m_apiUrl.isValid() || term.length() < 3) { - //kDebug() << "yours is too short" << term; + + if (term.length() < 3) { + //qDebug() << "yours is too short" << term; return; } QEventLoop loop; // Wait a second, we don't want to query on every keypress QMutex mutex; QWaitCondition waiter; mutex.lock(); waiter.wait(&mutex, 1000); mutex.unlock(); if (!context.isValid()) { return; } MediaWiki mediawiki; if (context.singleRunnerQueryMode()) { mediawiki.setMaxItems(10); } else { mediawiki.setMaxItems(3); } mediawiki.setApiUrl( m_apiUrl ); - connect( &mediawiki, SIGNAL(finished(bool)), &loop, SLOT(quit()) ); + connect(&mediawiki, &MediaWiki::finished, &loop, &QEventLoop::quit); mediawiki.search(term); - kDebug() << "Wikisearch:" << m_name << term; + qDebug() << "Wikisearch:" << m_name << term; loop.exec(); if (!context.isValid()) { return; } qreal relevance = 0.5; qreal stepRelevance = 0.1; foreach(const MediaWiki::Result& res, mediawiki.results()) { - kDebug() << "Match:" << res.url << res.title; + qDebug() << "Match:" << res.url << res.title; Plasma::QueryMatch match(this); match.setType(Plasma::QueryMatch::PossibleMatch); - match.setIcon(m_icon); - match.setText(QString("%1: %2").arg(m_name, res.title)); + match.setIconName(m_iconName); + match.setText(QStringLiteral("%1: %2").arg(m_name, res.title)); match.setData(res.url); match.setRelevance(relevance); relevance +=stepRelevance; stepRelevance *=0.5; - context.addMatch(res.title, match); + context.addMatch(match); } } void MediaWikiRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) { Q_UNUSED(context) + const QString wikiurl = match.data().toUrl().toString(); - kDebug() << "Open MediaWiki page " << wikiurl; + qDebug() << "Open MediaWiki page " << wikiurl; if (!wikiurl.isEmpty()) { - KToolInvocation::invokeBrowser(wikiurl, ""); + QDesktopServices::openUrl(QUrl(wikiurl)); } } + +K_EXPORT_PLASMA_RUNNER(mediawiki, MediaWikiRunner) + +#include "mediawikirunner.moc" diff --git a/runners/mediawiki/mediawikirunner.h b/runners/mediawiki/mediawikirunner.h index 7a10bd8dd..6556176b9 100644 --- a/runners/mediawiki/mediawikirunner.h +++ b/runners/mediawiki/mediawikirunner.h @@ -1,56 +1,49 @@ /* * Copyright 2008 Sebastian K?gler * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef MEDIAWIKIRUNNER_H #define MEDIAWIKIRUNNER_H -#include +// KF +#include +// Qt +#include -class KIcon; -#include -#include - -class QWaitCondition; - -#include "mediawiki.h" - -class MediaWikiRunner : public Plasma::AbstractRunner { +class MediaWikiRunner : public Plasma::AbstractRunner +{ Q_OBJECT - public: - MediaWikiRunner( QObject *parent, const QVariantList& args ); - ~MediaWikiRunner(); +public: + MediaWikiRunner(QObject *parent, const QVariantList &args); + ~MediaWikiRunner() override; - void match(Plasma::RunnerContext &context); - void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match); + void match(Plasma::RunnerContext &context) override; + void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) override; - signals: - void done(); +private: + QString m_iconName; + QString m_name; + QString m_comment; + QUrl m_apiUrl; - private: - KIcon m_icon; - QString m_name; - QString m_comment; - QUrl m_apiUrl; + QNetworkConfigurationManager m_networkConfigurationManager; }; -K_EXPORT_PLASMA_RUNNER(mediawiki, MediaWikiRunner) - #endif diff --git a/runners/mediawiki/plasma-runner-techbase.desktop b/runners/mediawiki/plasma-runner-techbase.desktop index c1cef86ca..5a3f87c54 100644 --- a/runners/mediawiki/plasma-runner-techbase.desktop +++ b/runners/mediawiki/plasma-runner-techbase.desktop @@ -1,109 +1,109 @@ [Desktop Entry] Name=TechBase Name[bs]=TechBase Name[ca]=TechBase Name[ca@valencia]=TechBase Name[cs]=TechBase Name[da]=TechBase Name[de]=TechBase Name[el]=Τεχνική βάση Name[en_GB]=TechBase Name[es]=TechBase Name[et]=TechBase Name[eu]=TechBase Name[fi]=TechBase Name[fr]=TechBase Name[gl]=TechBase Name[hr]=TechBase Name[hu]=TechBase Name[it]=TechBase Name[ja]=TechBase Name[kk]=TechBase Name[km]=TechBase Name[ko]=TechBase Name[lt]=Techn. žinynas Name[lv]=TechBase Name[mr]=टेकबेस Name[nb]=TechBase Name[nds]=TechBase Name[nl]=TechBase Name[nn]=TechBase Name[pa]=ਟੈਕਬੇਸ Name[pl]=Baza techniczna Name[pt]=TechBase Name[pt_BR]=TechBase Name[ro]=TechBase Name[ru]=TechBase Name[sk]=TechBase Name[sl]=TechBase Name[sr]=Техбаза Name[sr@ijekavian]=Техбаза Name[sr@ijekavianlatin]=Techbase Name[sr@latin]=Techbase Name[sv]=Teknikbas Name[tr]=TechBase Name[uk]=TechBase Name[wa]=TechBase Name[x-test]=xxTechBasexx Name[zh_CN]=TechBase Name[zh_TW]=TechBase Comment=Search on KDE's TechBase Comment[bs]=Pretraži na KDE tehničkoj bazi Comment[ca]=Cerca en la TechBase del KDE Comment[ca@valencia]=Cerca en la TechBase del KDE Comment[cs]=Vyhledávat v KDE TechBase Comment[da]=Søg på KDE's TechBase Comment[de]=Auf KDE-TechBase suchen Comment[el]=Αναζήτηση στην τεχνική βάση του KDE Comment[en_GB]=Search on KDE's TechBase Comment[es]=Buscar en la TechBase de KDE Comment[et]=Otsing KDE TechBase'is Comment[eu]=Bilatu KDEren TechBase-n Comment[fi]=Etsi KDE:n TechBasesta Comment[fr]=Chercher dans le site « TechBase » de KDE Comment[gl]=Buscar no wiki técnico de KDE, TechBase. Comment[he]=חיפוש ב־TechBase של KDE Comment[hr]=Traži na KDE-ovom TechBaseu Comment[hu]=Keresés a KDE TechBase-en Comment[it]=Cerca nella TechBase di KDE Comment[ja]=KDE の TechBase で検索 Comment[kk]=KDE TechBase қорында іздеу Comment[km]=ស្វែងរក​​នៅ​លើ TechBase របស់ KDE Comment[ko]=KDE TechBase 검색 Comment[lt]=Paieška KDE techniniame žinyne (TechBase) Comment[lv]=Meklēt KDE TechBase Comment[mr]=केडीई टेकबेस वर शोधा Comment[nb]=Søk på KDEs TechBase Comment[nds]=Söök op "KDE-TechBase" Comment[nl]=In TechBase van KDE zoeken Comment[nn]=Søk i KDE TechBase Comment[pa]=ਕੇਡੀਈ ਦੇ ਟੈਕਬੇਸ 'ਚ ਲੱਭੋ Comment[pl]=Wyszukuje w bazie technicznej KDE Comment[pt]=Procurar na TechBase do KDE Comment[pt_BR]=Pesquisa na TechBase do KDE Comment[ru]=Поиск в KDE TechBase Comment[sk]=Vyhľadávanie v KDE TechBase Comment[sl]=Iskanje po KDE-jevem TechBase-u Comment[sr]=Претрага по Техбази КДЕ‑а Comment[sr@ijekavian]=Претрага по Техбази КДЕ‑а Comment[sr@ijekavianlatin]=Pretraga po Techbasi KDE‑a Comment[sr@latin]=Pretraga po Techbasi KDE‑a Comment[sv]=Sök på KDE:s teknikbas Comment[tr]=KDE TechBase'de ara Comment[uk]=Пошук у TechBase KDE Comment[x-test]=xxSearch on KDE's TechBasexx Comment[zh_CN]=搜索 KDE 的技术文档库 Comment[zh_TW]=搜尋 KDE TechBase Icon=kde X-KDE-ServiceTypes=Plasma/Runner Type=Service X-KDE-Library=krunner_mediawiki X-KDE-PluginInfo-Author=Sebastian Kügler X-KDE-PluginInfo-Email=sebas@kde.org X-KDE-PluginInfo-Name=techbase X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=false -X-Plasma-Args=http://techbase.kde.org/api.php +X-Plasma-Args=https://techbase.kde.org/api.php diff --git a/runners/mediawiki/plasma-runner-userbase.desktop b/runners/mediawiki/plasma-runner-userbase.desktop index 4d130a132..0f8e18958 100644 --- a/runners/mediawiki/plasma-runner-userbase.desktop +++ b/runners/mediawiki/plasma-runner-userbase.desktop @@ -1,113 +1,113 @@ [Desktop Entry] Name=KDE Documentation Name[ar]=توثيق كدي Name[bs]=KDE-ova dokumentacija Name[ca]=Documentació del KDE Name[ca@valencia]=Documentació del KDE Name[cs]=Dokumentace KDE Name[da]=KDE-dokumentation Name[de]=KDE-Dokumentation Name[el]=Τεκμηρίωση KDE Name[en_GB]=KDE Documentation Name[es]=Documentación de KDE Name[et]=KDE dokumentatsioon Name[eu]=KDE dokumentazioa Name[fi]=KDE:n ohjeet Name[fr]=Documentation de KDE Name[gl]=Documentación de KDE Name[he]=מסמכי KDE Name[hr]=Dokumentacija KDE-a Name[hu]=A KDE dokumentációja Name[it]=Documentazione di KDE Name[ja]=KDE ドキュメンテーション Name[kk]=KDE құжаттамасы Name[km]=ឯកសារ​របស់ KDE Name[ko]=KDE 문서 Name[lt]=KDE dokumentacija Name[lv]=KDE dokumentācija Name[mr]=केडीई दस्तऐवजीकरण Name[nb]=KDE-dokumentasjon Name[nds]=KDE-Dokmentatschoon Name[nl]=KDE-documentatie Name[nn]=KDE-hjelpetekst Name[pa]=KDE ਡੌਕੂਮੈਂਟੇਸ਼ਨ Name[pl]=Dokumentacja KDE Name[pt]=Documentação do KDE Name[pt_BR]=Documentação do KDE Name[ro]=Documentația KDE Name[ru]=Документация по KDE Name[sk]=Dokumentácia KDE Name[sl]=Dokumentacija KDE Name[sr]=документација КДЕ‑а Name[sr@ijekavian]=документација КДЕ‑а Name[sr@ijekavianlatin]=dokumentacija KDE‑a Name[sr@latin]=dokumentacija KDE‑a Name[sv]=KDE-dokumentation Name[th]=เอกสารคู่มือของระบบ KDE Name[tr]=KDE Belgelendirmesi Name[ug]=KDE پۈتۈكى Name[uk]=Документація KDE Name[wa]=Documintåcion di KDE Name[x-test]=xxKDE Documentationxx Name[zh_CN]=KDE 文档 Name[zh_TW]=KDE 文件 Comment=Search on KDE's Userbase Comment[bs]=Pretraži na KDE-ovoj korisničkoj bazi Comment[ca]=Cerca en la Userbase del KDE Comment[ca@valencia]=Cerca en la Userbase del KDE Comment[cs]=Vyhledávání v KDE Userbase Comment[da]=Søg på KDE's Userbase Comment[de]=Auf KDE-UserBase suchen Comment[el]=Αναζήτηση στην βάση χρηστών του KDE Comment[en_GB]=Search on KDE's Userbase Comment[es]=Buscar en la Userbase de KDE Comment[et]=Otsing KDE Userbase'is Comment[eu]=Bilatu KDEren erabiltzailebasean Comment[fi]=Etsi KDE:n Userbasesta Comment[fr]=Chercher dans le site « User-Base » de KDE Comment[gl]=Buscar no wiki de documentación de KDE, Userbase. Comment[he]=חיפוש ב־Userbase של KDE Comment[hr]=Traži na KDE-ovom Userbaseu Comment[hu]=Keresés a KDE UserBase-en Comment[it]=Cerca nella Userbase di KDE Comment[ja]=KDE のユーザベースで検索 Comment[kk]=KDE Userbase қорында іздеу Comment[km]=ស្វែង​រក​​នៅ​លើ Userbase របស់ KDE Comment[ko]=KDE UserBase 검색 Comment[lt]=Paieška KDE naudotojų žinynuose Comment[lv]=Meklēt KDE Userbase Comment[mr]=केडीई युजरबेस वर शोधा Comment[nb]=Søk på KDEs Userbase Comment[nds]=Söök op "KDE-Userbase" Comment[nl]=In de gebruikersbase van KDE zoeken Comment[nn]=Søk på KDE UserBase Comment[pa]=ਕੇਡੀਈ ਦੇ ਯੂਜ਼ਰਬੇਸ 'ਚੋਂ ਲੱਭੋ Comment[pl]=Wyszukuje w bazie użytkowników KDE Comment[pt]=Procurar na Base de Utilizadores do KDE Comment[pt_BR]=Pesquisa na base de usuários do KDE Comment[ru]=Поиск в KDE UserBase Comment[sk]=Vyhľadávanie v KDE Userbase Comment[sl]=Iskanje po KDE-jevem Userbase-u Comment[sr]=Претрага по Корисничкој бази КДЕ‑а Comment[sr@ijekavian]=Претрага по Корисничкој бази КДЕ‑а Comment[sr@ijekavianlatin]=Pretraga po Korisničkoj bazi KDE‑a Comment[sr@latin]=Pretraga po Korisničkoj bazi KDE‑a Comment[sv]=Sök på KDE:s användarbas Comment[tr]=KDE Userbase'de ara Comment[uk]=Пошук у Userbase KDE Comment[x-test]=xxSearch on KDE's Userbasexx Comment[zh_CN]=搜索 KDE 的用户文档库 Comment[zh_TW]=搜尋 KDE 的 Userbase Icon=kde X-KDE-ServiceTypes=Plasma/Runner Type=Service X-KDE-Library=krunner_mediawiki X-KDE-PluginInfo-Author=Sebastian Kügler X-KDE-PluginInfo-Email=sebas@kde.org X-KDE-PluginInfo-Name=userbase X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=true -X-Plasma-Args=http://userbase.kde.org/api.php +X-Plasma-Args=https://userbase.kde.org/api.php diff --git a/runners/mediawiki/plasma-runner-wikipedia.desktop b/runners/mediawiki/plasma-runner-wikipedia.desktop index fec5fffbb..94607709f 100644 --- a/runners/mediawiki/plasma-runner-wikipedia.desktop +++ b/runners/mediawiki/plasma-runner-wikipedia.desktop @@ -1,118 +1,118 @@ [Desktop Entry] Name=Wikipedia Name[ar]=ويكيبيديا Name[bs]=Wikipedia Name[ca]=Viquipèdia Name[ca@valencia]=Viquipèdia Name[cs]=Wikipedia Name[da]=Wikipedia Name[de]=Wikipedia Name[el]=Wikipedia Name[en_GB]=Wikipedia Name[es]=Wikipedia Name[et]=Wikipedia Name[eu]=Wikipedia Name[fi]=Wikipedia Name[fr]=Wikipédia Name[ga]=Vicipéid Name[gl]=Wikipedia Name[he]=ויקיפדיה Name[hr]=Wikipedija Name[hu]=Wikipédia Name[it]=Wikipedia Name[ja]=Wikipedia Name[kk]=Уикипедия Name[km]=វីគីភីឌៀ Name[ko]=위키백과 Name[lt]=Vikipedija Name[lv]=Wikipedia Name[mr]=विकिपेडिया Name[nb]=Wikipedia Name[nds]=Wikipedia Name[nl]=Wikipedia Name[nn]=Wikipedia Name[pa]=ਵਿਕਿਪੀਡਿਆ Name[pl]=Wikipedia Name[pt]=Wikipédia Name[pt_BR]=Wikipédia Name[ro]=Wikipedia Name[ru]=Википедия Name[sk]=Wikipédia Name[sl]=Wikipedija Name[sr]=Википедија Name[sr@ijekavian]=Википедија Name[sr@ijekavianlatin]=Wikipedia Name[sr@latin]=Wikipedia Name[sv]=Wikipedia Name[th]=วิกิพีเดีย Name[tr]=Wikipedia Name[ug]=ۋىكىپېدىيە Name[uk]=Вікіпедія Name[wa]=Wikipedia Name[x-test]=xxWikipediaxx Name[zh_CN]=维基百科 Name[zh_TW]=維基百科 Comment=Search on Wikipedia Comment[ar]=ابحث في ويكيبيديا Comment[bs]=Pretraži na Wikipediji Comment[ca]=Cerca en la Viquipèdia Comment[ca@valencia]=Cerca en la Viquipèdia Comment[cs]=Hledat na Wikipedii Comment[da]=Søg på Wikipedia Comment[de]=Auf Wikipedia suchen Comment[el]=Αναζήτηση στην Wikipedia Comment[en_GB]=Search on Wikipedia Comment[es]=Buscar en Wikipedia Comment[et]=Otsing Wikipedias Comment[eu]=Bilatu Wikipedian Comment[fi]=Etsi Wikipediasta Comment[fr]=Chercher dans Wikipédia Comment[gl]=Buscar en Wikipedia Comment[he]=חפש בויקיפדיה Comment[hr]=Traži na Wikipediji Comment[hu]=Keresés a Wikipédián Comment[it]=Cerca su Wikipedia Comment[ja]=Wikipedia で検索 Comment[kk]=Уикипедияда іздеу Comment[km]=ស្វែងរក​នៅ​លើ​វីគីភីឌៀ Comment[ko]=위키백과 검색 Comment[lt]=Paieška Vikipedijoje Comment[lv]=Meklēt Vikipēdijā Comment[mr]=विकिपेडिया वर शोधा Comment[nb]=Søk på Wikipedia Comment[nds]=Söök op "Wikipedia" Comment[nl]=In Wikipedia zoeken Comment[nn]=Søk på Wikipedia Comment[pa]=ਵਿਕਿਪੀਡਿਆ 'ਚ ਖੋਜ Comment[pl]=Wyszukuje w Wikipedii Comment[pt]=Procurar na Wikipédia Comment[pt_BR]=Pesquisa na Wikipédia Comment[ro]=Căutare în Wikipedia Comment[ru]=Поиск в Википедии Comment[sk]=Vyhľadávanie vo Wikipedii Comment[sl]=Iskanje po Wikipediji Comment[sr]=Претрага по Википедији Comment[sr@ijekavian]=Претрага по Википедији Comment[sr@ijekavianlatin]=Pretraga po Wikipediji Comment[sr@latin]=Pretraga po Wikipediji Comment[sv]=Sök på Wikipedia Comment[th]=ค้นหาข้อมูลบนวิกิพีเดีย Comment[tr]=Vikipedi'de ara Comment[uk]=Пошук у Вікіпедії Comment[x-test]=xxSearch on Wikipediaxx Comment[zh_CN]=搜索维基百科 Comment[zh_TW]=搜尋維基百科 Icon=applications-internet X-KDE-ServiceTypes=Plasma/Runner Type=Service X-KDE-Library=krunner_mediawiki X-KDE-PluginInfo-Author=Sebastian Kügler X-KDE-PluginInfo-Email=sebas@kde.org X-KDE-PluginInfo-Name=wikipedia X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=false X-Plasma-AdvertiseSingleRunnerQueryMode=true -X-Plasma-Args=http://en.wikipedia.org/w/api.php +X-Plasma-Args=https://en.wikipedia.org/w/api.php diff --git a/runners/mediawiki/plasma-runner-wikitravel.desktop b/runners/mediawiki/plasma-runner-wikitravel.desktop index bc47761e9..819d2b534 100644 --- a/runners/mediawiki/plasma-runner-wikitravel.desktop +++ b/runners/mediawiki/plasma-runner-wikitravel.desktop @@ -1,113 +1,113 @@ [Desktop Entry] Name=Wikitravel Name[bs]=Wikitravel Name[ca]=Wikitravel Name[ca@valencia]=Wikitravel Name[cs]=Wikitravel Name[da]=Wikitravel Name[de]=Wikitravel Name[el]=Wikitravel Name[en_GB]=Wikitravel Name[es]=Wikitravel Name[et]=Wikitravel Name[eu]=Wikitravel Name[fi]=Wikitravel Name[fr]=Wikitravel Name[gl]=Wikitravel Name[he]=וויקיטיול Name[hr]=Wikitravel Name[hu]=Wikitravel Name[it]=Wikitravel Name[ja]=Wikitravel Name[kk]=Wikitravel Name[km]=Wikitravel Name[ko]=위키여행 Name[lt]=Viki kelionės Name[lv]=Wikitravel Name[mr]=विकिट्रेव्हल Name[nb]=Wikitravel Name[nds]=Wikitravel Name[nl]=Wikitravel Name[nn]=Wikitravel Name[pa]=ਵਿਕਿਟਰੈਵਲ Name[pl]=Wikitravel Name[pt]=Wikitravel Name[pt_BR]=Wikitravel Name[ro]=Wikitravel Name[ru]=Википутешествие Name[sk]=Wikitravel Name[sl]=Wikitravel Name[sr]=Викитравел Name[sr@ijekavian]=Викитравел Name[sr@ijekavianlatin]=Wikitravel Name[sr@latin]=Wikitravel Name[sv]=Wikitravel Name[th]=วิกิแทรเวล Name[tr]=Wikitravel Name[uk]=Wikitravel Name[wa]=Wikitravel Name[x-test]=xxWikitravelxx Name[zh_CN]=维基旅行 Name[zh_TW]=Wikitravel Comment=Search on Wikitravel Comment[bs]=Pretraži na Wikitravelu Comment[ca]=Cerca en Wikitravel Comment[ca@valencia]=Cerca en Wikitravel Comment[cs]=Hledat na Wikitravel Comment[da]=Søg på Wikitravel Comment[de]=Auf Wikitravel suchen Comment[el]=Αναζήτηση στο Wikitravel Comment[en_GB]=Search on Wikitravel Comment[es]=Buscar en Wikitravel Comment[et]=Otsing Wikitravelis Comment[eu]=Bilatu Wikitravel-en Comment[fi]=Etsi Wikitravelista Comment[fr]=Chercher dans Wikitravel Comment[gl]=Buscar en Wikitravel. Comment[he]=חיפוש בוויקיטיול Comment[hr]=Traži na Wikitravelu Comment[hu]=Keresés a Wikitravelen Comment[it]=Cerca su Wikitravel Comment[ja]=Wikitravel で検索 Comment[kk]=Wikitravel-де іздеу Comment[km]=ស្វែងរក​នៅ​លើ Wikitravel Comment[ko]=위키여행 검색 Comment[lt]=Paieška Viki kelionėse Comment[lv]=Meklēt Wikitravel Comment[mr]=विकिट्रेव्हल वर शोधा Comment[nb]=Søk på Wikitravel Comment[nds]=Söök op "Wikitravel" Comment[nl]=In Wikitravel zoeken Comment[nn]=Søk på Wikitravel Comment[pa]=ਵਿਕਿਟਰੈਵਲ 'ਚ ਖੋਜ Comment[pl]=Wyszukuje w Wikitravel Comment[pt]=Procurar no Wikitravel Comment[pt_BR]=Pesquisa na Wikitravel Comment[ro]=Caută pe Wikitravel Comment[ru]=Поиск в Википутешествии Comment[sk]=Vyhľadávanie vo Wikitravel Comment[sl]=Iskanje po Wikitravelu Comment[sr]=Претрага по Викитравелу Comment[sr@ijekavian]=Претрага по Викитравелу Comment[sr@ijekavianlatin]=Pretraga po Wikitravelu Comment[sr@latin]=Pretraga po Wikitravelu Comment[sv]=Sök på Wikitravel Comment[th]=ค้นหาข้อมูลบนวิกิแทรเวล Comment[tr]=Wikitravel'da ara Comment[uk]=Пошук у Wikitravel Comment[x-test]=xxSearch on Wikitravelxx Comment[zh_CN]=搜索维基旅行 Comment[zh_TW]=搜尋 Wikitravel Icon=applications-internet X-KDE-ServiceTypes=Plasma/Runner Type=Service X-KDE-Library=krunner_mediawiki X-KDE-PluginInfo-Author=Sebastian Kügler X-KDE-PluginInfo-Email=sebas@kde.org X-KDE-PluginInfo-Name=wikitravel X-KDE-PluginInfo-Version=1.0 X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=false -X-Plasma-Args=http://wikitravel.org/wiki/en/api.php +X-Plasma-Args=https://wikitravel.org/wiki/en/api.php