Commit graph

103 commits

Author SHA1 Message Date
Henry Oberholtzer
f7b05cb7db ftintitle: fix changelog conflict 2026-01-08 12:20:25 -08:00
Trey Turner
b14755df88 fix(ftintitle): remaining opportunities for improvement 2026-01-01 15:39:17 -06:00
Trey Turner
c0c7a9df8f fix: line length 2025-12-20 02:34:15 -06:00
Trey Turner
87a61fa8fa Merge branch 'master' into feat/ftintitle/insert_featured_artist_before_variant_clauses 2025-12-20 02:32:06 -06:00
Trey Turner
00792922b5 fix: address remaining review comments 2025-12-20 02:19:54 -06:00
Trey Turner
ef40d1ac53 fix: revert needless whitespace change 2025-12-14 18:19:38 -06:00
Trey Turner
84d37b820a fix: inline default bracket_keywords instead of defining/cloning constant 2025-12-14 18:15:08 -06:00
Matthew Kay
9ba3e12e8f Fix ftintitle plugin to prioritize explicit featuring tokens
- Prioritize explicit featuring tokens (feat, ft, featuring) over generic
  separators (&, and) when splitting artist names
- Prevents incorrect splits like 'Alice & Bob feat Charlie' from splitting
  on '&' instead of 'feat'
- Add test cases to verify the fix
2025-12-10 20:52:37 +00:00
asardaes
9c37f94171 Add album template value in ftintitle plugin 2025-11-21 18:31:59 +01:00
Trey Turner
3051af9eb6 fix: abstract insert_ft_into_title, move bracket_keywords and find_bracket_position inside plugin 2025-11-17 13:04:31 -06:00
Trey Turner
50e55f85f4 fix(ftintitle): prune find_bracket_position docstring 2025-11-17 13:04:31 -06:00
Trey Turner
2aa949e5a0 fix(fitintitle): simplify keyword_pattern using map() instead of list comprehension 2025-11-17 13:04:31 -06:00
Trey Turner
3dd3bf5640 fix: address sourcery comments 2025-11-17 13:04:31 -06:00
Trey Turner
62e1a41ff2 chore(ftintitle): add 'edition' to keyword defaults 2025-11-17 13:04:31 -06:00
Trey Turner
1d239d6e27 feat(ftintitle): Insert featured artist before track variant 2025-11-17 13:04:31 -06:00
Jacob Danell
027b775fcd Change arg name 2025-10-20 15:22:27 +02:00
Ember Light
472aa12767 Add main functionality 2025-10-16 18:49:14 +02:00
Ember Light
b95a17d8d3 remove feat from custom_feat_words 2025-10-12 22:40:27 +02:00
Ember Light
51c971f089 Fix sourcery-ai comments 2025-10-12 21:38:13 +02:00
Ember Light
37a5f9cb15 Add custom feat words 2025-10-12 20:47:51 +02:00
Trey Turner
f0a6059685 feat(FtInTitle): support tracks by artists != album artist 2025-09-21 22:27:11 +01:00
Šarūnas Nejus
b3d434f58f
Delegate attribute access to logging 2025-08-30 23:10:21 +01:00
Šarūnas Nejus
e334e81d40
Use item.filepath instead of displayable_path in logging 2025-08-30 23:10:21 +01:00
Šarūnas Nejus
d93ddf8dd4
Do not use explicit indices for logging args when not needed 2025-08-30 23:10:21 +01:00
Šarūnas Nejus
7cada1c9f8
Remove no-op decargs 2025-07-08 11:37:33 +01:00
wisp3rwind
b495286127 ftintitle: flatten code
linear code with early exits instead of more complicated nested
conditionals
2025-04-14 20:50:01 +02:00
wisp3rwind
8413de1a85 ftintitle: add typings 2025-04-14 20:42:59 +02:00
Peter Dolan
447cc82e04
Do not write unchanged items to the library in FtInTitle (#5718)
FtInTitle performs a library store operation for every item it
processes, whether or not the item has changed. By limiting the
`item.store()` call to only those cases when the item has changed, the
plugin’s performance when processing an entire library improves by two
to three orders of magnitude.
2025-04-14 18:22:41 +00:00
Karl Besser
ed627c031c Hardcode for_artist keyword in ftintitle plugin
Remove the optional `for_artist` keyword in the
`ftintitle.contains_feat` function and hardcode it to False, since it is
always used like this in the ftintitle plugin.
2024-09-30 10:24:09 -05:00
Karl Besser
c66eb10445 Fix false positives in "feat. X" detection in ftintitle
The old version of the `ftintitle.contains_feat` function could lead to
false positives by matching words like "and" and "with" in the title,
even if there was no "feat. X" part.
With this commit, the `for_artist` keyword is explicitly passed to the
`plugins.feat_tokens` function to disable these matches when matching a
title (and not an artist).
2024-09-26 17:20:12 -04:00
Šarūnas Nejus
85a17ee503
Reformat the codebase 2024-09-21 11:57:48 +01:00
Karl Besser
218cda0401 Fix missing keep_in_artist option in ftintitle
The newly introduced option to keep the feat. artist in the artist field
when importing with the ftintitle plugin was not passed in one function.
2024-09-20 20:47:10 -04:00
Karl Besser
15d652dbae Update log message for keeping artist in ftintitle
Update the log message when the artist is kept unchanged due to setting
the keep_in_artist option to true.
2024-09-05 12:28:51 +02:00
Karl Besser
c046dc3976 Add new keep_in_artist option for ftintitle plugin
The new keep_in_artist option allows keeping the feat. part in the
artist metadata field while still changing the title.
2024-07-09 23:49:20 -04:00
Serene-Arc
a6e5201ff3 Apply formatting tools to all files
This is 'the big one', which touches every file so that it all conforms
to the given standard.
2023-10-22 09:53:18 +10:00
Andrew Rogl
1ec87a3bdd pyupgrade beetsplug and tests
All tests working
More tidy up to be done
2021-08-26 19:12:51 +10:00
Adrian Sampson
a6be28a65e Fix #2817: drop in configuration was ignored
This was overridden by the default CLI option. Now the default for the
config option is None, meaning no change to the config.
2018-02-23 18:18:32 -05:00
Adrian Sampson
fae8fcc932 ftintitle: Clarify indexing
This can only be a two-element array, so just use the index 1. This matches
better with the comments, that say "right-hand side" instead of "the last
value in the list."
2017-04-19 19:08:15 -04:00
Adrian Sampson
9d42728f7f ftintitle: Clarify control flow
Assigning to this variable made it hard to tell what the function was actually
returning.
2017-04-19 19:07:29 -04:00
Adrian Sampson
5efd5b21c5 Use new as_str method
Instead of `get(six.text_type)`, which was a surprisingly large portion of our
uses of six.
2016-06-25 19:16:14 -07:00
Johnny Robeson
e8afcbe7ec replace unicode with six.text_type 2016-06-24 05:53:49 -04:00
Adrian Sampson
e54c7eec3d Standardize __future__ imports without parentheses
Since the list is short enough now, we don't need parentheses for the line
wrap. This is a little less ugly.
2016-02-28 15:03:51 -08:00
Peter Kessen
7d00ab3b50 Removed unicode_literals from plugins
* fetchart
* freedesktop
* fromfilename
* ftintitle
2016-02-20 13:44:45 +01:00
Jack Wilsdon
12cd5306b7 Update copyright dates to 2016 2015-12-30 15:42:06 +00:00
Peter Kessen
3eb8008b11 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files with correct license in header
2015-11-19 18:41:01 +01:00
Adrian Sampson
9f7aa866bd Use ui.should_write everywhere
There sure are a lot of plugins that want to write metadata!
2015-11-07 13:20:09 -08:00
Adrian Sampson
90178ab380 Always log a template literal (fix #1481)
Otherwise, we risk the user-provided string looking like a format string! If
it contains curly braces, it can behave unexpectedly.
2015-05-28 23:44:41 -04:00
Amish Bhadeshia
9a38b07ed4 Housekeeping and styling changes 2015-03-28 11:20:28 +00:00
Amish Bhadeshia
6365a9b538 Added indice into curly brackets, for py26 compatabiity 2015-03-27 20:54:42 +00:00
Amish Bhadeshia
232ff05766 Added tests and simplified implementation method 2015-03-27 17:59:35 +00:00