diff options
Diffstat (limited to 'ext/js/media')
-rw-r--r-- | ext/js/media/audio-downloader.js | 4 | ||||
-rw-r--r-- | ext/js/media/media-util.js | 211 |
2 files changed, 105 insertions, 110 deletions
diff --git a/ext/js/media/audio-downloader.js b/ext/js/media/audio-downloader.js index b4f63b96..968c9353 100644 --- a/ext/js/media/audio-downloader.js +++ b/ext/js/media/audio-downloader.js @@ -20,7 +20,7 @@ import {RequestBuilder} from '../background/request-builder.js'; import {ExtensionError} from '../core/extension-error.js'; import {readResponseJson} from '../core/json.js'; import {JsonSchema} from '../data/json-schema.js'; -import {ArrayBufferUtil} from '../data/sandbox/array-buffer-util.js'; +import {arrayBufferToBase64} from '../data/sandbox/array-buffer-util.js'; import {NativeSimpleDOMParser} from '../dom/native-simple-dom-parser.js'; import {SimpleDOMParser} from '../dom/simple-dom-parser.js'; import {isStringEntirelyKana} from '../language/japanese.js'; @@ -358,7 +358,7 @@ export class AudioDownloader { throw new Error('Could not retrieve audio'); } - const data = ArrayBufferUtil.arrayBufferToBase64(arrayBuffer); + const data = arrayBufferToBase64(arrayBuffer); const contentType = response.headers.get('Content-Type'); return {data, contentType}; } diff --git a/ext/js/media/media-util.js b/ext/js/media/media-util.js index 1f9f2d0b..3e492e42 100644 --- a/ext/js/media/media-util.js +++ b/ext/js/media/media-util.js @@ -17,119 +17,114 @@ */ /** - * MediaUtil is a class containing helper methods related to media processing. + * Gets the file extension of a file path. URL search queries and hash + * fragments are not handled. + * @param {string} path The path to the file. + * @returns {string} The file extension, including the '.', or an empty string + * if there is no file extension. */ -export class MediaUtil { - /** - * Gets the file extension of a file path. URL search queries and hash - * fragments are not handled. - * @param {string} path The path to the file. - * @returns {string} The file extension, including the '.', or an empty string - * if there is no file extension. - */ - static getFileNameExtension(path) { - const match = /\.[^./\\]*$/.exec(path); - return match !== null ? match[0] : ''; - } +export function getFileNameExtension(path) { + const match = /\.[^./\\]*$/.exec(path); + return match !== null ? match[0] : ''; +} - /** - * Gets an image file's media type using a file path. - * @param {string} path The path to the file. - * @returns {?string} The media type string if it can be determined from the file path, - * otherwise `null`. - */ - static getImageMediaTypeFromFileName(path) { - switch (this.getFileNameExtension(path).toLowerCase()) { - case '.apng': - return 'image/apng'; - case '.bmp': - return 'image/bmp'; - case '.gif': - return 'image/gif'; - case '.ico': - case '.cur': - return 'image/x-icon'; - case '.jpg': - case '.jpeg': - case '.jfif': - case '.pjpeg': - case '.pjp': - return 'image/jpeg'; - case '.png': - return 'image/png'; - case '.svg': - return 'image/svg+xml'; - case '.tif': - case '.tiff': - return 'image/tiff'; - case '.webp': - return 'image/webp'; - default: - return null; - } +/** + * Gets an image file's media type using a file path. + * @param {string} path The path to the file. + * @returns {?string} The media type string if it can be determined from the file path, + * otherwise `null`. + */ +export function getImageMediaTypeFromFileName(path) { + switch (getFileNameExtension(path).toLowerCase()) { + case '.apng': + return 'image/apng'; + case '.bmp': + return 'image/bmp'; + case '.gif': + return 'image/gif'; + case '.ico': + case '.cur': + return 'image/x-icon'; + case '.jpg': + case '.jpeg': + case '.jfif': + case '.pjpeg': + case '.pjp': + return 'image/jpeg'; + case '.png': + return 'image/png'; + case '.svg': + return 'image/svg+xml'; + case '.tif': + case '.tiff': + return 'image/tiff'; + case '.webp': + return 'image/webp'; + default: + return null; } +} - /** - * Gets the file extension for a corresponding media type. - * @param {string} mediaType The media type to use. - * @returns {?string} A file extension including the dot for the media type, - * otherwise `null`. - */ - static getFileExtensionFromImageMediaType(mediaType) { - switch (mediaType) { - case 'image/apng': - return '.apng'; - case 'image/bmp': - return '.bmp'; - case 'image/gif': - return '.gif'; - case 'image/x-icon': - return '.ico'; - case 'image/jpeg': - return '.jpeg'; - case 'image/png': - return '.png'; - case 'image/svg+xml': - return '.svg'; - case 'image/tiff': - return '.tiff'; - case 'image/webp': - return '.webp'; - default: - return null; - } +/** + * Gets the file extension for a corresponding media type. + * @param {string} mediaType The media type to use. + * @returns {?string} A file extension including the dot for the media type, + * otherwise `null`. + */ +export function getFileExtensionFromImageMediaType(mediaType) { + switch (mediaType) { + case 'image/apng': + return '.apng'; + case 'image/bmp': + return '.bmp'; + case 'image/gif': + return '.gif'; + case 'image/x-icon': + return '.ico'; + case 'image/jpeg': + return '.jpeg'; + case 'image/png': + return '.png'; + case 'image/svg+xml': + return '.svg'; + case 'image/tiff': + return '.tiff'; + case 'image/webp': + return '.webp'; + default: + return null; } +} - /** - * Gets the file extension for a corresponding media type. - * @param {string} mediaType The media type to use. - * @returns {?string} A file extension including the dot for the media type, - * otherwise `null`. - */ - static getFileExtensionFromAudioMediaType(mediaType) { - switch (mediaType) { - case 'audio/aac': - return '.aac'; - case 'audio/mpeg': - case 'audio/mp3': - return '.mp3'; - case 'audio/mp4': - return '.mp4'; - case 'audio/ogg': - case 'audio/vorbis': - return '.ogg'; - case 'audio/vnd.wav': - case 'audio/wave': - case 'audio/wav': - case 'audio/x-wav': - case 'audio/x-pn-wav': - return '.wav'; - case 'audio/flac': - return '.flac'; - case 'audio/webm': - return '.webm'; - default: - return null; - } +/** + * Gets the file extension for a corresponding media type. + * @param {string} mediaType The media type to use. + * @returns {?string} A file extension including the dot for the media type, + * otherwise `null`. + */ +export function getFileExtensionFromAudioMediaType(mediaType) { + switch (mediaType) { + case 'audio/aac': + return '.aac'; + case 'audio/mpeg': + case 'audio/mp3': + return '.mp3'; + case 'audio/mp4': + return '.mp4'; + case 'audio/ogg': + case 'audio/vorbis': + return '.ogg'; + case 'audio/vnd.wav': + case 'audio/wave': + case 'audio/wav': + case 'audio/x-wav': + case 'audio/x-pn-wav': + return '.wav'; + case 'audio/flac': + return '.flac'; + case 'audio/webm': + return '.webm'; + default: + return null; } } |