/** * Returns the mime type of a file name * * @param string $fileName * * @return string */ private function getMimeType($fileName) { $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION); $mimeTypeHelper = Mimetypes::getInstance(); $mimeType = $mimeTypeHelper->fromExtension($fileExtension); return !is_null($mimeType) ? $mimeType : "application/force-download"; }
/** * @return string */ protected function getExtensionsMimeType() { return Mimetypes::getInstance()->fromFilename($this->getPathname()); }
<?php require_once __DIR__ . '/vendor/autoload.php'; use Alfred\Workflow; use Skyzyx\Components\Mimetypes\Mimetypes; $bundle_id = 'com.ryanparman.workflow.mime'; $wf = new Workflow($bundle_id); $int = 0; $query = $argv[1]; $mimes = Mimetypes::getInstance()->getMimeTypes(); $extensions = array_keys($mimes); $matching_extensions = array_filter($extensions, function ($extension) use($query, $mimes, $wf, &$int) { $int++; if (preg_match('/' . $query . '/i', $extension)) { $wf->result(array('uid' => "{$extension}-{$query}-{$int}", 'arg' => $mimes[$extension], 'title' => $extension . ': ' . $mimes[$extension], 'subtitle' => 'Copy to clipboard', 'icon' => __DIR__ . '/icon.png')); return true; } return false; }); if (count($matching_extensions) === 0) { $wf->result(array('uid' => 'none', 'arg' => $query, 'title' => 'No results', 'subtitle' => 'No results found.', 'icon' => __DIR__ . '/icon.png', 'valid' => 'no')); } echo $wf->toXML();