Don't bail on error when scraping all (#4442)

This commit is contained in:
WithoutPants
2024-01-09 11:39:00 +11:00
committed by GitHub
parent 9859ec61fb
commit ca976a0994
3 changed files with 39 additions and 23 deletions

View File

@@ -24,6 +24,7 @@ import { useLocalForage } from "src/hooks/LocalForage";
import { useToast } from "src/hooks/Toast"; import { useToast } from "src/hooks/Toast";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { ITaggerSource, SCRAPER_PREFIX, STASH_BOX_PREFIX } from "./constants"; import { ITaggerSource, SCRAPER_PREFIX, STASH_BOX_PREFIX } from "./constants";
import { errorToString } from "src/utils";
export interface ITaggerContextState { export interface ITaggerContextState {
config: ITaggerConfig; config: ITaggerConfig;
@@ -293,9 +294,14 @@ export const TaggerContext: React.FC = ({ children }) => {
return; return;
} }
const results = await queryScrapeScene(currentSource.sourceInput, sceneID);
let newResult: ISceneQueryResult; let newResult: ISceneQueryResult;
try {
const results = await queryScrapeScene(
currentSource.sourceInput,
sceneID
);
if (results.error) { if (results.error) {
newResult = { error: results.error.message }; newResult = { error: results.error.message };
} else if (results.errors) { } else if (results.errors) {
@@ -309,6 +315,9 @@ export const TaggerContext: React.FC = ({ children }) => {
})), })),
}; };
} }
} catch (err: unknown) {
newResult = { error: errorToString(err) };
}
setSearchResults((current) => { setSearchResults((current) => {
return { ...current, [sceneID]: newResult }; return { ...current, [sceneID]: newResult };

View File

@@ -6,6 +6,7 @@ import React, {
useMemo, useMemo,
} from "react"; } from "react";
import { Toast } from "react-bootstrap"; import { Toast } from "react-bootstrap";
import { errorToString } from "src/utils";
interface IToast { interface IToast {
header?: string; header?: string;
@@ -67,16 +68,7 @@ export const useToast = () => {
}); });
}, },
error(error: unknown) { error(error: unknown) {
let message; const message = errorToString(error);
if (error instanceof Error) {
message = error.message;
}
if (!message) {
message = String(error);
}
if (!message) {
message = "Unknown error";
}
console.error(error); console.error(error);
addToast({ addToast({

View File

@@ -2,3 +2,18 @@ import { ApolloError } from "@apollo/client";
export const apolloError = (error: unknown) => export const apolloError = (error: unknown) =>
error instanceof ApolloError ? error.message : ""; error instanceof ApolloError ? error.message : "";
export function errorToString(error: unknown) {
let message;
if (error instanceof Error) {
message = error.message;
}
if (!message) {
message = String(error);
}
if (!message) {
message = "Unknown error";
}
return message;
}