mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 21:04:37 +03:00
Remove deprecated graphql fields (#4064)
* Remove deprecated list*Scrapers queries * Remove other deprecated query resolvers * Remove deprecated config fields * Remove deprecated gallery fields * Remove deprecated image fields * Remove deprecated movie fields * Remove deprecated performer fields * Document scrape function issue * Remove deprecated studio fields * Remove deprecated scan input fields * Remove deprecated scene fields * Remove deprecated fields from filters * Remove scene.file_mod_time
This commit is contained in:
@@ -94,7 +94,7 @@ export const IdentifyDialog: React.FC<IIdentifyDialogProps> = ({
|
||||
})
|
||||
);
|
||||
|
||||
const scrapers = scraperData.listSceneScrapers;
|
||||
const scrapers = scraperData.listScrapers;
|
||||
|
||||
const fragmentScrapers = scrapers.filter((s) =>
|
||||
s.scene?.supported_scrapes.includes(GQL.ScrapeType.Fragment)
|
||||
|
||||
@@ -170,10 +170,8 @@ export const GalleryEditPanel: React.FC<IProps> = ({
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
const newQueryableScrapers = (
|
||||
Scrapers?.data?.listGalleryScrapers ?? []
|
||||
).filter((s) =>
|
||||
s.gallery?.supported_scrapes.includes(GQL.ScrapeType.Fragment)
|
||||
const newQueryableScrapers = (Scrapers?.data?.listScrapers ?? []).filter(
|
||||
(s) => s.gallery?.supported_scrapes.includes(GQL.ScrapeType.Fragment)
|
||||
);
|
||||
|
||||
setQueryableScrapers(newQueryableScrapers);
|
||||
@@ -282,7 +280,7 @@ export const GalleryEditPanel: React.FC<IProps> = ({
|
||||
}
|
||||
|
||||
function urlScrapable(scrapedUrl: string): boolean {
|
||||
return (Scrapers?.data?.listGalleryScrapers ?? []).some((s) =>
|
||||
return (Scrapers?.data?.listScrapers ?? []).some((s) =>
|
||||
(s?.gallery?.urls ?? []).some((u) => scrapedUrl.includes(u))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ export const MovieEditPanel: React.FC<IMovieEditPanel> = ({
|
||||
function urlScrapable(scrapedUrl: string) {
|
||||
return (
|
||||
!!scrapedUrl &&
|
||||
(Scrapers?.data?.listMovieScrapers ?? []).some((s) =>
|
||||
(Scrapers?.data?.listScrapers ?? []).some((s) =>
|
||||
(s?.movie?.urls ?? []).some((u) => scrapedUrl.includes(u))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -46,7 +46,7 @@ const performerFields = [
|
||||
"country",
|
||||
"ethnicity",
|
||||
"eye_color",
|
||||
"height",
|
||||
// "height",
|
||||
// "weight",
|
||||
"measurements",
|
||||
"fake_tits",
|
||||
@@ -69,7 +69,8 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
const [existingTagIds, setExistingTagIds] = useState<string[]>();
|
||||
const [aggregateState, setAggregateState] =
|
||||
useState<GQL.BulkPerformerUpdateInput>({});
|
||||
// weight needs conversion to/from number
|
||||
// height and weight needs conversion to/from number
|
||||
const [height, setHeight] = useState<string | undefined>();
|
||||
const [weight, setWeight] = useState<string | undefined>();
|
||||
const [penis_length, setPenisLength] = useState<string | undefined>();
|
||||
const [updateInput, setUpdateInput] = useState<GQL.BulkPerformerUpdateInput>(
|
||||
@@ -114,6 +115,9 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
aggregateState.circumcised
|
||||
);
|
||||
|
||||
if (height !== undefined) {
|
||||
performerInput.height_cm = parseFloat(height);
|
||||
}
|
||||
if (weight !== undefined) {
|
||||
performerInput.weight = parseFloat(weight);
|
||||
}
|
||||
@@ -151,6 +155,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
|
||||
const state = props.selected;
|
||||
let updateTagIds: string[] = [];
|
||||
let updateHeight: string | undefined | null = undefined;
|
||||
let updateWeight: string | undefined | null = undefined;
|
||||
let updatePenisLength: string | undefined | null = undefined;
|
||||
let first = true;
|
||||
@@ -163,6 +168,12 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
updateTagIds =
|
||||
getAggregateState(updateTagIds, performerTagIDs, first) ?? [];
|
||||
|
||||
const thisHeight =
|
||||
performer.height_cm !== undefined && performer.height_cm !== null
|
||||
? performer.height_cm.toString()
|
||||
: performer.height_cm;
|
||||
updateHeight = getAggregateState(updateHeight, thisHeight, first);
|
||||
|
||||
const thisWeight =
|
||||
performer.weight !== undefined && performer.weight !== null
|
||||
? performer.weight.toString()
|
||||
@@ -183,6 +194,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
});
|
||||
|
||||
setExistingTagIds(updateTagIds);
|
||||
setHeight(updateHeight);
|
||||
setWeight(updateWeight);
|
||||
setAggregateState(updateState);
|
||||
setUpdateInput(updateState);
|
||||
@@ -291,9 +303,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
|
||||
{renderTextField("eye_color", updateInput.eye_color, (v) =>
|
||||
setUpdateField({ eye_color: v })
|
||||
)}
|
||||
{renderTextField("height", updateInput.height, (v) =>
|
||||
setUpdateField({ height: v })
|
||||
)}
|
||||
{renderTextField("height", height, (v) => setHeight(v))}
|
||||
{renderTextField("weight", weight, (v) => setWeight(v))}
|
||||
{renderTextField("measurements", updateInput.measurements, (v) =>
|
||||
setUpdateField({ measurements: v })
|
||||
|
||||
@@ -492,10 +492,8 @@ export const PerformerEditPanel: React.FC<IPerformerDetails> = ({
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
const newQueryableScrapers = (
|
||||
Scrapers?.data?.listPerformerScrapers ?? []
|
||||
).filter((s) =>
|
||||
s.performer?.supported_scrapes.includes(GQL.ScrapeType.Name)
|
||||
const newQueryableScrapers = (Scrapers?.data?.listScrapers ?? []).filter(
|
||||
(s) => s.performer?.supported_scrapes.includes(GQL.ScrapeType.Name)
|
||||
);
|
||||
|
||||
setQueryableScrapers(newQueryableScrapers);
|
||||
@@ -657,7 +655,7 @@ export const PerformerEditPanel: React.FC<IPerformerDetails> = ({
|
||||
function urlScrapable(scrapedUrl?: string) {
|
||||
return (
|
||||
!!scrapedUrl &&
|
||||
(Scrapers?.data?.listPerformerScrapers ?? []).some((s) =>
|
||||
(Scrapers?.data?.listScrapers ?? []).some((s) =>
|
||||
(s?.performer?.urls ?? []).some((u) => scrapedUrl.includes(u))
|
||||
)
|
||||
);
|
||||
|
||||
@@ -232,7 +232,7 @@ export const SceneEditPanel: React.FC<IProps> = ({
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
const toFilter = Scrapers?.data?.listSceneScrapers ?? [];
|
||||
const toFilter = Scrapers?.data?.listScrapers ?? [];
|
||||
|
||||
const newFragmentScrapers = toFilter.filter((s) =>
|
||||
s.scene?.supported_scrapes.includes(GQL.ScrapeType.Fragment)
|
||||
@@ -527,7 +527,7 @@ export const SceneEditPanel: React.FC<IProps> = ({
|
||||
}
|
||||
|
||||
function urlScrapable(scrapedUrl: string): boolean {
|
||||
return (Scrapers?.data?.listSceneScrapers ?? []).some((s) =>
|
||||
return (Scrapers?.data?.listScrapers ?? []).some((s) =>
|
||||
(s?.scene?.urls ?? []).some((u) => scrapedUrl.includes(u))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ export const SettingsScrapingPanel: React.FC = () => {
|
||||
}
|
||||
|
||||
function renderSceneScrapers() {
|
||||
const elements = (sceneScrapers?.listSceneScrapers ?? []).map((scraper) => (
|
||||
const elements = (sceneScrapers?.listScrapers ?? []).map((scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
@@ -205,17 +205,15 @@ export const SettingsScrapingPanel: React.FC = () => {
|
||||
}
|
||||
|
||||
function renderGalleryScrapers() {
|
||||
const elements = (galleryScrapers?.listGalleryScrapers ?? []).map(
|
||||
(scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
{renderGalleryScrapeTypes(scraper.gallery?.supported_scrapes ?? [])}
|
||||
</td>
|
||||
<td>{renderURLs(scraper.gallery?.urls ?? [])}</td>
|
||||
</tr>
|
||||
)
|
||||
);
|
||||
const elements = (galleryScrapers?.listScrapers ?? []).map((scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
{renderGalleryScrapeTypes(scraper.gallery?.supported_scrapes ?? [])}
|
||||
</td>
|
||||
<td>{renderURLs(scraper.gallery?.urls ?? [])}</td>
|
||||
</tr>
|
||||
));
|
||||
|
||||
return renderTable(
|
||||
intl.formatMessage(
|
||||
@@ -227,19 +225,17 @@ export const SettingsScrapingPanel: React.FC = () => {
|
||||
}
|
||||
|
||||
function renderPerformerScrapers() {
|
||||
const elements = (performerScrapers?.listPerformerScrapers ?? []).map(
|
||||
(scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
{renderPerformerScrapeTypes(
|
||||
scraper.performer?.supported_scrapes ?? []
|
||||
)}
|
||||
</td>
|
||||
<td>{renderURLs(scraper.performer?.urls ?? [])}</td>
|
||||
</tr>
|
||||
)
|
||||
);
|
||||
const elements = (performerScrapers?.listScrapers ?? []).map((scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
{renderPerformerScrapeTypes(
|
||||
scraper.performer?.supported_scrapes ?? []
|
||||
)}
|
||||
</td>
|
||||
<td>{renderURLs(scraper.performer?.urls ?? [])}</td>
|
||||
</tr>
|
||||
));
|
||||
|
||||
return renderTable(
|
||||
intl.formatMessage(
|
||||
@@ -251,7 +247,7 @@ export const SettingsScrapingPanel: React.FC = () => {
|
||||
}
|
||||
|
||||
function renderMovieScrapers() {
|
||||
const elements = (movieScrapers?.listMovieScrapers ?? []).map((scraper) => (
|
||||
const elements = (movieScrapers?.listScrapers ?? []).map((scraper) => (
|
||||
<tr key={scraper.id}>
|
||||
<td>{scraper.name}</td>
|
||||
<td>
|
||||
|
||||
@@ -141,7 +141,7 @@ export const TaggerContext: React.FC = ({ children }) => {
|
||||
}
|
||||
|
||||
const { stashBoxes } = stashConfig.general;
|
||||
const scrapers = Scrapers.data.listSceneScrapers;
|
||||
const scrapers = Scrapers.data.listScrapers;
|
||||
|
||||
const stashboxSources: ITaggerSource[] = stashBoxes.map((s, i) => ({
|
||||
id: `${STASH_BOX_PREFIX}${i}`,
|
||||
|
||||
@@ -1,61 +1,10 @@
|
||||
import * as GQL from "src/core/generated-graphql";
|
||||
import sortBy from "lodash-es/sortBy";
|
||||
import {
|
||||
evictQueries,
|
||||
getClient,
|
||||
studioMutationImpactedQueries,
|
||||
} from "src/core/StashService";
|
||||
|
||||
export const useUpdatePerformerStashID = () => {
|
||||
const [updatePerformer] = GQL.usePerformerUpdateMutation({
|
||||
onError: (errors) => errors,
|
||||
});
|
||||
|
||||
const updatePerformerHandler = (
|
||||
performerID: string,
|
||||
stashIDs: GQL.StashIdInput[]
|
||||
) =>
|
||||
updatePerformer({
|
||||
variables: {
|
||||
input: {
|
||||
id: performerID,
|
||||
stash_ids: stashIDs.map((s) => ({
|
||||
stash_id: s.stash_id,
|
||||
endpoint: s.endpoint,
|
||||
})),
|
||||
},
|
||||
},
|
||||
update: (store, updatedPerformer) => {
|
||||
if (!updatedPerformer.data?.performerUpdate) return;
|
||||
const newStashID = stashIDs[stashIDs.length - 1].stash_id;
|
||||
|
||||
store.writeQuery<
|
||||
GQL.FindPerformersQuery,
|
||||
GQL.FindPerformersQueryVariables
|
||||
>({
|
||||
query: GQL.FindPerformersDocument,
|
||||
variables: {
|
||||
performer_filter: {
|
||||
stash_id: {
|
||||
value: newStashID,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
},
|
||||
data: {
|
||||
findPerformers: {
|
||||
count: 1,
|
||||
performers: [updatedPerformer.data.performerUpdate],
|
||||
__typename: "FindPerformersResultType",
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return updatePerformerHandler;
|
||||
};
|
||||
|
||||
export const useUpdatePerformer = () => {
|
||||
const [updatePerformer] = GQL.usePerformerUpdateMutation({
|
||||
onError: (errors) => errors,
|
||||
@@ -78,8 +27,9 @@ export const useUpdatePerformer = () => {
|
||||
query: GQL.FindPerformersDocument,
|
||||
variables: {
|
||||
performer_filter: {
|
||||
stash_id: {
|
||||
value: id.stash_id,
|
||||
stash_id_endpoint: {
|
||||
stash_id: id.stash_id,
|
||||
endpoint: id.endpoint,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
@@ -99,91 +49,6 @@ export const useUpdatePerformer = () => {
|
||||
return updatePerformerHandler;
|
||||
};
|
||||
|
||||
export const useCreatePerformer = () => {
|
||||
const [createPerformer] = GQL.usePerformerCreateMutation({
|
||||
onError: (errors) => errors,
|
||||
});
|
||||
|
||||
const handleCreate = (performer: GQL.PerformerCreateInput, stashID: string) =>
|
||||
createPerformer({
|
||||
variables: { input: performer },
|
||||
update: (store, newPerformer) => {
|
||||
if (!newPerformer?.data?.performerCreate) return;
|
||||
|
||||
store.writeQuery<
|
||||
GQL.FindPerformersQuery,
|
||||
GQL.FindPerformersQueryVariables
|
||||
>({
|
||||
query: GQL.FindPerformersDocument,
|
||||
variables: {
|
||||
performer_filter: {
|
||||
stash_id: {
|
||||
value: stashID,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
},
|
||||
data: {
|
||||
findPerformers: {
|
||||
count: 1,
|
||||
performers: [newPerformer.data.performerCreate],
|
||||
__typename: "FindPerformersResultType",
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return handleCreate;
|
||||
};
|
||||
|
||||
export const useUpdateStudioStashID = () => {
|
||||
const [updateStudio] = GQL.useStudioUpdateMutation({
|
||||
onError: (errors) => errors,
|
||||
});
|
||||
|
||||
const handleUpdate = (
|
||||
studio: GQL.SlimStudioDataFragment,
|
||||
stashIDs: GQL.StashIdInput[]
|
||||
) =>
|
||||
updateStudio({
|
||||
variables: {
|
||||
input: {
|
||||
id: studio.id,
|
||||
stash_ids: stashIDs.map((s) => ({
|
||||
stash_id: s.stash_id,
|
||||
endpoint: s.endpoint,
|
||||
})),
|
||||
},
|
||||
},
|
||||
update: (store, result) => {
|
||||
if (!result.data?.studioUpdate) return;
|
||||
const newStashID = stashIDs[stashIDs.length - 1].stash_id;
|
||||
|
||||
store.writeQuery<GQL.FindStudiosQuery, GQL.FindStudiosQueryVariables>({
|
||||
query: GQL.FindStudiosDocument,
|
||||
variables: {
|
||||
studio_filter: {
|
||||
stash_id: {
|
||||
value: newStashID,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
},
|
||||
data: {
|
||||
findStudios: {
|
||||
count: 1,
|
||||
studios: [result.data.studioUpdate],
|
||||
__typename: "FindStudiosResultType",
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return handleUpdate;
|
||||
};
|
||||
|
||||
export const useUpdateStudio = () => {
|
||||
const [updateStudio] = GQL.useStudioUpdateMutation({
|
||||
onError: (errors) => errors,
|
||||
@@ -210,8 +75,9 @@ export const useUpdateStudio = () => {
|
||||
query: GQL.FindStudiosDocument,
|
||||
variables: {
|
||||
studio_filter: {
|
||||
stash_id: {
|
||||
value: id.stash_id,
|
||||
stash_id_endpoint: {
|
||||
stash_id: id.stash_id,
|
||||
endpoint: id.endpoint,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
@@ -231,101 +97,3 @@ export const useUpdateStudio = () => {
|
||||
|
||||
return updateStudioHandler;
|
||||
};
|
||||
|
||||
export const useCreateStudio = () => {
|
||||
const [createStudio] = GQL.useStudioCreateMutation({
|
||||
onError: (errors) => errors,
|
||||
});
|
||||
|
||||
const handleCreate = (studio: GQL.StudioCreateInput, stashID: string) =>
|
||||
createStudio({
|
||||
variables: { input: studio },
|
||||
update: (store, result) => {
|
||||
if (!result?.data?.studioCreate) return;
|
||||
|
||||
const currentQuery = store.readQuery<
|
||||
GQL.AllStudiosForFilterQuery,
|
||||
GQL.AllStudiosForFilterQueryVariables
|
||||
>({
|
||||
query: GQL.AllStudiosForFilterDocument,
|
||||
});
|
||||
const allStudios = sortBy(
|
||||
[...(currentQuery?.allStudios ?? []), result.data.studioCreate],
|
||||
["name"]
|
||||
);
|
||||
if (allStudios.length > 1) {
|
||||
store.writeQuery<
|
||||
GQL.AllStudiosForFilterQuery,
|
||||
GQL.AllStudiosForFilterQueryVariables
|
||||
>({
|
||||
query: GQL.AllStudiosForFilterDocument,
|
||||
data: {
|
||||
allStudios,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
store.writeQuery<GQL.FindStudiosQuery, GQL.FindStudiosQueryVariables>({
|
||||
query: GQL.FindStudiosDocument,
|
||||
variables: {
|
||||
studio_filter: {
|
||||
stash_id: {
|
||||
value: stashID,
|
||||
modifier: GQL.CriterionModifier.Equals,
|
||||
},
|
||||
},
|
||||
},
|
||||
data: {
|
||||
findStudios: {
|
||||
count: 1,
|
||||
studios: [result.data.studioCreate],
|
||||
__typename: "FindStudiosResultType",
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return handleCreate;
|
||||
};
|
||||
|
||||
export const useCreateTag = () => {
|
||||
const [createTag] = GQL.useTagCreateMutation({
|
||||
onError: (errors) => errors,
|
||||
});
|
||||
|
||||
const handleCreate = (tag: string) =>
|
||||
createTag({
|
||||
variables: {
|
||||
input: {
|
||||
name: tag,
|
||||
},
|
||||
},
|
||||
update: (store, result) => {
|
||||
if (!result.data?.tagCreate) return;
|
||||
|
||||
const currentQuery = store.readQuery<
|
||||
GQL.AllTagsForFilterQuery,
|
||||
GQL.AllTagsForFilterQueryVariables
|
||||
>({
|
||||
query: GQL.AllTagsForFilterDocument,
|
||||
});
|
||||
const allTags = sortBy(
|
||||
[...(currentQuery?.allTags ?? []), result.data.tagCreate],
|
||||
["name"]
|
||||
);
|
||||
|
||||
store.writeQuery<
|
||||
GQL.AllTagsForFilterQuery,
|
||||
GQL.AllTagsForFilterQueryVariables
|
||||
>({
|
||||
query: GQL.AllTagsForFilterDocument,
|
||||
data: {
|
||||
allTags,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
return handleCreate;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user