Add APK mimetype repair scenario.

This commit is contained in:
Normal Ra 2014-08-12 14:07:10 +02:00
parent 42edd5b788
commit 38498af171
1 changed files with 42 additions and 0 deletions

View File

@ -113,6 +113,44 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
}
}
private function fixAPKMimeType() {
$existsStmt = \OC_DB::prepare('
SELECT count(`mimetype`)
FROM `*PREFIX*mimetypes`
WHERE `mimetype` = ?
');
$insertStmt = \OC_DB::prepare('
INSERT INTO `*PREFIX*mimetypes` ( `mimetype` )
VALUES ( ? )
');
$updateByNameStmt = \OC_DB::prepare('
UPDATE `*PREFIX*filecache`
SET `mimetype` = (
SELECT `id`
FROM `*PREFIX*mimetypes`
WHERE `mimetype` = ?
) WHERE `name` LIKE ?
');
$mimeTypeExtension = 'apk';
$mimeTypeName = 'application/vnd.android.package-archive';
$result = \OC_DB::executeAudited($existsStmt, array($mimeTypeName));
$exists = $result->fetchOne();
if ( ! $exists ) {
// insert mimetype
\OC_DB::executeAudited($insertStmt, array($mimeTypeName));
}
// change mimetype for files with x extension
\OC_DB::executeAudited($updateByNameStmt, array($mimeTypeName, '%.'.$mimeTypeExtension));
}
/**
* Fix mime types
*/
@ -120,6 +158,10 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
if ($this->fixOfficeMimeTypes()) {
$this->emit('\OC\Repair', 'info', array('Fixed office mime types'));
}
if ($this->fixAPKMimeType()) {
$this->emit('\OC\Repair', 'info', array('Fixed APK mime type'));
}
}
}