From 28b092885c83d8a9aee279c30f51c9cd3996f2e4 Mon Sep 17 00:00:00 2001 From: gitgiggety <79809426+gitgiggety@users.noreply.github.com> Date: Tue, 24 Aug 2021 04:14:37 +0200 Subject: [PATCH] Add option to filename parser to skip organized scenes (#1665) Fixes #1219 --- graphql/schema/types/scene.graphql | 3 ++- pkg/manager/filename_parser.go | 5 +++++ .../SceneFilenameParser/ParserInput.tsx | 19 +++++++++++++++++++ .../SceneFilenameParser.tsx | 2 ++ ui/v2.5/src/locales/en-GB.json | 1 + ui/v2.5/src/locales/en-US.json | 7 ++++++- 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/graphql/schema/types/scene.graphql b/graphql/schema/types/scene.graphql index a1ec113d7..734b5f596 100644 --- a/graphql/schema/types/scene.graphql +++ b/graphql/schema/types/scene.graphql @@ -125,7 +125,8 @@ type FindScenesResultType { input SceneParserInput { ignoreWords: [String!], whitespaceCharacters: String, - capitalizeTitle: Boolean + capitalizeTitle: Boolean, + ignoreOrganized: Boolean } type SceneMovieID { diff --git a/pkg/manager/filename_parser.go b/pkg/manager/filename_parser.go index 5be8ed178..991261941 100644 --- a/pkg/manager/filename_parser.go +++ b/pkg/manager/filename_parser.go @@ -484,6 +484,11 @@ func (p *SceneFilenameParser) Parse(repo models.ReaderRepository) ([]*models.Sce }, } + if p.ParserInput.IgnoreOrganized != nil && *p.ParserInput.IgnoreOrganized { + organized := false + sceneFilter.Organized = &organized + } + p.Filter.Q = nil scenes, total, err := repo.Scene().Query(sceneFilter, p.Filter) diff --git a/ui/v2.5/src/components/SceneFilenameParser/ParserInput.tsx b/ui/v2.5/src/components/SceneFilenameParser/ParserInput.tsx index 7e613ac94..a04bc20fa 100644 --- a/ui/v2.5/src/components/SceneFilenameParser/ParserInput.tsx +++ b/ui/v2.5/src/components/SceneFilenameParser/ParserInput.tsx @@ -63,6 +63,7 @@ export interface IParserInput { page: number; pageSize: number; findClicked: boolean; + ignoreOrganized: boolean; } interface IParserRecipe { @@ -95,6 +96,9 @@ export const ParserInput: React.FC = ( const [capitalizeTitle, setCapitalizeTitle] = useState( props.input.capitalizeTitle ); + const [ignoreOrganized, setIgnoreOrganized] = useState( + props.input.ignoreOrganized + ); function onFind() { props.onFind({ @@ -105,6 +109,7 @@ export const ParserInput: React.FC = ( page: 1, pageSize: props.input.pageSize, findClicked: props.input.findClicked, + ignoreOrganized, }); } @@ -226,6 +231,20 @@ export const ParserInput: React.FC = ( })} + + setIgnoreOrganized(!ignoreOrganized)} + /> + + {intl.formatMessage({ + id: "config.tools.scene_filename_parser.ignore_organized", + })} + + {/* TODO - mapping stuff will go here */} diff --git a/ui/v2.5/src/components/SceneFilenameParser/SceneFilenameParser.tsx b/ui/v2.5/src/components/SceneFilenameParser/SceneFilenameParser.tsx index 402056bcf..f58dc0970 100644 --- a/ui/v2.5/src/components/SceneFilenameParser/SceneFilenameParser.tsx +++ b/ui/v2.5/src/components/SceneFilenameParser/SceneFilenameParser.tsx @@ -24,6 +24,7 @@ const initialParserInput = { page: 1, pageSize: 20, findClicked: false, + ignoreOrganized: true, }; const initialShowFieldsState = new Map([ @@ -127,6 +128,7 @@ export const SceneFilenameParser: React.FC = () => { ignoreWords: parserInput.ignoreWords, whitespaceCharacters: parserInput.whitespaceCharacters, capitalizeTitle: parserInput.capitalizeTitle, + ignoreOrganized: parserInput.ignoreOrganized, }; queryParseSceneFilenames(parserFilter, parserInputData) diff --git a/ui/v2.5/src/locales/en-GB.json b/ui/v2.5/src/locales/en-GB.json index 70bbc37aa..dfa998624 100644 --- a/ui/v2.5/src/locales/en-GB.json +++ b/ui/v2.5/src/locales/en-GB.json @@ -295,6 +295,7 @@ "escape_chars": "Use \\ to escape literal characters", "filename": "Filename", "filename_pattern": "Filename Pattern", + "ignore_organized": "Ignore organised scenes", "ignored_words": "Ignored words", "matches_with": "Matches with {i}", "select_parser_recipe": "Select Parser Recipe", diff --git a/ui/v2.5/src/locales/en-US.json b/ui/v2.5/src/locales/en-US.json index 102a069c8..ecc49e3dd 100644 --- a/ui/v2.5/src/locales/en-US.json +++ b/ui/v2.5/src/locales/en-US.json @@ -2,5 +2,10 @@ "eye_color": "Eye Color", "favourite": "Favorite", "hair_color": "Hair Color", - "organized": "Organized" + "organized": "Organized", + "tools": { + "scene_filename_parser": { + "ignore_organized": "Ignore organized scenes" + } + } }