Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/treetrek.git

Adds media file types

AuthorDave Jarvis <email>
Date2026-02-09 20:49:38 GMT-0800
Commite0c261a78d72bec9d0db47ea7e409d03f3b5a2c5
Parent4b80823
MediaTypeSniffer.php
[self::CAT_TEXT, [0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20], 'text/xml'],
[self::CAT_TEXT, [0x25, 0x50, 0x44, 0x46, 0x2D], 'application/pdf'],
+ [self::CAT_TEXT, [0xEF, 0xBB, 0xBF], 'text/plain'],
+ [self::CAT_TEXT, [0xFE, 0xFF], 'text/plain'],
+ [self::CAT_TEXT, [0xFF, 0xFE], 'text/plain'],
+ [self::CAT_TEXT, [0x00, 0x00, 0xFE, 0xFF], 'text/plain'],
+ [self::CAT_TEXT, [0xFF, 0xFE, 0x00, 0x00], 'text/plain'],
[self::CAT_AUDIO, [0xFF, 0xFB, self::ANY], 'audio/mpeg'],
[self::CAT_AUDIO, [0x49, 0x44, 0x33], 'audio/mpeg'],
private const EXTENSION_MAP = [
- 'html' => [self::CAT_TEXT, 'text/html'],
- 'css' => [self::CAT_TEXT, 'text/css'],
- 'js' => [self::CAT_TEXT, 'application/javascript'],
'json' => [self::CAT_TEXT, 'application/json'],
'xml' => [self::CAT_TEXT, 'application/xml'],
'md' => [self::CAT_TEXT, 'text/markdown'],
'txt' => [self::CAT_TEXT, 'text/plain'],
- 'php' => [self::CAT_TEXT, 'application/x-php'],
- 'sql' => [self::CAT_TEXT, 'application/sql'],
'yaml' => [self::CAT_TEXT, 'text/yaml'],
'yml' => [self::CAT_TEXT, 'text/yaml'],
'gradle' => [self::CAT_TEXT, 'text/plain'],
'gitignore' => [self::CAT_TEXT, 'text/plain'],
- 'sh' => [self::CAT_TEXT, 'application/x-sh'],
'tex' => [self::CAT_TEXT, 'application/x-tex'],
'bat' => [self::CAT_TEXT, 'application/x-msdos-program'],
- 'py' => [self::CAT_TEXT, 'text/x-python'],
- 'rb' => [self::CAT_TEXT, 'text/x-ruby'],
- 'java' => [self::CAT_TEXT, 'text/x-java-source'],
- 'c' => [self::CAT_TEXT, 'text/x-csrc'],
- 'cpp' => [self::CAT_TEXT, 'text/x-c++src'],
- 'h' => [self::CAT_TEXT, 'text/x-chdr'],
- 'cs' => [self::CAT_TEXT, 'text/x-csharp'],
'ts' => [self::CAT_TEXT, 'application/typescript'],
'log' => [self::CAT_TEXT, 'text/plain'],
'webp' => [self::CAT_IMAGE, 'image/webp'],
'mp4' => [self::CAT_VIDEO, 'video/mp4'],
- 'mp3' => [self::CAT_AUDIO, 'audio/mpeg']
+ 'mp3' => [self::CAT_AUDIO, 'audio/mpeg'],
+
+ // Data formats
+ 'csv' => [self::CAT_TEXT, 'text/csv'],
+ 'tsv' => [self::CAT_TEXT, 'text/tab-separated-values'],
+ 'psv' => [self::CAT_TEXT, 'text/plain'],
+ 'ndjson' => [self::CAT_TEXT, 'application/x-ndjson'],
+
+ // Config formats
+ 'toml' => [self::CAT_TEXT, 'application/toml'],
+ 'env' => [self::CAT_TEXT, 'text/plain'],
+ 'cfg' => [self::CAT_TEXT, 'text/plain'],
+ 'properties'=> [self::CAT_TEXT, 'text/plain'],
+ 'dotenv' => [self::CAT_TEXT, 'text/plain'],
+
+ // Documentation / markup
+ 'rst' => [self::CAT_TEXT, 'text/x-rst'],
+ 'asciidoc' => [self::CAT_TEXT, 'text/asciidoc'],
+ 'adoc' => [self::CAT_TEXT, 'text/asciidoc'],
+ 'org' => [self::CAT_TEXT, 'text/org'],
+ 'latex' => [self::CAT_TEXT, 'application/x-tex'],
+
+ // Programming languages
+ 'php' => [self::CAT_TEXT, 'application/x-php'],
+ 'sql' => [self::CAT_TEXT, 'application/sql'],
+ 'html' => [self::CAT_TEXT, 'text/html'],
+ 'css' => [self::CAT_TEXT, 'text/css'],
+ 'js' => [self::CAT_TEXT, 'application/javascript'],
+ 'py' => [self::CAT_TEXT, 'text/x-python'],
+ 'rb' => [self::CAT_TEXT, 'text/x-ruby'],
+ 'java' => [self::CAT_TEXT, 'text/x-java-source'],
+ 'c' => [self::CAT_TEXT, 'text/x-csrc'],
+ 'cpp' => [self::CAT_TEXT, 'text/x-c++src'],
+ 'h' => [self::CAT_TEXT, 'text/x-chdr'],
+ 'cs' => [self::CAT_TEXT, 'text/x-csharp'],
+ 'go' => [self::CAT_TEXT, 'text/x-go'],
+ 'rs' => [self::CAT_TEXT, 'text/x-rust'],
+ 'swift' => [self::CAT_TEXT, 'text/x-swift'],
+ 'kt' => [self::CAT_TEXT, 'text/x-kotlin'],
+ 'kts' => [self::CAT_TEXT, 'text/x-kotlin'],
+ 'scala' => [self::CAT_TEXT, 'text/x-scala'],
+ 'dart' => [self::CAT_TEXT, 'text/x-dart'],
+ 'lua' => [self::CAT_TEXT, 'text/x-lua'],
+ 'pl' => [self::CAT_TEXT, 'text/x-perl'],
+ 'pm' => [self::CAT_TEXT, 'text/x-perl'],
+ 'r' => [self::CAT_TEXT, 'text/x-r'],
+ 'm' => [self::CAT_TEXT, 'text/x-matlab'], // ambiguous but text
+ 'jl' => [self::CAT_TEXT, 'text/x-julia'],
+
+ // Shell / scripting
+ 'sh' => [self::CAT_TEXT, 'application/x-sh'],
+ 'bash' => [self::CAT_TEXT, 'application/x-sh'],
+ 'zsh' => [self::CAT_TEXT, 'application/x-sh'],
+ 'fish' => [self::CAT_TEXT, 'text/plain'],
+ 'ps1' => [self::CAT_TEXT, 'application/x-powershell'],
+
+ // Build / DevOps
+ 'dockerfile'=> [self::CAT_TEXT, 'text/plain'],
+ 'makefile' => [self::CAT_TEXT, 'text/x-makefile'],
+ 'cmake' => [self::CAT_TEXT, 'text/x-cmake'],
+ 'gitmodules'=> [self::CAT_TEXT, 'text/plain'],
+ 'editorconfig'=> [self::CAT_TEXT, 'text/plain'],
+
+ // Dependency / package files
+ 'lock' => [self::CAT_TEXT, 'text/plain'],
+ 'pipfile' => [self::CAT_TEXT, 'text/plain'],
+ 'pipfile.lock' => [self::CAT_TEXT, 'application/json'],
+ 'requirements.txt' => [self::CAT_TEXT, 'text/plain'],
+
+ // Misc text
+ 'license' => [self::CAT_TEXT, 'text/plain'],
+ 'readme' => [self::CAT_TEXT, 'text/plain'],
+ 'todo' => [self::CAT_TEXT, 'text/plain'],
+ 'manifest' => [self::CAT_TEXT, 'text/plain'],
];
Delta79 lines added, 14 lines removed, 65-line increase