diff --git a/apps/readest-app/src/utils/book.ts b/apps/readest-app/src/utils/book.ts index 42d8dc43..9ab55194 100644 --- a/apps/readest-app/src/utils/book.ts +++ b/apps/readest-app/src/utils/book.ts @@ -1,6 +1,6 @@ import { EXTS } from '@/libs/document'; import { Book, BookConfig, BookProgress, WritingMode } from '@/types/book'; -import { getUserLang, isContentURI, isValidURL, makeSafeFilename } from './misc'; +import { getUserLang, isContentURI, isFileURI, isValidURL, makeSafeFilename } from './misc'; import { getStorageType } from './object'; import { getDirFromLanguage } from './rtl'; import { SUPPORTED_LANGS } from '@/services/constants'; @@ -34,7 +34,7 @@ export const isBookFile = (filename: string) => { return Object.values(EXTS).includes(filename.split('.').pop()!); }; export const getFilename = (fileOrUri: string) => { - if (isValidURL(fileOrUri) || isContentURI(fileOrUri)) { + if (isValidURL(fileOrUri) || isContentURI(fileOrUri) || isFileURI(fileOrUri)) { fileOrUri = decodeURI(fileOrUri); } const normalizedPath = fileOrUri.replace(/\\/g, '/'); diff --git a/apps/readest-app/src/utils/misc.ts b/apps/readest-app/src/utils/misc.ts index da2c1902..ddc93a13 100644 --- a/apps/readest-app/src/utils/misc.ts +++ b/apps/readest-app/src/utils/misc.ts @@ -85,6 +85,10 @@ export const isContentURI = (uri: string) => { return uri.startsWith('content://'); }; +export const isFileURI = (uri: string) => { + return uri.startsWith('file://'); +}; + export const isValidURL = (url: string, allowedSchemes: string[] = ['http', 'https']) => { try { const { protocol } = new URL(url);