mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 08:26:00 +01:00
Include stash-ids when creating objects from scrape dialog (#6269)
* Filter out empty aliases
This commit is contained in:
parent
957c4fe1b5
commit
d743787bb3
4 changed files with 65 additions and 10 deletions
|
|
@ -133,7 +133,8 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
|||
|
||||
const { tags, newTags, scrapedTagsRow } = useScrapedTags(
|
||||
sceneTags,
|
||||
scraped.tags
|
||||
scraped.tags,
|
||||
endpoint
|
||||
);
|
||||
|
||||
const [details, setDetails] = useState<ScrapeResult<string>>(
|
||||
|
|
@ -148,6 +149,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
|||
scrapeResult: studio,
|
||||
setScrapeResult: setStudio,
|
||||
setNewObject: setNewStudio,
|
||||
endpoint,
|
||||
});
|
||||
|
||||
const createNewPerformer = useCreateScrapedPerformer({
|
||||
|
|
@ -155,6 +157,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
|||
setScrapeResult: setPerformers,
|
||||
newObjects: newPerformers,
|
||||
setNewObjects: setNewPerformers,
|
||||
endpoint,
|
||||
});
|
||||
|
||||
const createNewGroup = useCreateScrapedGroup({
|
||||
|
|
@ -162,6 +165,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
|||
setScrapeResult: setGroups,
|
||||
newObjects: newGroups,
|
||||
setNewObjects: setNewGroups,
|
||||
endpoint,
|
||||
});
|
||||
|
||||
const intl = useIntl();
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ interface IUseCreateNewStudioProps {
|
|||
scrapeResult: ObjectScrapeResult<GQL.ScrapedStudio>
|
||||
) => void;
|
||||
setNewObject: (newObject: GQL.ScrapedStudio | undefined) => void;
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
export function useCreateScrapedStudio(props: IUseCreateNewStudioProps) {
|
||||
|
|
@ -54,12 +55,33 @@ export function useCreateScrapedStudio(props: IUseCreateNewStudioProps) {
|
|||
const { scrapeResult, setScrapeResult, setNewObject } = props;
|
||||
|
||||
async function createNewStudio(toCreate: GQL.ScrapedStudio) {
|
||||
const input: GQL.StudioCreateInput = {
|
||||
name: toCreate.name,
|
||||
urls: toCreate.urls,
|
||||
aliases:
|
||||
toCreate.aliases
|
||||
?.split(",")
|
||||
.map((a) => a.trim())
|
||||
.filter((a) => a) || [],
|
||||
details: toCreate.details,
|
||||
image: toCreate.image,
|
||||
tag_ids: (toCreate.tags ?? [])
|
||||
.filter((t) => t.stored_id)
|
||||
.map((t) => t.stored_id!),
|
||||
};
|
||||
|
||||
if (props.endpoint && toCreate.remote_site_id) {
|
||||
input.stash_ids = [
|
||||
{
|
||||
endpoint: props.endpoint,
|
||||
stash_id: toCreate.remote_site_id,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
const result = await createStudio({
|
||||
variables: {
|
||||
input: {
|
||||
name: toCreate.name,
|
||||
url: toCreate.url,
|
||||
},
|
||||
input,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
@ -81,6 +103,7 @@ interface IUseCreateNewObjectProps<T> {
|
|||
setScrapeResult: (scrapeResult: ScrapeResult<T[]>) => void;
|
||||
newObjects: T[];
|
||||
setNewObjects: (newObject: T[]) => void;
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
export function useCreateScrapedPerformer(
|
||||
|
|
@ -91,7 +114,7 @@ export function useCreateScrapedPerformer(
|
|||
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
||||
|
||||
async function createNewPerformer(toCreate: GQL.ScrapedPerformer) {
|
||||
const input = scrapedPerformerToCreateInput(toCreate);
|
||||
const input = scrapedPerformerToCreateInput(toCreate, props.endpoint);
|
||||
|
||||
const result = await createPerformer({
|
||||
variables: { input },
|
||||
|
|
@ -168,7 +191,18 @@ export function useCreateScrapedTag(
|
|||
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
||||
|
||||
async function createNewTag(toCreate: GQL.ScrapedTag) {
|
||||
const input: GQL.TagCreateInput = { name: toCreate.name ?? "" };
|
||||
const input: GQL.TagCreateInput = {
|
||||
name: toCreate.name ?? "",
|
||||
};
|
||||
|
||||
if (props.endpoint && toCreate.remote_site_id) {
|
||||
input.stash_ids = [
|
||||
{
|
||||
endpoint: props.endpoint,
|
||||
stash_id: toCreate.remote_site_id,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
const result = await createTag({
|
||||
variables: { input },
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ import { ScrapedTagsRow } from "./ScrapedObjectsRow";
|
|||
|
||||
export function useScrapedTags(
|
||||
existingTags: Tag[],
|
||||
scrapedTags?: GQL.Maybe<GQL.ScrapedTag[]>
|
||||
scrapedTags?: GQL.Maybe<GQL.ScrapedTag[]>,
|
||||
endpoint?: string
|
||||
) {
|
||||
const intl = useIntl();
|
||||
const [tags, setTags] = useState<ObjectListScrapeResult<GQL.ScrapedTag>>(
|
||||
|
|
@ -33,6 +34,7 @@ export function useScrapedTags(
|
|||
setScrapeResult: setTags,
|
||||
newObjects: newTags,
|
||||
setNewObjects: setNewTags,
|
||||
endpoint,
|
||||
});
|
||||
|
||||
const scrapedTagsRow = (
|
||||
|
|
|
|||
|
|
@ -84,9 +84,14 @@ export function sortPerformers<T extends IPerformerFragment>(performers: T[]) {
|
|||
}
|
||||
|
||||
export const scrapedPerformerToCreateInput = (
|
||||
toCreate: GQL.ScrapedPerformer
|
||||
toCreate: GQL.ScrapedPerformer,
|
||||
endpoint?: string
|
||||
) => {
|
||||
const aliases = toCreate.aliases?.split(",").map((a) => a.trim());
|
||||
const aliases =
|
||||
toCreate.aliases
|
||||
?.split(",")
|
||||
.map((a) => a.trim())
|
||||
.filter((a) => a) || [];
|
||||
|
||||
const input: GQL.PerformerCreateInput = {
|
||||
name: toCreate.name ?? "",
|
||||
|
|
@ -118,5 +123,15 @@ export const scrapedPerformerToCreateInput = (
|
|||
: undefined,
|
||||
circumcised: stringToCircumcised(toCreate.circumcised),
|
||||
};
|
||||
|
||||
if (endpoint && toCreate.remote_site_id) {
|
||||
input.stash_ids = [
|
||||
{
|
||||
endpoint,
|
||||
stash_id: toCreate.remote_site_id,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return input;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue