Commit Graph

956 Commits

Author SHA1 Message Date
Philipp Wolfer
aaee5e4f37 PICARD-993: Have different error icons for different file errors
Separate icons for file not found, access denied and anything else
2022-03-12 10:28:42 +01:00
Philipp Wolfer
0ff523db9d PICARD-2076: Added tests for picard.util.system_supports_long_paths 2022-03-08 15:21:00 +01:00
Philipp Wolfer
718875177b PICARD-2076: Use Windows long path prefix only, if long paths are unsupported 2022-03-08 14:00:24 +01:00
Philipp Wolfer
5037ce9935 PICARD-2076: Allow ignoring the Windows filepath limit when renaming files 2022-03-08 14:00:24 +01:00
Philipp Wolfer
c04f143274 PICARD-1570: Allow loading files with long paths on Windows 2022-03-07 11:18:49 +01:00
Philipp Wolfer
e1c6234dd7 Have find_best_match and sort_by_similarity accept any iterable 2022-02-17 08:18:26 +01:00
Philipp Wolfer
f6d3990a05 PICARD-2422: Added config upgrade for cleaning toolbar_layout 2022-02-16 18:16:47 +01:00
Philipp Wolfer
aeb1a7d5a8 PICARD-2422: Remove all AcousticBrainz extraction and submission code 2022-02-16 18:16:46 +01:00
Philipp Wolfer
e9c6df2d3e Implement __bool__ and __repr__ for AcoustID Submission
Implementing __bool__ avoids checks like "if submission" to use __len__.
2022-02-14 09:55:40 +01:00
Philipp Wolfer
88e7766e5e Added test for AcoustID Submission.args without MBID 2022-02-14 08:38:43 +01:00
Philipp Wolfer
f20e47ae77 PICARD-2411: Remove Flac seektable if it has no seekpoints
A missing seektable is valid. Removing an otherwise empty seektable fixes the issues with software that cannot handle empty seektables.

Fully reconstructing a seek table would require decoding the Flac data.
2022-02-11 15:01:51 +01:00
Philipp Wolfer
f94c725f50 PICARD-2411: Flac seektable tests 2022-02-11 15:01:51 +01:00
Philipp Wolfer
8b8593b546 PICARD-2414: Added some additional tests for tracknum_and_title_from_filename
Test some more real world examples and ignore cases like UB40 where a no. follows directly on alphanumeric characters.
2022-02-11 11:01:33 +01:00
Laurent Monin
2f6479747d Update headers 2022-02-07 09:41:57 +01:00
Marcin Szalowicz
fa2e443021 Add option to fix seektable for flac files
This is to fix problem with Kodi which is unable to load files
that have empty SeekTable, so by default a single SeekPoint is added.
An error message is logged if the file has no samples.
2022-02-05 17:51:00 +01:00
Laurent Monin
203933ff9f Add few tests for translate_artist_names_script_exception 2022-02-03 10:31:54 +01:00
Philipp Wolfer
9e740c11a4 Omit standard ports in URLs constructed by build_qurl 2022-01-31 07:49:21 +01:00
Philipp Wolfer
803055a9f9 PICARD-2410: Implement parsing Whipper ripping log files 2022-01-30 15:34:17 +01:00
Philipp Wolfer
3ae6706b05 Moved calculate_mb_toc_numbers to picard.disc.utils 2022-01-30 15:34:17 +01:00
Philipp Wolfer
eeed3adb4d Test all methods in FileLookup 2022-01-28 08:16:45 +01:00
Philipp Wolfer
d89c14d3ea Support all MB entity URLs in FileLookup 2022-01-28 08:16:44 +01:00
Philipp Wolfer
97a272bd3a Added tests for FileLookup.mbid_lookup 2022-01-28 08:16:44 +01:00
Philipp Wolfer
17b8c9b6ac PICARD-2409: Search for cdtoc URL triggers CD lookup 2022-01-27 09:21:26 +01:00
Laurent Monin
0761263c4d Use tuples instead of lists, since those aren't to be modified 2022-01-25 12:53:56 +01:00
Philipp Wolfer
6f9c70951d Moved old disc module and eaclog to disc package
Avoids name conflict and confusion of picard.discid with the discid pip package.
2022-01-25 08:38:15 +01:00
Philipp Wolfer
97d01b99df PICARD-1455: Allow disc lookup from EAC / XLD log file 2022-01-25 08:38:14 +01:00
Laurent Monin
416f09c451 Merge pull request #2046 from phw/PICARD-2292-recording-mixed-instrumental-works
PICARD-2292:  Fix setting "no lyrics" for recording with mixed instrumental works
2022-01-24 18:21:47 +01:00
Philipp Wolfer
e119ef5d93 Convert AcoustID Submission.args to property 2022-01-23 18:13:10 +01:00
Philipp Wolfer
59ffd90f88 PICARD-2292: Fix detecting instrumnetal for multi-work recordings
A recording with multiple works should only get the language set to "no lyrics" if all performances are instrumental
2022-01-23 18:04:18 +01:00
Philipp Wolfer
62da04f831 PICARD-2396: Adjust AcoustID payload size calculation
Needs to be adjusted to accomodate the potential larger payload if metadata gets submitted
2022-01-22 17:10:12 +01:00
Philipp Wolfer
1464838fc0 PICARD-2396: Add AcoustID Submission.get_args 2022-01-22 17:10:12 +01:00
Philipp Wolfer
574e7a90c1 PICARD-2396: Submit metadata to AcoustID on duration mismatch
If a file's duration does clearly not match the MB recording duration allow AcoustID submission anyway. But instead of submitting the recording MBID submit only the metadata.

This prevents clear mismatches while still allowing fingerprint submission. The submitted metadata can give a hint on the recording.
2022-01-22 17:10:11 +01:00
Philipp Wolfer
11d71bcc8c PICARD-2396: Don't submit AcoustID on large duration difference
If the difference between the file's and the recording's duration exceeds a threshold, do not submit this pair to AcoustID.
2022-01-20 22:55:15 +01:00
Philipp Wolfer
5b58e15cfc Merge pull request #2029 from rdswift/allow_empty_strings_in_multi-value
PICARD-2392: Allow empty strings in multi-value variables
2022-01-20 08:18:43 +01:00
Bob Swift
b804208123 Make 'end' argument optional for $substr() function 2022-01-20 08:18:16 +01:00
Philipp Wolfer
0983c9531d Set log level in tests to DEBUG
This allows pytest to capture the log output and display it in context of the test.d
2022-01-19 08:11:33 +01:00
Philipp Wolfer
0bf99949c4 Merge pull request #2003 from phw/PICARD-2368-compare-medium-track-count
PICARD-2368: When comparing metadata to a release consider the actual medium track count
2022-01-16 11:32:15 +01:00
Philipp Wolfer
c5662606cc PICARD-2332: Use PyQt5 scoped enums
This will ease the transition to Qt6
2022-01-14 18:28:01 +01:00
Bob Swift
975dfdffa9 PICARD-2382: Add option to keep duplicates in $copymerge() function. (#2020) 2022-01-14 07:58:35 +01:00
Bob Swift
c1cbb17a76 PICARD-2349: Standardize on "Standalone recordings" rather than "Non-album tracks" 2022-01-14 07:55:49 +01:00
Bob Swift
d0f512f79f Additional tests to ensure that changes don't break other functions 2022-01-07 09:30:58 -07:00
Bob Swift
49c6c0f2ec Remove underscore from clean_multi for consistency with other functions 2022-01-07 08:56:45 -07:00
Bob Swift
63fa1633f1 Allow empty strings in multi-value variables
- Keep empty strings in multi-value lists
- Add scripting function to remove empty strings from multi-value
- Update tests
2022-01-06 10:43:47 -07:00
Laurent Monin
53ec0e066f Add test for = encoding
Suggested by phw
2022-01-06 16:07:50 +01:00
Laurent Monin
8b787482ff _query_data(): Use urllib.parse.urlencode() instead of QUrl/QUrlQuery
Note: previously spaces weren't encoded, with this change they are (as plus) which is more conform to expected format for application/x-www-form-urlencoded
Actually this was a bug in previous version, as addQueryItem() didn't encode spaces as they should
See https://doc.qt.io/qt-5/qurlquery.html#addQueryItem
"This method does not treat spaces (ASCII 0x20) and plus ("+") signs as the same, like HTML forms do. If you need spaces to be represented as plus signs, use actual plus signs."

It wasn't an issue because none of passed data should contain spaces in our current code
2022-01-06 14:41:09 +01:00
Laurent Monin
d1de2a7208 _query_data(): skip empty key and add a test 2022-01-06 14:16:11 +01:00
Laurent Monin
820551d513 Move FILE_INFO_TAGS to File class and reduce code redundancy
- add a test for File._copy_file_info_tags()
2022-01-04 12:00:19 +01:00
Philipp Wolfer
1e9c61fcfb Ensure rating submission XML is valid
Properly encode provided data
2022-01-02 17:29:34 +01:00
Laurent Monin
728b110bac Get rid of _static_encode_acoustid_args()
- modify _encode_acoustid_args() accordingly
- modify tests to reflect changes
2021-12-28 19:23:04 +01:00
Laurent Monin
c6044fbdf5 Rework AcoustIdAPIHelper and add few tests 2021-12-28 15:10:00 +01:00