From 38498af17146f42ac42f9eb119d5642bfd522a09 Mon Sep 17 00:00:00 2001 From: Normal Ra Date: Tue, 12 Aug 2014 14:07:10 +0200 Subject: Add APK mimetype repair scenario. --- lib/repair/repairmimetypes.php | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/lib/repair/repairmimetypes.php b/lib/repair/repairmimetypes.php index f7618c6e060..00f5340a878 100644 --- a/lib/repair/repairmimetypes.php +++ b/lib/repair/repairmimetypes.php @@ -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')); + } } } -- cgit v1.2.3