Fix exception catching

This commit is contained in:
2022-04-24 23:58:26 +03:00
parent 0ef8d8f961
commit 436e397418
2 changed files with 11 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
import asyncio import asyncio
from typing import Optional, AsyncIterator, cast from typing import Optional, AsyncIterator, cast
import zipfile
import aiofiles import aiofiles
import aiofiles.os import aiofiles.os
@@ -133,7 +134,13 @@ class FLDownloader(BaseDownloader):
) )
return data return data
except (NotSuccess, ReceivedHTML, ConvertationError, FileNotFoundError): except (
NotSuccess,
ReceivedHTML,
ConvertationError,
FileNotFoundError,
ValueError,
):
continue continue
tasks_ = pending tasks_ = pending
@@ -157,7 +164,7 @@ class FLDownloader(BaseDownloader):
return await asyncio.get_event_loop().run_in_executor( return await asyncio.get_event_loop().run_in_executor(
process_pool_executor, unzip, temp_file.name, "fb2" process_pool_executor, unzip, temp_file.name, "fb2"
) )
except FileNotFoundError: except (FileNotFoundError, zipfile.BadZipFile):
return None return None
async def _download_with_converting( async def _download_with_converting(

View File

@@ -22,9 +22,10 @@ def remove_temp_file(filename: str) -> bool:
def unzip(temp_zipfile: str, file_type: str) -> Optional[str]: def unzip(temp_zipfile: str, file_type: str) -> Optional[str]:
zip_file = zipfile.ZipFile(temp_zipfile)
result = tempfile.NamedTemporaryFile(delete=False) result = tempfile.NamedTemporaryFile(delete=False)
zip_file = zipfile.ZipFile(temp_zipfile)
for name in zip_file.namelist(): # type: str for name in zip_file.namelist(): # type: str
if file_type.lower() in name.lower() or name.lower() == "elector": if file_type.lower() in name.lower() or name.lower() == "elector":
with zip_file.open(name, "r") as internal_file: with zip_file.open(name, "r") as internal_file: