Completed
Pull Request — master (#6782)
by Marcel
11:28
created
lib/private/Repair/RepairMimeTypes.php 1 patch
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -34,158 +34,158 @@
 block discarded – undo
34 34
 use OCP\Migration\IRepairStep;
35 35
 
36 36
 class RepairMimeTypes implements IRepairStep {
37
-	/**
38
-	 * @var \OCP\IConfig
39
-	 */
40
-	protected $config;
41
-
42
-	/**
43
-	 * @var int
44
-	 */
45
-	protected $folderMimeTypeId;
46
-
47
-	/**
48
-	 * @param \OCP\IConfig $config
49
-	 */
50
-	public function __construct($config) {
51
-		$this->config = $config;
52
-	}
53
-
54
-	public function getName() {
55
-		return 'Repair mime types';
56
-	}
57
-
58
-	private static function existsStmt() {
59
-		return \OC_DB::prepare('
37
+    /**
38
+     * @var \OCP\IConfig
39
+     */
40
+    protected $config;
41
+
42
+    /**
43
+     * @var int
44
+     */
45
+    protected $folderMimeTypeId;
46
+
47
+    /**
48
+     * @param \OCP\IConfig $config
49
+     */
50
+    public function __construct($config) {
51
+        $this->config = $config;
52
+    }
53
+
54
+    public function getName() {
55
+        return 'Repair mime types';
56
+    }
57
+
58
+    private static function existsStmt() {
59
+        return \OC_DB::prepare('
60 60
 			SELECT count(`mimetype`)
61 61
 			FROM   `*PREFIX*mimetypes`
62 62
 			WHERE  `mimetype` = ?
63 63
 		');
64
-	}
64
+    }
65 65
 
66
-	private static function getIdStmt() {
67
-		return \OC_DB::prepare('
66
+    private static function getIdStmt() {
67
+        return \OC_DB::prepare('
68 68
 			SELECT `id`
69 69
 			FROM   `*PREFIX*mimetypes`
70 70
 			WHERE  `mimetype` = ?
71 71
 		');
72
-	}
72
+    }
73 73
 
74
-	private static function insertStmt() {
75
-		return \OC_DB::prepare('
74
+    private static function insertStmt() {
75
+        return \OC_DB::prepare('
76 76
 			INSERT INTO `*PREFIX*mimetypes` ( `mimetype` )
77 77
 			VALUES ( ? )
78 78
 		');
79
-	}
79
+    }
80 80
 
81
-	private static function updateByNameStmt() {
82
-		return \OC_DB::prepare('
81
+    private static function updateByNameStmt() {
82
+        return \OC_DB::prepare('
83 83
 			UPDATE `*PREFIX*filecache`
84 84
 			SET `mimetype` = ?
85 85
 			WHERE `mimetype` <> ? AND `mimetype` <> ? AND `name` ILIKE ?
86 86
 		');
87
-	}
88
-
89
-	private function updateMimetypes($updatedMimetypes) {
90
-		if (empty($this->folderMimeTypeId)) {
91
-			$result = \OC_DB::executeAudited(self::getIdStmt(), array('httpd/unix-directory'));
92
-			$this->folderMimeTypeId = (int)$result->fetchOne();
93
-		}
94
-
95
-		foreach ($updatedMimetypes as $extension => $mimetype) {
96
-			$result = \OC_DB::executeAudited(self::existsStmt(), array($mimetype));
97
-			$exists = $result->fetchOne();
98
-
99
-			if (!$exists) {
100
-				// insert mimetype
101
-				\OC_DB::executeAudited(self::insertStmt(), array($mimetype));
102
-			}
103
-
104
-			// get target mimetype id
105
-			$result = \OC_DB::executeAudited(self::getIdStmt(), array($mimetype));
106
-			$mimetypeId = $result->fetchOne();
107
-
108
-			// change mimetype for files with x extension
109
-			\OC_DB::executeAudited(self::updateByNameStmt(), array($mimetypeId, $this->folderMimeTypeId, $mimetypeId, '%.' . $extension));
110
-		}
111
-	}
112
-
113
-	private function introduceImageTypes() {
114
-		$updatedMimetypes = array(
115
-			'jp2' => 'image/jp2',
116
-			'webp' => 'image/webp',
117
-		);
118
-
119
-		$this->updateMimetypes($updatedMimetypes);
120
-	}
121
-
122
-	private function introduceWindowsProgramTypes() {
123
-		$updatedMimetypes = array(
124
-			'htaccess' => 'text/plain',
125
-			'bat' => 'application/x-msdos-program',
126
-			'cmd' => 'application/cmd',
127
-		);
128
-
129
-		$this->updateMimetypes($updatedMimetypes);
130
-	}
131
-
132
-	private function introduceLocationTypes() {
133
-		$updatedMimetypes = [
134
-			'gpx' => 'application/gpx+xml',
135
-			'kml' => 'application/vnd.google-earth.kml+xml',
136
-			'kmz' => 'application/vnd.google-earth.kmz',
137
-			'tcx' => 'application/vnd.garmin.tcx+xml',
138
-		];
139
-
140
-		$this->updateMimetypes($updatedMimetypes);
141
-	}
142
-
143
-	private function introduceInternetShortcutTypes() {
144
-		$updatedMimetypes = [
145
-			'url' => 'application/internet-shortcut',
146
-			'webloc' => 'application/internet-shortcut'
147
-		];
148
-
149
-		$this->updateMimetypes($updatedMimetypes);
150
-	}
151
-
152
-	private function introduceStreamingTypes() {
153
- 		$updatedMimetypes = [
154
- 			'm3u' => 'audio/mpegurl',
155
- 			'm3u8' => 'audio/mpegurl',
156
- 			'pls' => 'audio/x-scpls'
157
- 		];
87
+    }
88
+
89
+    private function updateMimetypes($updatedMimetypes) {
90
+        if (empty($this->folderMimeTypeId)) {
91
+            $result = \OC_DB::executeAudited(self::getIdStmt(), array('httpd/unix-directory'));
92
+            $this->folderMimeTypeId = (int)$result->fetchOne();
93
+        }
94
+
95
+        foreach ($updatedMimetypes as $extension => $mimetype) {
96
+            $result = \OC_DB::executeAudited(self::existsStmt(), array($mimetype));
97
+            $exists = $result->fetchOne();
98
+
99
+            if (!$exists) {
100
+                // insert mimetype
101
+                \OC_DB::executeAudited(self::insertStmt(), array($mimetype));
102
+            }
103
+
104
+            // get target mimetype id
105
+            $result = \OC_DB::executeAudited(self::getIdStmt(), array($mimetype));
106
+            $mimetypeId = $result->fetchOne();
107
+
108
+            // change mimetype for files with x extension
109
+            \OC_DB::executeAudited(self::updateByNameStmt(), array($mimetypeId, $this->folderMimeTypeId, $mimetypeId, '%.' . $extension));
110
+        }
111
+    }
112
+
113
+    private function introduceImageTypes() {
114
+        $updatedMimetypes = array(
115
+            'jp2' => 'image/jp2',
116
+            'webp' => 'image/webp',
117
+        );
118
+
119
+        $this->updateMimetypes($updatedMimetypes);
120
+    }
121
+
122
+    private function introduceWindowsProgramTypes() {
123
+        $updatedMimetypes = array(
124
+            'htaccess' => 'text/plain',
125
+            'bat' => 'application/x-msdos-program',
126
+            'cmd' => 'application/cmd',
127
+        );
128
+
129
+        $this->updateMimetypes($updatedMimetypes);
130
+    }
131
+
132
+    private function introduceLocationTypes() {
133
+        $updatedMimetypes = [
134
+            'gpx' => 'application/gpx+xml',
135
+            'kml' => 'application/vnd.google-earth.kml+xml',
136
+            'kmz' => 'application/vnd.google-earth.kmz',
137
+            'tcx' => 'application/vnd.garmin.tcx+xml',
138
+        ];
139
+
140
+        $this->updateMimetypes($updatedMimetypes);
141
+    }
142
+
143
+    private function introduceInternetShortcutTypes() {
144
+        $updatedMimetypes = [
145
+            'url' => 'application/internet-shortcut',
146
+            'webloc' => 'application/internet-shortcut'
147
+        ];
148
+
149
+        $this->updateMimetypes($updatedMimetypes);
150
+    }
151
+
152
+    private function introduceStreamingTypes() {
153
+            $updatedMimetypes = [
154
+                'm3u' => 'audio/mpegurl',
155
+                'm3u8' => 'audio/mpegurl',
156
+                'pls' => 'audio/x-scpls'
157
+            ];
158 158
  
159
- 		$this->updateMimetypes($updatedMimetypes);
160
- 	}
161
-	/**
162
-	 * Fix mime types
163
-	 */
164
-	public function run(IOutput $out) {
165
-
166
-		$ocVersionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
167
-
168
-		// NOTE TO DEVELOPERS: when adding new mime types, please make sure to
169
-		// add a version comparison to avoid doing it every time
170
-
171
-		if (version_compare($ocVersionFromBeforeUpdate, '12.0.0.14', '<') && $this->introduceImageTypes()) {
172
-			$out->info('Fixed image mime types');
173
-		}
174
-
175
-		if (version_compare($ocVersionFromBeforeUpdate, '12.0.0.13', '<') && $this->introduceWindowsProgramTypes()) {
176
-			$out->info('Fixed windows program mime types');
177
-		}
178
-
179
-		if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.0', '<') && $this->introduceLocationTypes()) {
180
-			$out->info('Fixed geospatial mime types');
181
-		}
182
-
183
-		if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.3', '<') && $this->introduceInternetShortcutTypes()) {
184
-			$out->info('Fixed internet-shortcut mime types');
185
-		}
186
-
187
-		if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.3', '<') && $this->introduceStreamingTypes()) {
188
-			$out->info('Fixed streaming mime types');
189
-		}
190
-	}
159
+            $this->updateMimetypes($updatedMimetypes);
160
+        }
161
+    /**
162
+     * Fix mime types
163
+     */
164
+    public function run(IOutput $out) {
165
+
166
+        $ocVersionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
167
+
168
+        // NOTE TO DEVELOPERS: when adding new mime types, please make sure to
169
+        // add a version comparison to avoid doing it every time
170
+
171
+        if (version_compare($ocVersionFromBeforeUpdate, '12.0.0.14', '<') && $this->introduceImageTypes()) {
172
+            $out->info('Fixed image mime types');
173
+        }
174
+
175
+        if (version_compare($ocVersionFromBeforeUpdate, '12.0.0.13', '<') && $this->introduceWindowsProgramTypes()) {
176
+            $out->info('Fixed windows program mime types');
177
+        }
178
+
179
+        if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.0', '<') && $this->introduceLocationTypes()) {
180
+            $out->info('Fixed geospatial mime types');
181
+        }
182
+
183
+        if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.3', '<') && $this->introduceInternetShortcutTypes()) {
184
+            $out->info('Fixed internet-shortcut mime types');
185
+        }
186
+
187
+        if (version_compare($ocVersionFromBeforeUpdate, '13.0.0.3', '<') && $this->introduceStreamingTypes()) {
188
+            $out->info('Fixed streaming mime types');
189
+        }
190
+    }
191 191
 }
Please login to merge, or discard this patch.