mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-21 23:32:31 +00:00
Added ability to remove language profiles based on tag values
This commit is contained in:
parent
f1f3850f9e
commit
e5f1528bba
5 changed files with 38 additions and 3 deletions
|
@ -96,6 +96,7 @@ validators = [
|
|||
Validator('general.path_mappings_movie', must_exist=True, default=[], is_type_of=list),
|
||||
Validator('general.serie_tag_enabled', must_exist=True, default=False, is_type_of=bool),
|
||||
Validator('general.movie_tag_enabled', must_exist=True, default=False, is_type_of=bool),
|
||||
Validator('general.remove_profile_tags', must_exist=True, default=[], is_type_of=list, condition=validate_tags),
|
||||
Validator('general.serie_default_enabled', must_exist=True, default=False, is_type_of=bool),
|
||||
Validator('general.serie_default_profile', must_exist=True, default='', is_type_of=(int, str)),
|
||||
Validator('general.movie_default_enabled', must_exist=True, default=False, is_type_of=bool),
|
||||
|
@ -468,6 +469,7 @@ array_keys = ['excluded_tags',
|
|||
'enabled_integrations',
|
||||
'path_mappings',
|
||||
'path_mappings_movie',
|
||||
'remove_profile_tags',
|
||||
'language_equals',
|
||||
'blacklisted_languages',
|
||||
'blacklisted_providers']
|
||||
|
|
|
@ -152,6 +152,10 @@ def movieParser(movie, action, tags_dict, language_profiles, movie_default_profi
|
|||
tag_profile = get_matching_profile(tags, language_profiles)
|
||||
if tag_profile:
|
||||
parsed_movie['profileId'] = tag_profile
|
||||
remove_profile_tags_list = settings.general.remove_profile_tags
|
||||
if len(remove_profile_tags_list) > 0:
|
||||
if set(tags) & set(remove_profile_tags_list):
|
||||
parsed_movie['profileId'] = None
|
||||
|
||||
return parsed_movie
|
||||
|
||||
|
|
|
@ -78,7 +78,11 @@ def seriesParser(show, action, tags_dict, language_profiles, serie_default_profi
|
|||
tag_profile = get_matching_profile(tags, language_profiles)
|
||||
if tag_profile:
|
||||
parsed_series['profileId'] = tag_profile
|
||||
|
||||
remove_profile_tags_list = settings.general.remove_profile_tags
|
||||
if len(remove_profile_tags_list) > 0:
|
||||
if set(tags) & set(remove_profile_tags_list):
|
||||
parsed_series['profileId'] = None
|
||||
|
||||
return parsed_series
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import { FunctionComponent } from "react";
|
||||
import { Text as MantineText } from "@mantine/core";
|
||||
import { useLanguageProfiles, useLanguages } from "@/apis/hooks";
|
||||
import {
|
||||
Check,
|
||||
Chips,
|
||||
CollapseBox,
|
||||
Layout,
|
||||
Message,
|
||||
|
@ -121,12 +123,21 @@ const SettingsLanguagesView: FunctionComponent = () => {
|
|||
Sonarr (or a Movie from Radarr) to find a matching Bazarr language
|
||||
profile tag. It will use as the language profile the FIRST tag from
|
||||
Sonarr/Radarr that matches the tag of a Bazarr language profile
|
||||
EXACTLY. If mutiple tags match, there is no guarantee as to which one
|
||||
EXACTLY. If multiple tags match, there is no guarantee as to which one
|
||||
will be used, so choose your tag names carefully. Also, if you update
|
||||
the tag names in Sonarr/Radarr, Bazarr will detect this and repeat the
|
||||
matching process for the affected shows. However, if a show's only
|
||||
matching tag is removed from Sonarr/Radarr, Bazarr will NOT remove the
|
||||
show's existing language profile, but keep it, as is.
|
||||
show's existing language profile for that reason. But if you wish to
|
||||
have language profiles removed automatically by tag value, simply
|
||||
enter a list of one or more tags in the{" "}
|
||||
<MantineText fw={700} span>
|
||||
Remove Profile Tags
|
||||
</MantineText>{" "}
|
||||
entry list below. If your video tag matches one of the tags in that
|
||||
list, then Bazarr will remove the language profile for that video. If
|
||||
there is a conflict between profile selection and profile removal,
|
||||
then profile removal wins out and is performed.
|
||||
</Message>
|
||||
<Check
|
||||
label="Series"
|
||||
|
@ -136,6 +147,19 @@ const SettingsLanguagesView: FunctionComponent = () => {
|
|||
label="Movies"
|
||||
settingKey="settings-general-movie_tag_enabled"
|
||||
></Check>
|
||||
<Chips
|
||||
label="Remove Profile Tags"
|
||||
settingKey="settings-general-remove_profile_tags"
|
||||
sanitizeFn={(values: string[] | null) =>
|
||||
values?.map((item) =>
|
||||
item.replace(/[^a-z0-9_-]/gi, "").toLowerCase(),
|
||||
)
|
||||
}
|
||||
></Chips>
|
||||
<Message>
|
||||
Enter tag values that will trigger a language profile removal. Leave
|
||||
empty if you don't want Bazarr to remove language profiles.
|
||||
</Message>
|
||||
</Section>
|
||||
<Section header="Default Settings">
|
||||
<Check
|
||||
|
|
1
frontend/src/types/settings.d.ts
vendored
1
frontend/src/types/settings.d.ts
vendored
|
@ -62,6 +62,7 @@ declare namespace Settings {
|
|||
postprocessing_cmd?: string;
|
||||
postprocessing_threshold: number;
|
||||
postprocessing_threshold_movie: number;
|
||||
remove_profile_tags: string[];
|
||||
single_language: boolean;
|
||||
subfolder: string;
|
||||
subfolder_custom?: string;
|
||||
|
|
Loading…
Reference in a new issue