]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - extensions/LocalisationUpdate/fetcher/HttpFetcher.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / extensions / LocalisationUpdate / fetcher / HttpFetcher.php
diff --git a/extensions/LocalisationUpdate/fetcher/HttpFetcher.php b/extensions/LocalisationUpdate/fetcher/HttpFetcher.php
new file mode 100644 (file)
index 0000000..42b0f03
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @file
+ * @author Niklas Laxström
+ * @license GPL-2.0+
+ */
+
+namespace LocalisationUpdate;
+
+/**
+ * Fetches files over HTTP(s).
+ */
+class HttpFetcher implements Fetcher {
+       public function fetchFile( $url ) {
+               return \Http::get( $url );
+       }
+
+       /**
+        * This is horribly inefficient. Subclasses have more efficient
+        * implementation of this.
+        */
+       public function fetchDirectory( $pattern ) {
+               $files = [];
+
+               $languages = \Language::fetchLanguageNames( null, 'mwfile' );
+
+               foreach ( array_keys( $languages ) as $code ) {
+                       // Hack for core
+                       if ( strpos( $pattern, 'Messages*.php' ) !== false ) {
+                               $code = ucfirst( strtr( $code, '-', '_' ) );
+                       }
+
+                       $url = str_replace( '*', $code, $pattern );
+                       $file = $this->fetchFile( $url );
+                       if ( $file ) {
+                               $files[$url] = $file;
+                       }
+               }
+
+               return $files;
+       }
+}