Two new parser tests related to bug 6200
[lhc/web/wiklou.git] / maintenance / importImages.inc
index 290f3c0..29a7fbc 100644 (file)
@@ -6,6 +6,7 @@
  * @file
  * @ingroup Maintenance
  * @author Rob Church <robchur@gmail.com>
+ * @author Mij <mij@bitchx.it>
  */
 
 /**
  * @return mixed Array of filenames on success, or false on failure
  */
 function findFiles( $dir, $exts ) {
-       if( is_dir( $dir ) ) {
-               if( $dhl = opendir( $dir ) ) {
-                       while( ( $file = readdir( $dhl ) ) !== false ) {
-                               if( is_file( $dir . '/' . $file ) ) {
+       if ( is_dir( $dir ) ) {
+               if ( $dhl = opendir( $dir ) ) {
+                       $files = array();
+                       while ( ( $file = readdir( $dhl ) ) !== false ) {
+                               if ( is_file( $dir . '/' . $file ) ) {
                                        list( /* $name */, $ext ) = splitFilename( $dir . '/' . $file );
-                                       if( array_search( strtolower( $ext ), $exts ) !== false )
+                                       if ( array_search( strtolower( $ext ), $exts ) !== false )
                                                $files[] = $dir . '/' . $file;
                                }
                        }
                        return $files;
                } else {
-                       return false;
+                       return array();
                }
        } else {
-               return false;
+               return array();
        }
 }
 
@@ -85,4 +87,26 @@ function findAuxFile( $file, $auxExtension, $maxStrip = 1 ) {
        }
 
        return false;
-}
\ No newline at end of file
+}
+
+# FIXME: Access the api in a saner way and performing just one query (preferably batching files too).
+function getFileCommentFromSourceWiki( $wiki_host, $file ) {
+    $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:' . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=comment';
+    $body = Http::get( $url );
+    if ( preg_match( '#<ii comment="([^"]*)" />#', $body, $matches ) == 0 ) {
+        return false;
+    }
+
+    return html_entity_decode( $matches[1] );
+}
+
+function getFileUserFromSourceWiki( $wiki_host, $file ) {
+    $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:' . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=user';
+    $body = Http::get( $url );
+    if ( preg_match( '#<ii user="([^"]*)" />#', $body, $matches ) == 0 ) {
+        return false;
+    }
+
+    return html_entity_decode( $matches[1] );
+}
+