Commit Graph

60 Commits

Author SHA1 Message Date
Laurent Monin
c166041531 Move FILE_INFO_TAGS from class File to module picard.util.tags
It reduces the size of objects, and it doesn't seem we ever needed to change it.
2024-04-02 18:25:33 +02:00
Philipp Wolfer
0332f29e79 Fixed tests for file._info changing the test files
The test was saving before loading, hence having the side effect of
altering file sizes.
2024-01-17 08:48:59 +01:00
Philipp Wolfer
b273b116ca PICARD-2616: Add tests for releasedate tag 2023-05-22 20:46:45 +02:00
Philipp Wolfer
75871991b8 PICARD-2595: Customizable replacement for directory separators 2022-12-06 09:37:45 +01:00
Philipp Wolfer
cb339c6a4a PICARD-356: Allow user defined replacements for Windows incompatible characters 2022-12-05 17:08:56 +01:00
Philipp Wolfer
95c736a13e PICARD-2553: Add option to use underscores instead of spaces in file naming
This collapses multiple whitespace characters and underscores in a filename into a single underscore
2022-12-04 18:07:42 +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
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
Laurent Monin
14ce07756e Update Copyright headers, with the help of fix-headers.py script 2021-11-10 21:38:54 +01:00
Philipp Wolfer
cb6973cf44 Use sets instead of lists in conditionals 2021-10-31 10:17:23 +01:00
Philipp Wolfer
a7f0a27f92 Exclude technical variables like ~length from format supported tags
Those values are taken from technical format information and are not part of the tags. This also fixes ~length getting written to MP4 (PICARD-2314).
2021-10-29 00:11:02 +02:00
Philipp Wolfer
a3ebc1cb22 PICARD-257: Add option to exclude embedded images from clear_existing_tags 2021-06-16 08:52:55 +02:00
Philipp Wolfer
dee1ad5c81 PICARD-1998: Add "director" (for videos) tag
This adds a tag "director" which is filled with the "video director" AR from MB by default.
2021-01-16 15:48:53 +01:00
Philipp Wolfer
c0e6243a13 PICARD-1926: Adjust test cases for new config structure 2020-12-25 12:37:15 +01:00
Philipp Wolfer
df8010cf02 PICARD-1826: Consider .ogg files as generic Ogg container files
Fixes e.g. loading Ogg Opus files with .ogg extension, instead of assuming .ogg is always Ogg Vorbis.
2020-05-24 16:34:38 +02:00
Philipp Wolfer
651bbad60d Merge pull request #1534 from phw/PICARD-1812-riff-info
PICARD-1812: Save RIFF INFO tags for WAVE
2020-05-13 19:11:08 +02:00
Philipp Wolfer
d79d142a04 Refactor picard.formats and picard.coverart.providers to avoid circular dependencies 2020-05-13 17:04:11 +02:00
Philipp Wolfer
1542d4d7c0 PICARD-1812: Option to remove RIFF INFO from WAVE files 2020-05-13 11:08:07 +02:00
Philipp Wolfer
b8644aad3d PICARD-1812: Options for saving RIFF INFO to WAVE 2020-05-13 11:08:07 +02:00
Philipp Wolfer
909ea667b8 Check code style of tests with flake8 2020-05-13 11:03:13 +02:00
Philipp Wolfer
880a3c3443 Added ID3 tests for deleting tags in __rename_freetext 2020-03-06 16:45:32 +01:00
Philipp Wolfer
bb4c417d04 PICARD-1786: Fix ID3 deleting multiple TIPL items with same role
Added tests for deleting TIPL entries from ID3, fixed issue of multiple people with same role not getting removed.
2020-03-06 16:45:25 +01:00
Philipp Wolfer
6e8f4ed5d2 Improve format test coverage 2020-03-06 13:47:38 +01:00
Philipp Wolfer
83be0ae5a3 Added tests for loading unsupported images from tags 2020-03-06 12:46:30 +00:00
Philipp Wolfer
7f6db1bde6 PCIARD-1783: Fixed regex escaping for tag descriptions in Vorbis and APEv2 2020-03-04 07:02:06 +00:00
Philipp Wolfer
57c8fe209a PICARD-1783: Fix deletion of comment, performer and lyrics tags
This adds tests for deleting comment, performer and lyrics tags and fixes various issues with this in ID3, MP4, Vorbis and APEv2.
2020-03-04 07:02:06 +00:00
Laurent Monin
6b5e852a60 Run fix-header on *.py 2020-02-24 10:25:09 +01:00
Laurent Monin
3f25bda3c8 Fix a bunch of flake8 warnings, mostly cosmetic changes 2020-02-21 21:43:40 +01:00
Laurent Monin
0631e5ff28 Move copy_file_tmp() and remove_file_tmp() to PicardTestCase
It helps to reduce code redundancy.
2020-02-08 18:04:39 +01:00
Philipp Wolfer
c52519d91a PICARD-239: Handle tags like "comment" and "comment:" the same
Some of Picard's tag names allow an additional description separated by a colon, e.g. "comment:desc". In case the description part is empty and the tag ends on a colon this is now treated the same as without any colon. So "lyrics" and "lyrics:" are the same tag.

Handling this in Metadata makes this change immediately available in scripting and to all formats. Script using both forms will still work.
2020-01-26 17:07:42 +01:00
Philipp Wolfer
8f745f1a0d PICARD-1711: Fix deleting lyrics tag from ASF, APE, ID3 files 2020-01-23 12:10:15 +01:00
Philipp Wolfer
4d85c2e31f PICARD-1589: Support language for ID3 comments.
Adds syntax "comment:{language}:{description}" in addition to existing "comment:{description}" for comment tag names.
2020-01-23 07:57:41 +01:00
Zenara Daley
30fee6e38f PICARD-1521: Add TOFN to ID3 metadata (#1401)
* Add TOFN to ID3 metadata

Co-authored-by: Andrew Wiggins <xandrewwiggins@gmail.com>
Co-authored-by: Wyll Brimacombe <wyll.brimacombe@gmail.com>
Co-authored-by: Raunaq Gupta <raunaqg10@gmail.com>
Co-authored-by: Matt Ehrler <mehrler12@gmail.com>

* Add internal tag name; check for expected value in test

Co-authored-by: Andrew Wiggins <xandrewwiggins@gmail.com>
Co-authored-by: Wyll Brimacombe <wyll.brimacombe@gmail.com>
Co-authored-by: Raunaq Gupta <raunaqg10@gmail.com>
Co-authored-by: Matt Ehrler <mehrler12@gmail.com>
2019-12-09 23:38:22 +01:00
Philipp Wolfer
0847ee0a35 PICARD-125: Saving tags for AC3 can be configured
Saving APEv2 tags to AC3 can be disabled, existing tags can be removed.
2019-10-28 16:08:11 +01:00
Philipp Wolfer
39843f1f42 PICARD-125: Support AC3 files with APEv2 tags 2019-10-28 15:45:09 +01:00
Philipp Wolfer
ad0c1d88ef PICARD-1628: Make saving APEv2 to AAC optional
Only some software supports APEv2 tags in AAC files, for some software it even causes issues with length calculation or playback. Let the user configure whether to save APEv2 to AAC, not save APEv2 to AAC or completely remove APEv2 from AAC.
2019-10-28 15:38:47 +01:00
Philipp Wolfer
e1688f95ce AAC: Refactored code, moved mutagen specific code to mutagenext 2019-10-28 15:38:47 +01:00
Philipp Wolfer
3352e7e86e PICARD-1643: Fixed saving performer tags to Vorbis and APEv2
Tags in the format of performer:instrument were not saved to Vorbis and APEv2 tags if instrument contained non-ASCII characters.
2019-10-16 18:43:36 +02:00
Philipp Wolfer
b11b07160d Fixed up left-over Python 2 unicode string declarations 2019-09-26 10:58:54 +02:00
Philipp Wolfer
05ffd72884 tests: use assertIn and assertNotIn 2019-09-13 22:09:36 +02:00
Philipp Wolfer
d304e30dc2 PICARD-1594: Set ~video variable on file loading based on extension
This does not give a 100% coverage of detecting files which include video, but at least those files are supposed to be video files.
2019-09-11 08:49:00 +02:00
Philipp Wolfer
103b7315e9 Test unsupported tag is really unsupported 2019-09-08 13:33:19 +02:00
Philipp Wolfer
1f19ee4b94 Increased test coverage of format tests 2019-09-07 17:46:23 +02:00
Philipp Wolfer
feec4cb299 Do not use file as variable name 2019-09-06 10:47:07 +02:00
Philipp Wolfer
c07168f734 PICARD-1586: Preserve case for ReplayGain tags in ID3, MP4, ASF 2019-09-06 10:47:07 +02:00
Philipp Wolfer
9d0e1232c6 PICARD-1586: ReplayGain tags case-insensitive for ASF and MP4 2019-09-06 10:47:07 +02:00
Philipp Wolfer
ec777be2cc PICARD-1586: ReplayGain tags case-insensitive for ID3 2019-09-06 10:47:07 +02:00
Philipp Wolfer
a4990746a7 PICARD-1586: Support R128_* tags only for Opus
Test other formats for not supporting it.
2019-09-06 10:47:07 +02:00
Philipp Wolfer
5b53af16df PICARD-1586: Added basic tag mapping for ReplayGain tags 2019-09-06 10:47:07 +02:00