Commit Graph

332 Commits

Author SHA1 Message Date
Loïc CORBASSON
db36618628 Fix cdrdao version detection RE
Cuts 'Cdrdao 1.2.5 - (C) Andreas Mueller <andreas@daneb.de>' at the whitespace => '1.2.5'

Signed-off-by: Loïc CORBASSON <loic.devel@corbasson.fr>
2026-02-09 18:46:09 +01:00
Merlijn Wajer
656cbe1858 Merge pull request #634 from sinofp/fix-S
Default %S to 'Unknown Artist'
2026-02-07 14:21:05 +01:00
Merlijn Wajer
bf8fe39d6b Merge pull request #660 from CommandMC/feat/multiple-catalognums
Support releases with multiple catalog numbers
2026-02-07 12:41:23 +01:00
Merlijn Wajer
6c5c119f69 Merge pull request #666 from jansol/develop
cdrdao: make version regex work with 1.2.6
2026-02-07 11:15:04 +01:00
Merlijn Wajer
1c865ded70 Merge pull request #661 from CommandMC/feat/color
Add `WHIPPER_COLOR_LOG` env var to color log output
2026-02-07 11:10:31 +01:00
Merlijn Wajer
b23d69b3c5 Merge pull request #656 from CommandMC/fix/finished-rip-detection
Only look for this rip's log file in output directory
2026-02-07 11:01:12 +01:00
Merlijn Wajer
8c70563489 Merge pull request #657 from CommandMC/fix/config
Always invoke the root command as `whipper`
2026-02-07 11:00:55 +01:00
Merlijn Wajer
e1069c084e Merge pull request #658 from CommandMC/fix/tests
Make tests more robust by mocking AccurateRip responses
2026-02-07 11:00:31 +01:00
Merlijn Wajer
4bf9d8cf8b Merge pull request #662 from CommandMC/fix/releaseid-complete
Make sure to always print out the full release id
2026-02-07 10:59:26 +01:00
Jan Solanti
98c4e957d2 cdrdao: make version regex work with 1.2.6
Signed-off-by: Jan Solanti <jhs@psonet.com>
2025-12-03 04:16:22 +02:00
Katharina Dröge
d2f1ea9d9e Make sure to always print out the full release id
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-25 23:45:55 +02:00
Katharina Dröge
f319fcda9d Add WHIPPER_COLOR_LOG env var to color log output
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-25 22:32:11 +02:00
Katharina Dröge
65e9439d45 Support releases with multiple catalog numbers
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-25 21:09:56 +02:00
Katharina Dröge
adab25986f No longer rely on pkg_resources
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-24 21:52:02 +02:00
Katharina Dröge
036fd82096 Make tests more robust by mocking AccurateRip responses
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-24 17:52:47 +02:00
Katharina Dröge
86eb6a532d Always invoke the root command as whipper
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-24 17:06:09 +02:00
Katharina Dröge
314660f7d1 Only look for this rip's log file in output directory
Signed-off-by: Katharina Dröge <kate@commandmc.de>
2025-09-24 17:02:40 +02:00
Merlijn Wajer
bc8b96d956 Merge pull request #549 from BioBox/prompt
Better --prompt Handling
2025-04-03 23:20:52 +02:00
sinofp
cac1fe5ed4 Default %S to 'Unknown Artist'
When metadata is absent,
the %S template variable does not have a default value set in the dictionary,
which can cause a "KeyError: 'S'" error.

While %A defaults to 'Unknown Artist' and %S might conventionally default to 'Artist, Unknown',
defaulting %S to that is unnecessary,
because manual tagging typically follows to assign the correct name.
Therefore, I default %S to 'Unknown Artist', just like %A.

Signed-off-by: sinofp <sinofp@tuta.io>
2024-08-30 23:09:06 +01:00
Alicia Boya García
4719c74f65 New TOC CD-TEXT string decoding
This patch replaces the previous broken approach to TOC string decoding
that used `.encode().decode('unicode_escape')` with proper parsing of
the escape sequences cdrdao is known to generate.

The new parser is also lenient with invalid escape sequences, that can
occur due to improper escaping in cdrdao. See:
https://github.com/cdrdao/cdrdao/issues/32

Latin-1:

This new parsing method should work for Latin-1 strings for both old and
new versions of cdrdao, as long as those strings don't trigger the
improper escaping issues in upstream cdrdao.

This has been verified with the album Diorama from the Danish black
metal band MØL.

MS-JIS:

This new parsing method should also work for MS-JIS strings as long as
the .toc file was generated by cdrdao 1.2.5+ and the strings don't
trigger improper escaping issues in upstream cdrdao.

Unfortunately, I don't have any CD with CD-Text in MS-JIS, so I could
not verify this.

cdrdao versions before 1.2.5 will still cause whipper to produce
mojibake (garbled characters) when reading MS-JIS CD-Text, as those
versions do not encode strings in UTF-8.

Other encodings:

As far as I know, CD-Text only supports officially ASCII, Latin-1 and
MS-JIS, but I wouldn't be surprised if there are unofficial encodings
out there, given the strange strings I've seen in some bug reports.

If you have a CD with garbled CD-Text, please submit a bug report
indicating the performer, album name, language and attach the .toc file
so that the produced strings can be compared to the expected text.

Fixes https://github.com/whipper-team/whipper/issues/169

Signed-off-by: Alicia Boya García <ntrrgc@gmail.com>
2024-08-27 12:19:29 +02:00
Merlijn Wajer
a4b97422ea Merge pull request #600 from AndrewKvalheim/string-format
Correct string formatting
2024-04-01 21:05:44 +02:00
Joshua Simpson
098af47231 Save FLAC file after embedding cover art
Signed-off-by: Josh Simpson <107582704+JoshWVS@users.noreply.github.com>
2024-03-25 18:09:44 -04:00
Andrew Kvalheim
2ebe7033e0 Correct string formatting
The input to the RuntimeError constructor is not a format string.
2023-09-26 05:46:33 -07:00
JoeLametta
e0ad242795 Fix flake8 warning
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2022-07-16 16:01:35 +00:00
JoeLametta
1ab1ec982d Merge pull request #562 from arcctgx/accurip-url-strip
Fix stripping AccurateRip URL in accurip command
2022-07-16 17:54:16 +02:00
arcctgx
c47abef5a1 Fix stripping AccurateRip URL in accurip command
Using lstrip() to remove initial part of the URL results in removing too
many characters when AccurateRip identifier has hex digits a, c or e in
the beginning (e.g. e/e/d/dBAR-006-000aadee-003920f8-4d0a3d06.bin
becomes d/dBAR-006-000aadee-003920f8-4d0a3d06.bin).

Signed-off-by: arcctgx <arcctgx@o2.pl>
2022-07-09 21:13:53 +02:00
Bradley Walters
1b13013782 extern.task: replace GLib event loop with asyncio event loop
Signed-off-by: Bradley Walters <oss@walters.app>
2022-05-23 17:59:07 -06:00
Daniel J. Perry
3395c1d753 Make --prompt input case in-sensitive
Signed-off-by: Daniel J. Perry <dperry45@gatech.edu>
2021-08-01 14:29:14 -04:00
Daniel J. Perry
ebdbde4ce9 Less ambiguous prompt selection message
Signed-off-by: Daniel J. Perry <dperry45@gatech.edu>
2021-08-01 14:29:14 -04:00
Daniel J. Perry
31073c67cb Fix bug caused by unescaped globbing
Signed-off-by: Daniel J. Perry <dperry45@gatech.edu>
2021-07-26 01:45:00 -04:00
Martin Weinelt
e0942417a1 Use custom YAML subclass to be compatible with ruamel_yaml>=0.17
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
2021-07-04 16:53:09 +02:00
JoeLametta
042bf8f926 Mark suitable methods as static
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-26 10:35:58 +00:00
JoeLametta
8d6e64f58d Replace mutable default argument with None
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-26 10:35:58 +00:00
JoeLametta
06356fc40f README update, code linting changes
- PEP8 fix
- Remove useless parens
- Docstring fixes
- RegEX: remove unneeded escape character
- accuraterip-checksum: output usage to stderr in case of wrong invocation

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-26 10:35:58 +00:00
JoeLametta
236544dce9 Push whipper release v0.10.0
Fixes #428.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-17 15:40:43 +00:00
JoeLametta
731453ea8d Avoid useless './' in file paths
Replaced useless 'os.path.relpath(os.getcwd())' statement with 'os.curdir' (which is equal to '.').

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 17:19:14 +00:00
JoeLametta
078d3515ab Merge pull request #537 from blueblots/keep-going-err
Fixed error when ripping using `--keep-going` without specifying `--o…
2021-05-16 19:07:24 +02:00
blueblots
4d997bc65b Fixed error when ripping using --keep-going without specifying --output-directory
Added `os.path.basename()` to `skipped_tracks` comparison in
`ImageVerifyTask`. When `OUTPUT_DIRECTORY` is at its default '.'
`./` is prepended to the file path of `index.path`, causing the error.

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-05-16 16:45:35 +01:00
JoeLametta
9d67144087 Add 'TRACKTOTAL', 'DISCTOTAL', 'DISCNUMBER' metatada to audio tracks
Co-authored-by: Máximo Castañeda <antiswen@yahoo.es>
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
1edd3657ba Introduce %M, %N template variables
- %M: total number of discs in the chosen release
- %N: number of current disc

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
76b8004b8f Introduce %T (medium title) template variable
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
e6ad23f119 Introduce %c (release disambiguation comment) template variable
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
bff5c91fa3 Introduce %I (MusicBrainz Disc ID) template variable
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
a97820b578 Add %D (disc title without disambiguation) to allowed template variables
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
e4645dfdd3 Swap 'title' and 'releaseTitle' meaning
- Trasparent change: now it makes more sense.
- Updated tests to reflect 'title', 'releaseTitle' meaning swap.
- Improved documentation.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
e6d9838148 Enable %B (barcode) and %C (catalog number) template variables
Already included but were not allowed.
Improved documentation.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:32:02 +00:00
JoeLametta
0eaf80c4bb Template: replace None values with empty string
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-16 10:28:54 +00:00
JoeLametta
824ab995ab Add logger statement about output directory in cdrdao
Fixes #393.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 18:01:33 +00:00
JoeLametta
dedd38f029 Ignore leading / trailing slashes in template
Fixes #530.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 16:08:58 +00:00
JoeLametta
5040bc9094 Fix stupid syntax error in previous commit
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 11:34:29 +00:00