Commit Graph

319 Commits

Author SHA1 Message Date
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
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
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
Merlijn Wajer
bc8b96d956 Merge pull request #549 from BioBox/prompt
Better --prompt Handling
2025-04-03 23:20:52 +02: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
JoeLametta
6577b7f262 Hopefully fix test failures introduced with previous commit
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 11:25:41 +00:00
JoeLametta
7e30e7c952 Apply PathFilter's filters to all the template's components
Fixes #513.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 10:33:38 +00:00
JoeLametta
1e33bc62ed Make PathFilter's filter tolerant to empty strings
Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-05-14 10:31:53 +00:00
JoeLametta
84e4ef6ab8 offset find: fail early and inform the user with CDs having less than 3 tracks
Fixes #532

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-03-31 10:07:39 +00:00
JoeLametta
c97f2ce547 Add warning about missing files referenced in the cue sheet
This happens when a track fails to be ripped and gets skipped.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-03-28 16:13:39 +00:00
blueblots
6505591462 Fixed m3u and cue sheet generation
Added conditional to `program.write_m3u()` to
ignore skipped tracks.

Added skipped_tracks support to the `Program` and
`image.ImageVerifyTask` classes to avoid crashing
when a file for a skipped track doesn't exist.

Added conditional to `accurip.calculate_checksums`
to check if a path exists before trying to calculate
checksums, this prevents `accuraterip-checksum.c` from
emitting an error message (`sf_open failed!`) when a
path doesn't exist (as when a track is skipped).

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-03-28 16:10:37 +00:00
blueblots
13e1ab6c14 Changed logging strings, removed unnecessary return
Removed `return None` from the `Rip.doCommand` method
as suggested in review comments.

Changed logging strings to use logger arguments rather
than printf-string, as suggested in review comments.

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-03-28 16:10:37 +00:00
blueblots
9f36d323bb Added non-zero exit, altered logger format strings
Added an exit status of 5 when tracks are skipped
during a rip attempt.

Fixed a TypeError caused by a syntax error in the
format string on line 537 in `whipper/command/cd.py`.

Changed f-string to printf-style format string
on line 493 in `whipper/command/cd.py`.

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-03-28 16:10:37 +00:00
blueblots
ae596df834 Fixed error and added log output
Made changes to fix `KeyError` and implemented logging
of skipped tracks. For instance:

if any tracks are skipped, the log will show:
`Health status: Some tracks were not ripped (skipped)`.

the tracks that are skipped will show:
`Status: Track not ripped (skipped)`.

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-03-28 16:10:37 +00:00
blueblots
311cc557ff Added --keep-going option to cd rip command
Implemented the option (`-k`, `--keep-going`) to continue ripping
the CD even if one track fails to rip (as @xmixahlx suggested in #128).

Requested in #128
Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>

Changed line-lengths/indentation of some code

Travis-CI was failing on account of lines being
under-indented or too long, this should correct it.

Signed-off-by: blueblots <63152708+blueblots@users.noreply.github.com>
2021-03-28 16:10:26 +00:00
JoeLametta
87f3d00ee3 Add missing information to manpages
Also:
- Updated description of command 'mblookup'
- Misc text changes

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2021-02-14 21:56:54 +00:00
Peter Taylor
4fb9d99ddd Add missing 'Album Artist' tag when its value is 'Various Artists'
Fixes #518.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2020-12-25 14:30:00 +00:00
JoeLametta
c229c01a58 Replace 'freedb.dbpoweramp.com' CDDB server with gnudb.org
It seems gnudb.org allows submissions too while 'freedb.dbpoweramp.com' is read only.

Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
2020-11-28 17:44:21 +00:00