]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - extensions/LocalisationUpdate/fetcher/HttpFetcher.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / extensions / LocalisationUpdate / fetcher / HttpFetcher.php
1 <?php
2 /**
3  * @file
4  * @author Niklas Laxström
5  * @license GPL-2.0+
6  */
7
8 namespace LocalisationUpdate;
9
10 /**
11  * Fetches files over HTTP(s).
12  */
13 class HttpFetcher implements Fetcher {
14         public function fetchFile( $url ) {
15                 return \Http::get( $url );
16         }
17
18         /**
19          * This is horribly inefficient. Subclasses have more efficient
20          * implementation of this.
21          */
22         public function fetchDirectory( $pattern ) {
23                 $files = [];
24
25                 $languages = \Language::fetchLanguageNames( null, 'mwfile' );
26
27                 foreach ( array_keys( $languages ) as $code ) {
28                         // Hack for core
29                         if ( strpos( $pattern, 'Messages*.php' ) !== false ) {
30                                 $code = ucfirst( strtr( $code, '-', '_' ) );
31                         }
32
33                         $url = str_replace( '*', $code, $pattern );
34                         $file = $this->fetchFile( $url );
35                         if ( $file ) {
36                                 $files[$url] = $file;
37                         }
38                 }
39
40                 return $files;
41         }
42 }