Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
DumpMetadata
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 3
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 processFile
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2/**
3 * Re-queue selected, or all, transcodes
4 */
5$IP = getenv( 'MW_INSTALL_PATH' );
6if ( $IP === false ) {
7    $IP = __DIR__ . '/../../..';
8}
9require_once "$IP/maintenance/Maintenance.php";
10require_once __DIR__ . "/TimedMediaMaintenance.php";
11
12class DumpMetadata extends TimedMediaMaintenance {
13
14    public function __construct() {
15        parent::__construct();
16        $this->addOption( "pretty", "pretty-print JSON (adds line breaks)" );
17        $this->addDescription( "dump media file metadata as JSON per line" );
18    }
19
20    public function execute() {
21        $this->output( "Dumping media metadata:\n" );
22        parent::execute();
23    }
24
25    /**
26     * @param File $file
27     */
28    public function processFile( File $file ) {
29        $name = $file->getName();
30        $handler = $file->getHandler();
31        $meta = $file->getMetadataArray();
32        $data = [
33            'filename' => $name,
34            'metadata' => $meta,
35        ];
36
37        $flags = JSON_INVALID_UTF8_SUBSTITUTE;
38        if ( $this->hasOption( 'pretty' ) ) {
39            $flags |= JSON_PRETTY_PRINT;
40        }
41        $json = json_encode( $data, $flags );
42        if ( !$json ) {
43            die( "$name: invalid JSON output\n" );
44        }
45        echo "$json\n";
46    }
47}
48
49// Tells it to run the class
50$maintClass = DumpMetadata::class;
51require_once RUN_MAINTENANCE_IF_MAIN;