@@ -721,19 +721,22 @@ async def _download_episodes(self, download_range: RangeType, webtoon_directory:
721721 if self .use_progress_bar :
722722 self .progress .advance (task )
723723
724+ episode_title = self .episode_titles [episode_no ]
725+ context : dict = dict (episode_no = episode_no , episode_no1 = episode_no + 1 , short_ep_title = episode_title and _shorten (episode_title ), total_ep = len (self .episode_ids ))
726+
724727 if episode_no in self .skip_download :
725728 reason = "skipped_by_skip_download"
726729 description = "because the episode is included in skip_download"
727- await self ._episode_skipped (reason , description , level = "debug" , episode_no = episode_no , short_ep_title = _shorten ( self . episode_titles [ episode_no ] or "unknown episode" ) )
730+ await self ._episode_skipped (reason , description , level = "debug" , ** context )
728731 continue
729732 # download_range는 1-based indexing이니 조정이 필요함
730733 if download_range is not None and episode_no + 1 not in download_range :
731734 reason = "skipped_by_range"
732735 description = "because of the set range"
733- await self ._episode_skipped (reason , description , level = "debug" , episode_no = episode_no , short_ep_title = _shorten ( self . episode_titles [ episode_no ] or "unknown episode" ) )
736+ await self ._episode_skipped (reason , description , level = "debug" , ** context )
734737 continue
735738
736- await self ._download_episode (episode_no , webtoon_directory )
739+ await self ._download_episode (episode_no , webtoon_directory , context )
737740 finally :
738741 if self .use_progress_bar :
739742 self .progress .remove_task (task )
@@ -746,10 +749,10 @@ async def _episode_skipped(self, reason: DownloadStatus, description: str, *, no
746749 """에피소드 다운로드를 건너뛸 때 사용하는 콜백입니다."""
747750 if (ep_title := self .episode_titles [episode_no ]) is None :
748751 short_ep_title = f"#{ episode_no + 1 } "
749- msg_format = "The episode #{ episode_no1} is skipped {description}"
752+ msg_format = "[{total_ep}/{ episode_no1}] The episode is skipped {description}"
750753 else :
751754 short_ep_title = _shorten (ep_title )
752- msg_format = "The episode #{ episode_no1} '{short_ep_title}' is skipped {description}"
755+ msg_format = "[{total_ep}/{ episode_no1}] The episode '{short_ep_title}' is skipped {description}"
753756
754757 # 원래대로면 context를 더럽히면 안 되지만 어차피 skip이 끝나면 context는 더 이상 사용되지 않으니 괜찮음
755758 # 이 방식이 아리나 직접 async_callback에 넣으면 "got multiple values for keyword argument 'short_ep_title'"
@@ -784,9 +787,8 @@ async def _episode_skipped(self, reason: DownloadStatus, description: str, *, no
784787 ** context ,
785788 )
786789
787- async def _download_episode (self , episode_no : int , webtoon_directory : Path ) -> None :
790+ async def _download_episode (self , episode_no : int , webtoon_directory : Path , context : dict ) -> None :
788791 episode_title = self .episode_titles [episode_no ]
789- context : dict = dict (episode_no = episode_no , episode_no1 = episode_no + 1 , short_ep_title = episode_title and _shorten (episode_title ), total_ep = len (self .episode_ids ))
790792 if episode_title is None :
791793 return await self ._episode_skipped ("not_downloadable" , "because the episode has empty title" , level = "debug" , no_progress = True , ** context )
792794 now = datetime .now ()
@@ -825,14 +827,14 @@ async def _download_episode(self, episode_no: int, webtoon_directory: Path) -> N
825827 if self .existing_episode_policy == "raise" :
826828 raise FileExistsError (f"Directory at { episode_directory } already exists. Please delete the directory." )
827829 elif self .existing_episode_policy == "skip" :
828- return await self ._episode_skipped ("skipped_by_snapshot" , "because of existing directory " , by_file = False , ** context )
830+ return await self ._episode_skipped ("skipped_by_snapshot" , "because it's downloaded already in snapshot " , by_file = False , ** context )
829831 else :
830832 not_empty_dir = True
831833 elif episode_directory .is_dir () and os .listdir (episode_directory ):
832834 if self .existing_episode_policy == "raise" :
833835 raise FileExistsError (f"Directory at { episode_directory } already exists. Please delete the directory." )
834836 elif self .existing_episode_policy == "skip" :
835- return await self ._episode_skipped ("already_exist" , "because of existing directory " , by_file = True , ** context )
837+ return await self ._episode_skipped ("already_exist" , "because it's downloaded already " , by_file = True , ** context )
836838 else :
837839 not_empty_dir = True
838840 else :
@@ -861,7 +863,7 @@ async def _download_episode(self, episode_no: int, webtoon_directory: Path) -> N
861863 await self .async_callback (
862864 "download_failed" ,
863865 callback or _crate_callback (
864- "The episode #{episode_no} '{short_ep_title}' is failed {description}" ,
866+ "[{total_ep}/{episode_no1}] The episode '{short_ep_title}' is failed {description}" ,
865867 progress_update = "{short_ep_title} skipped" ,
866868 level = "warning" ,
867869 log_with_progress = True ,
0 commit comments