mirror of
https://github.com/sussy-code/smov.git
synced 2024-12-20 14:37:43 +01:00
Fix noOutput parsing + better error modal
This commit is contained in:
parent
12f30bc42f
commit
ac7fa99c45
2 changed files with 14 additions and 7 deletions
|
@ -94,6 +94,11 @@ export async function getApiToken(): Promise<string | null> {
|
|||
return apiToken;
|
||||
}
|
||||
|
||||
function parseEventInput(inp: string): any {
|
||||
if (inp.length === 0) return {};
|
||||
return JSON.parse(inp);
|
||||
}
|
||||
|
||||
export async function connectServerSideEvents<T>(
|
||||
url: string,
|
||||
endEvents: string[],
|
||||
|
@ -115,12 +120,12 @@ export async function connectServerSideEvents<T>(
|
|||
endEvents.forEach((evt) => {
|
||||
eventSource.addEventListener(evt, (e) => {
|
||||
eventSource.close();
|
||||
promResolve(JSON.parse(e.data));
|
||||
promResolve(parseEventInput(e.data));
|
||||
});
|
||||
});
|
||||
|
||||
eventSource.addEventListener("token", (e) => {
|
||||
setApiToken(JSON.parse(e.data));
|
||||
setApiToken(parseEventInput(e.data));
|
||||
});
|
||||
|
||||
eventSource.addEventListener("error", (err: MessageEvent<any>) => {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { useMemo } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useLocation } from "react-router-dom";
|
||||
|
||||
import { Button } from "@/components/buttons/Button";
|
||||
import { Icons } from "@/components/Icon";
|
||||
|
@ -9,6 +10,7 @@ import { Paragraph } from "@/components/text/Paragraph";
|
|||
import { Title } from "@/components/text/Title";
|
||||
import { ScrapingItems, ScrapingSegment } from "@/hooks/useProviderScrape";
|
||||
import { ErrorContainer, ErrorLayout } from "@/pages/layouts/ErrorLayout";
|
||||
import { getProviderApiUrls } from "@/utils/proxyUrls";
|
||||
|
||||
import { ErrorCardInModal } from "../errors/ErrorCard";
|
||||
|
||||
|
@ -22,21 +24,21 @@ export interface ScrapeErrorPartProps {
|
|||
export function ScrapeErrorPart(props: ScrapeErrorPartProps) {
|
||||
const { t } = useTranslation();
|
||||
const modal = useModal("error");
|
||||
const location = useLocation();
|
||||
|
||||
const error = useMemo(() => {
|
||||
const data = props.data;
|
||||
const amountError = Object.values(data.sources).filter(
|
||||
(v) => v.status === "failure",
|
||||
);
|
||||
if (amountError.length === 0) return null;
|
||||
let str = "";
|
||||
const apiUrls = getProviderApiUrls();
|
||||
str += `URL - ${location.pathname}\n`;
|
||||
str += `API - ${apiUrls.length > 0}\n\n`;
|
||||
Object.values(data.sources).forEach((v) => {
|
||||
str += `${v.id}: ${v.status}\n`;
|
||||
if (v.reason) str += `${v.reason}\n`;
|
||||
if (v.error) str += `${v.error.toString()}\n`;
|
||||
});
|
||||
return str;
|
||||
}, [props]);
|
||||
}, [props, location]);
|
||||
|
||||
return (
|
||||
<ErrorLayout>
|
||||
|
|
Loading…
Reference in a new issue