feat: export to a .txt file instead of .lrc when --plain

This commit is contained in:
2026-04-02 11:12:40 +02:00
parent 6791e9e965
commit e382783f52
2 changed files with 13 additions and 5 deletions
+8 -3
View File
@@ -254,10 +254,15 @@ def export(
logger.error("No lyrics available to export.") logger.error("No lyrics available to export.")
sys.exit(1) sys.exit(1)
# Output file extension
ext = ".lrc" if not plain else ".txt"
if output and not output.endswith(ext):
output += ext
# Build default output path # Build default output path
if not output: if not output:
if track.url: if track.url:
lrc_path = get_sidecar_path(track.url, ensure_exists=False) lrc_path = get_sidecar_path(track.url, ensure_exists=False, extension=ext)
if lrc_path: if lrc_path:
output = str(lrc_path) output = str(lrc_path)
logger.info(f"Exporting to sidecar path: {output}") logger.info(f"Exporting to sidecar path: {output}")
@@ -265,9 +270,9 @@ def export(
# Fallback to current directory with sanitized filename # Fallback to current directory with sanitized filename
if not output: if not output:
filename = ( filename = (
f"{track.artist} - {track.title}.lrc" f"{track.artist} - {track.title}{ext}"
if track.artist and track.title if track.artist and track.title
else "lyrics.lrc" else "lyrics" + ext
) )
# Sanitize filename # Sanitize filename
filename = "".join( filename = "".join(
+5 -2
View File
@@ -297,7 +297,10 @@ def get_audio_path(audio_url: str, ensure_exists: bool = False) -> Optional[Path
def get_sidecar_path( def get_sidecar_path(
audio_url: str, ensure_audio_exists: bool = False, ensure_exists: bool = False audio_url: str,
ensure_audio_exists: bool = False,
ensure_exists: bool = False,
extension: str = ".lrc",
) -> Optional[Path]: ) -> Optional[Path]:
"""Given a file:// URL, return the corresponding .lrc sidecar path. """Given a file:// URL, return the corresponding .lrc sidecar path.
@@ -307,7 +310,7 @@ def get_sidecar_path(
audio_path = get_audio_path(audio_url, ensure_exists=ensure_audio_exists) audio_path = get_audio_path(audio_url, ensure_exists=ensure_audio_exists)
if not audio_path: if not audio_path:
return None return None
lrc_path = audio_path.with_suffix(".lrc") lrc_path = audio_path.with_suffix(extension)
if ensure_exists and not lrc_path.exists(): if ensure_exists and not lrc_path.exists():
return None return None
return lrc_path return lrc_path