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:
WithoutPants
2023-10-17 11:59:35 +11:00
committed by GitHub
parent a9ab1fcca7
commit b6714fafba
66 changed files with 101 additions and 1223 deletions

View File

@@ -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)

View File

@@ -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))
);
}

View File

@@ -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))
)
);

View File

@@ -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 })

View File

@@ -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))
)
);

View File

@@ -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))
);
}

View File

@@ -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>

View File

@@ -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}`,

View File

@@ -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;
};