H4wk507 / cda-dl

CLI downloader do filmów i folderów z cda.pl
MIT License
11 stars 2 forks source link

Błędy podczas ściągania zawartości folderu #10

Open JG24 opened 1 month ago

JG24 commented 1 month ago

Cześć!

Czasami skrypt wyrzuca poniższy błąd:

Traceback (most recent call last):
  File "/home/user/PyVirtual/bin/cda-dl", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/main.py", line 110, in main
    Downloader(args)
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/downloader.py", line 66, in __init__
    asyncio.run(self.main())
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/downloader.py", line 83, in main
    await self.download_folders(session)
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/downloader.py", line 186, in download_folders
    await Folder(folder_url, session, self.ui).download_folder(
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/folder.py", line 57, in download_folder
    await self.download_videos_from_folder(
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/folder.py", line 126, in download_videos_from_folder
    await asyncio.gather(*tasks)
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/folder.py", line 121, in wrapper
    await video.download_video(download_options, download_state)
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/video.py", line 97, in download_video
    await self.stream_file(download_state)
  File "/home/user/PyVirtual/lib/python3.11/site-packages/cda_dl/video.py", line 282, in stream_file
    async for chunk in self.video_stream.content.iter_chunked(
  File "/home/user/PyVirtual/lib/python3.11/site-packages/aiohttp/streams.py", line 50, in __anext__
    rv = await self.read_func()
         ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/PyVirtual/lib/python3.11/site-packages/aiohttp/streams.py", line 395, in read
    return self._read_nowait(n)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/user/PyVirtual/lib/python3.11/site-packages/aiohttp/streams.py", line 502, in _read_nowait
    self._timer.assert_timeout()
  File "/home/user/PyVirtual/lib/python3.11/site-packages/aiohttp/helpers.py", line 687, in assert_timeout
    raise asyncio.TimeoutError from None
TimeoutError

Na ten moment dzieje się to tylko w przypadku jeśli ściągamy zawartość folderu. Dodam, że ponowienie komendy pozwala ukończyć download od miejsca w którym skrypt przerwał pracę.

H4wk507 commented 1 month ago

@JG24 Siemka, dzięki za issue! Mamy na tego buga otwartego PR'a #9. Po zmergowaniu będziemy pomijać takie video, które ztimeoutowało, a nie wywalać cały program