Code Duplication    Length = 25-27 lines in 3 locations

includes/media/GIF.php 1 location

@@ 128-153 (lines=26) @@
125
		return 'parsed-gif';
126
	}
127
128
	function isMetadataValid( $image, $metadata ) {
129
		if ( $metadata === self::BROKEN_FILE ) {
130
			// Do not repetitivly regenerate metadata on broken file.
131
			return self::METADATA_GOOD;
132
		}
133
134
		MediaWiki\suppressWarnings();
135
		$data = unserialize( $metadata );
136
		MediaWiki\restoreWarnings();
137
138
		if ( !$data || !is_array( $data ) ) {
139
			wfDebug( __METHOD__ . " invalid GIF metadata\n" );
140
141
			return self::METADATA_BAD;
142
		}
143
144
		if ( !isset( $data['metadata']['_MW_GIF_VERSION'] )
145
			|| $data['metadata']['_MW_GIF_VERSION'] != GIFMetadataExtractor::VERSION
146
		) {
147
			wfDebug( __METHOD__ . " old but compatible GIF metadata\n" );
148
149
			return self::METADATA_COMPATIBLE;
150
		}
151
152
		return self::METADATA_GOOD;
153
	}
154
155
	/**
156
	 * @param File $image

includes/media/PNG.php 1 location

@@ 114-140 (lines=27) @@
111
		return 'parsed-png';
112
	}
113
114
	function isMetadataValid( $image, $metadata ) {
115
116
		if ( $metadata === self::BROKEN_FILE ) {
117
			// Do not repetitivly regenerate metadata on broken file.
118
			return self::METADATA_GOOD;
119
		}
120
121
		MediaWiki\suppressWarnings();
122
		$data = unserialize( $metadata );
123
		MediaWiki\restoreWarnings();
124
125
		if ( !$data || !is_array( $data ) ) {
126
			wfDebug( __METHOD__ . " invalid png metadata\n" );
127
128
			return self::METADATA_BAD;
129
		}
130
131
		if ( !isset( $data['metadata']['_MW_PNG_VERSION'] )
132
			|| $data['metadata']['_MW_PNG_VERSION'] != PNGMetadataExtractor::VERSION
133
		) {
134
			wfDebug( __METHOD__ . " old but compatible png metadata\n" );
135
136
			return self::METADATA_COMPATIBLE;
137
		}
138
139
		return self::METADATA_GOOD;
140
	}
141
142
	/**
143
	 * @param File $image

includes/media/WebP.php 1 location

@@ 60-84 (lines=25) @@
57
		return 'parsed-webp';
58
	}
59
60
	public function isMetadataValid( $image, $metadata ) {
61
		if ( $metadata === self::BROKEN_FILE ) {
62
				// Do not repetitivly regenerate metadata on broken file.
63
				return self::METADATA_GOOD;
64
		}
65
66
		MediaWiki\suppressWarnings();
67
		$data = unserialize( $metadata );
68
		MediaWiki\restoreWarnings();
69
70
		if ( !$data || !is_array( $data ) ) {
71
				wfDebug( __METHOD__ . " invalid WebP metadata\n" );
72
73
				return self::METADATA_BAD;
74
		}
75
76
		if ( !isset( $data['metadata']['_MW_WEBP_VERSION'] )
77
				|| $data['metadata']['_MW_WEBP_VERSION'] != self::_MW_WEBP_VERSION
78
		) {
79
				wfDebug( __METHOD__ . " old but compatible WebP metadata\n" );
80
81
				return self::METADATA_COMPATIBLE;
82
		}
83
		return self::METADATA_GOOD;
84
	}
85
86
	/**
87
	 * Extracts the image size and WebP type from a file