- add season_overwrite and episode_overwrite for Schedule work
- print File path at the end of file for Schedule work - add discord downloader
This commit is contained in:
@@ -519,6 +519,11 @@ class dl:
|
||||
default=False,
|
||||
help="Continue with best available quality if requested resolutions are not available.",
|
||||
)
|
||||
@click.option("-so", "--season-overwrite",type=int, default=None,
|
||||
help="Overwrite season number")
|
||||
@click.option("-eo", "--episode-overwrite",type=int, default=None,
|
||||
help="Overwrite episode number")
|
||||
|
||||
@click.pass_context
|
||||
def cli(ctx: click.Context, **kwargs: Any) -> dl:
|
||||
return dl(ctx, **kwargs)
|
||||
@@ -1000,6 +1005,10 @@ class dl:
|
||||
worst: bool,
|
||||
best_available: bool,
|
||||
split_audio: Optional[bool] = None,
|
||||
|
||||
season_overwrite: Optional[int] = None,
|
||||
episode_overwrite: Optional[int] = None,
|
||||
|
||||
*_: Any,
|
||||
**__: Any,
|
||||
) -> None:
|
||||
@@ -2464,12 +2473,11 @@ class dl:
|
||||
for muxed_path in muxed_paths:
|
||||
media_info = MediaInfo.parse(muxed_path)
|
||||
final_dir = self.output_dir or config.directories.downloads
|
||||
final_filename = title.get_filename(media_info, show_service=not no_source)
|
||||
final_filename = title.get_filename(media_info, show_service=not no_source,season_overwrite=int(season_overwrite) if season_overwrite else None,episode_overwrite=int(episode_overwrite) if episode_overwrite else None)
|
||||
audio_codec_suffix = muxed_audio_codecs.get(muxed_path)
|
||||
|
||||
if not no_folder and isinstance(title, (Episode, Song)):
|
||||
final_dir /= title.get_filename(media_info, show_service=not no_source, folder=True)
|
||||
|
||||
final_dir /= title.get_filename(media_info, show_service=not no_source, folder=True,season_overwrite=int(season_overwrite) if season_overwrite else None)
|
||||
final_dir.mkdir(parents=True, exist_ok=True)
|
||||
final_path = final_dir / f"{final_filename}{muxed_path.suffix}"
|
||||
template_type = (
|
||||
@@ -2500,6 +2508,9 @@ class dl:
|
||||
console.print(
|
||||
Padding(f":tada: Title downloaded in [progress.elapsed]{title_dl_time}[/]!", (0, 5, 1, 5))
|
||||
)
|
||||
console.print(
|
||||
Padding(f"File path - {final_path}", (0, 5, 1, 5))
|
||||
)
|
||||
|
||||
# update cookies
|
||||
cookie_file = self.get_cookie_path(self.service, self.profile)
|
||||
@@ -2510,6 +2521,7 @@ class dl:
|
||||
|
||||
console.print(Padding(f"Processed all titles in [progress.elapsed]{dl_time}", (0, 5, 1, 5)))
|
||||
|
||||
|
||||
def prepare_drm(
|
||||
self,
|
||||
drm: DRM_T,
|
||||
|
||||
@@ -78,14 +78,25 @@ class Episode(Title):
|
||||
self.year = year
|
||||
self.description = description
|
||||
|
||||
def _build_template_context(self, media_info: MediaInfo, show_service: bool = True) -> dict:
|
||||
def _build_template_context(self, media_info: MediaInfo, show_service: bool = True,season_overwrite=None,episode_overwrite=None) -> dict:
|
||||
"""Build template context dictionary from MediaInfo."""
|
||||
context = self._build_base_template_context(media_info, show_service)
|
||||
context["title"] = self.title.replace("$", "S")
|
||||
context["year"] = self.year or ""
|
||||
context["season"] = f"S{self.season:02}"
|
||||
context["episode"] = f"E{self.number:02}"
|
||||
context["season_episode"] = f"S{self.season:02}E{self.number:02}"
|
||||
|
||||
if season_overwrite is not None:
|
||||
season = season_overwrite
|
||||
else:
|
||||
season = self.season
|
||||
|
||||
if episode_overwrite is not None:
|
||||
episode = episode_overwrite
|
||||
else:
|
||||
episode = self.number
|
||||
|
||||
context["season"] = f"S{season:02}"
|
||||
context["episode"] = f"E{episode:02}"
|
||||
context["season_episode"] = f"S{season:02}E{episode:02}"
|
||||
context["episode_name"] = self.name or ""
|
||||
return context
|
||||
|
||||
@@ -98,7 +109,7 @@ class Episode(Title):
|
||||
name=self.name or "",
|
||||
).strip()
|
||||
|
||||
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True) -> str:
|
||||
def get_filename(self, media_info: MediaInfo, folder: bool = False, show_service: bool = True,season_overwrite=None,episode_overwrite=None) -> str:
|
||||
if folder:
|
||||
series_template = config.output_template.get("series")
|
||||
if series_template:
|
||||
@@ -114,7 +125,7 @@ class Episode(Title):
|
||||
|
||||
formatter = TemplateFormatter(folder_template)
|
||||
context = self._build_template_context(media_info, show_service)
|
||||
context['season'] = f"S{self.season:02}"
|
||||
context['season'] = f"S{self.season:02}" if not season_overwrite else f"S{season_overwrite:02}"
|
||||
|
||||
folder_name = formatter.format(context)
|
||||
|
||||
@@ -130,7 +141,7 @@ class Episode(Title):
|
||||
return sanitize_filename(name, " ")
|
||||
|
||||
formatter = TemplateFormatter(config.output_template["series"])
|
||||
context = self._build_template_context(media_info, show_service)
|
||||
context = self._build_template_context(media_info, show_service,season_overwrite,episode_overwrite)
|
||||
return formatter.format(context)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user