Ich muss eine Liste aller vorhandenen Sprachen für ein bestimmtes Wiki-Projekt abrufen. Zum Beispiel alle Wikivoyage oder alle Wikipedia Sprachen, genau wie auf ihren Zielseiten.
Ich bevorzuge dies über MediaWiki API
, wenn es möglich ist.
Danke für Ihre Zeit.
Ansatz 3: Verwenden einer API in der Wikimedia Wiki Farm und Erweiterung: Sitematrix
https://commons.wikimedia.org/w/api.php?action=sitematrix&smtype=language
Während dies alle Wikis zurückgibt, weiß die Matrix, dass sie auf der Client-Seite leicht gefiltert werden kann durch code
[ab sofort eine der folgenden: wiki
(Wikipedia), wiktionary
, wikibooks
, wikinews
, wikiquote
, wikisource
, wikiversity
, wikivoyage
] und durch seinen closed
-Zustand. Eine Anfrage mit nur ein paar Response-Body-Overhead, aber da es leicht zwischengespeichert und gut komprimiert werden kann, nicht das dienen.
Ansatz 1: Verwenden einer API in der Wikimedia Wiki-Farm
Um alle Interwiki-Präfixe zu erhalten, die ein Wiki kennt, verwenden Sie das Meta-Modul der MediaWiki-API und fragen jedes Projekt nach siprop=interwikimap
:
Sie erhalten eine große Anzahl von Objekten wie folgt:
%Vor% protorel
sagt dir, ob die URL protokollabhängig ist oder nicht (zB beginnend mit //
. Für die WikiMedia-Wikis beginnen sie mit https
. Das in der URL ist, wie du es getan hättest vorgestellt, ein Platzhalter für den Titel.
Um nur die Wikis in der selben Wikifarm zu erhalten (zB Wikimedia Wikis ), fügen Sie hinzu sifilteriw=local
zu Ihrer Anfrage:
Um die Namen in Ihrer langue abzurufen, verwenden Sie siinlanguagecode
, so (dies sind alle Wikimedia-Wikis mit ihren schwedischen Namen, die aus der arabischen Wikipedia stammen, aber jeder Endpunkt in der Wiki-Farm sein könnte):
Von hier aus müssten Sie z. die Wikipedias selbst.
Ansatz 2: Verwenden von Wikistats bei wmflabs
Eine bereits nach Art des Projekts gefilterte Liste finden Sie unter Ссылка (csv), wo Sie Wikipedia, Wikiversity usw. herausfiltern können. Die CSV-Datei wird täglich aktualisiert, aber das Tool ist experimentell und möglicherweise nicht für immer da.
Bei jedem Ansatz werden Wikimedia Incubator-Wikis nicht angezeigt.
Subtrahieren Sie closed.dblist von wikipedia.dblist ( andere Listen ), entfernen Sie dann wiki
vom Ende und Ersetzen Sie _
durch -
.
Tags und Links mediawiki-api wikipedia wikipedia-api wikimedia