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(
|
const { tags, newTags, scrapedTagsRow } = useScrapedTags(
|
||||||
sceneTags,
|
sceneTags,
|
||||||
scraped.tags
|
scraped.tags,
|
||||||
|
endpoint
|
||||||
);
|
);
|
||||||
|
|
||||||
const [details, setDetails] = useState<ScrapeResult<string>>(
|
const [details, setDetails] = useState<ScrapeResult<string>>(
|
||||||
|
|
@ -148,6 +149,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
||||||
scrapeResult: studio,
|
scrapeResult: studio,
|
||||||
setScrapeResult: setStudio,
|
setScrapeResult: setStudio,
|
||||||
setNewObject: setNewStudio,
|
setNewObject: setNewStudio,
|
||||||
|
endpoint,
|
||||||
});
|
});
|
||||||
|
|
||||||
const createNewPerformer = useCreateScrapedPerformer({
|
const createNewPerformer = useCreateScrapedPerformer({
|
||||||
|
|
@ -155,6 +157,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
||||||
setScrapeResult: setPerformers,
|
setScrapeResult: setPerformers,
|
||||||
newObjects: newPerformers,
|
newObjects: newPerformers,
|
||||||
setNewObjects: setNewPerformers,
|
setNewObjects: setNewPerformers,
|
||||||
|
endpoint,
|
||||||
});
|
});
|
||||||
|
|
||||||
const createNewGroup = useCreateScrapedGroup({
|
const createNewGroup = useCreateScrapedGroup({
|
||||||
|
|
@ -162,6 +165,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = ({
|
||||||
setScrapeResult: setGroups,
|
setScrapeResult: setGroups,
|
||||||
newObjects: newGroups,
|
newObjects: newGroups,
|
||||||
setNewObjects: setNewGroups,
|
setNewObjects: setNewGroups,
|
||||||
|
endpoint,
|
||||||
});
|
});
|
||||||
|
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ interface IUseCreateNewStudioProps {
|
||||||
scrapeResult: ObjectScrapeResult<GQL.ScrapedStudio>
|
scrapeResult: ObjectScrapeResult<GQL.ScrapedStudio>
|
||||||
) => void;
|
) => void;
|
||||||
setNewObject: (newObject: GQL.ScrapedStudio | undefined) => void;
|
setNewObject: (newObject: GQL.ScrapedStudio | undefined) => void;
|
||||||
|
endpoint?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useCreateScrapedStudio(props: IUseCreateNewStudioProps) {
|
export function useCreateScrapedStudio(props: IUseCreateNewStudioProps) {
|
||||||
|
|
@ -54,12 +55,33 @@ export function useCreateScrapedStudio(props: IUseCreateNewStudioProps) {
|
||||||
const { scrapeResult, setScrapeResult, setNewObject } = props;
|
const { scrapeResult, setScrapeResult, setNewObject } = props;
|
||||||
|
|
||||||
async function createNewStudio(toCreate: GQL.ScrapedStudio) {
|
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({
|
const result = await createStudio({
|
||||||
variables: {
|
variables: {
|
||||||
input: {
|
input,
|
||||||
name: toCreate.name,
|
|
||||||
url: toCreate.url,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -81,6 +103,7 @@ interface IUseCreateNewObjectProps<T> {
|
||||||
setScrapeResult: (scrapeResult: ScrapeResult<T[]>) => void;
|
setScrapeResult: (scrapeResult: ScrapeResult<T[]>) => void;
|
||||||
newObjects: T[];
|
newObjects: T[];
|
||||||
setNewObjects: (newObject: T[]) => void;
|
setNewObjects: (newObject: T[]) => void;
|
||||||
|
endpoint?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useCreateScrapedPerformer(
|
export function useCreateScrapedPerformer(
|
||||||
|
|
@ -91,7 +114,7 @@ export function useCreateScrapedPerformer(
|
||||||
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
||||||
|
|
||||||
async function createNewPerformer(toCreate: GQL.ScrapedPerformer) {
|
async function createNewPerformer(toCreate: GQL.ScrapedPerformer) {
|
||||||
const input = scrapedPerformerToCreateInput(toCreate);
|
const input = scrapedPerformerToCreateInput(toCreate, props.endpoint);
|
||||||
|
|
||||||
const result = await createPerformer({
|
const result = await createPerformer({
|
||||||
variables: { input },
|
variables: { input },
|
||||||
|
|
@ -168,7 +191,18 @@ export function useCreateScrapedTag(
|
||||||
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
const { scrapeResult, setScrapeResult, newObjects, setNewObjects } = props;
|
||||||
|
|
||||||
async function createNewTag(toCreate: GQL.ScrapedTag) {
|
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({
|
const result = await createTag({
|
||||||
variables: { input },
|
variables: { input },
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@ import { ScrapedTagsRow } from "./ScrapedObjectsRow";
|
||||||
|
|
||||||
export function useScrapedTags(
|
export function useScrapedTags(
|
||||||
existingTags: Tag[],
|
existingTags: Tag[],
|
||||||
scrapedTags?: GQL.Maybe<GQL.ScrapedTag[]>
|
scrapedTags?: GQL.Maybe<GQL.ScrapedTag[]>,
|
||||||
|
endpoint?: string
|
||||||
) {
|
) {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const [tags, setTags] = useState<ObjectListScrapeResult<GQL.ScrapedTag>>(
|
const [tags, setTags] = useState<ObjectListScrapeResult<GQL.ScrapedTag>>(
|
||||||
|
|
@ -33,6 +34,7 @@ export function useScrapedTags(
|
||||||
setScrapeResult: setTags,
|
setScrapeResult: setTags,
|
||||||
newObjects: newTags,
|
newObjects: newTags,
|
||||||
setNewObjects: setNewTags,
|
setNewObjects: setNewTags,
|
||||||
|
endpoint,
|
||||||
});
|
});
|
||||||
|
|
||||||
const scrapedTagsRow = (
|
const scrapedTagsRow = (
|
||||||
|
|
|
||||||
|
|
@ -84,9 +84,14 @@ export function sortPerformers<T extends IPerformerFragment>(performers: T[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const scrapedPerformerToCreateInput = (
|
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 = {
|
const input: GQL.PerformerCreateInput = {
|
||||||
name: toCreate.name ?? "",
|
name: toCreate.name ?? "",
|
||||||
|
|
@ -118,5 +123,15 @@ export const scrapedPerformerToCreateInput = (
|
||||||
: undefined,
|
: undefined,
|
||||||
circumcised: stringToCircumcised(toCreate.circumcised),
|
circumcised: stringToCircumcised(toCreate.circumcised),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (endpoint && toCreate.remote_site_id) {
|
||||||
|
input.stash_ids = [
|
||||||
|
{
|
||||||
|
endpoint,
|
||||||
|
stash_id: toCreate.remote_site_id,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue