mirror of
https://github.com/sussy-code/smov.git
synced 2024-12-29 16:07:40 +01:00
Pls work i swear to god
This commit is contained in:
parent
c830102b24
commit
0e0c3dcd95
3 changed files with 2023 additions and 2106 deletions
|
@ -31,7 +31,6 @@
|
|||
"@ladjs/country-language": "^1.0.3",
|
||||
"@movie-web/providers": "^2.2.5",
|
||||
"@noble/hashes": "^1.3.3",
|
||||
"@nuxt/eslint-config": "^0.2.0",
|
||||
"@plasmohq/messaging": "^0.6.1",
|
||||
"@react-spring/web": "^9.7.3",
|
||||
"@scure/bip39": "^1.2.2",
|
||||
|
@ -76,6 +75,7 @@
|
|||
"@babel/core": "^7.23.6",
|
||||
"@babel/preset-env": "^7.23.6",
|
||||
"@babel/preset-typescript": "^7.23.3",
|
||||
"@nuxt/eslint-config": "^0.2.0",
|
||||
"@rollup/wasm-node": "^4.9.4",
|
||||
"@types/chromecast-caf-sender": "^1.0.8",
|
||||
"@types/crypto-js": "^4.2.1",
|
||||
|
|
3967
pnpm-lock.yaml
3967
pnpm-lock.yaml
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
|||
import { ReactElement, Suspense, lazy, useEffect } from "react";
|
||||
import { ReactElement, Suspense, lazy, useEffect, useState } from "react";
|
||||
import { lazyWithPreload } from "react-lazy-with-preload";
|
||||
import {
|
||||
Navigate,
|
||||
|
@ -13,12 +13,10 @@ import { convertLegacyUrl, isLegacyUrl } from "@/backend/metadata/getmeta";
|
|||
import { generateQuickSearchMediaUrl } from "@/backend/metadata/tmdb";
|
||||
import { useOnlineListener } from "@/hooks/usePing";
|
||||
import { AboutPage } from "@/pages/About";
|
||||
import { TopSources } from "@/pages/TopSources";
|
||||
import { TopFlix } from "@/pages/TopFlix";
|
||||
import { SupportPage } from "@/pages/Support";
|
||||
import { AdminPage } from "@/pages/admin/AdminPage";
|
||||
import VideoTesterView from "@/pages/developer/VideoTesterView";
|
||||
import { DmcaPage, shouldHaveDmcaPage } from "@/pages/Dmca";
|
||||
import MaintenancePage from "@/pages/errors/MaintenancePage";
|
||||
import { NotFoundPage } from "@/pages/errors/NotFoundPage";
|
||||
import { HomePage } from "@/pages/HomePage";
|
||||
import { LoginPage } from "@/pages/Login";
|
||||
|
@ -26,6 +24,9 @@ import { OnboardingPage } from "@/pages/onboarding/Onboarding";
|
|||
import { OnboardingExtensionPage } from "@/pages/onboarding/OnboardingExtension";
|
||||
import { OnboardingProxyPage } from "@/pages/onboarding/OnboardingProxy";
|
||||
import { RegisterPage } from "@/pages/Register";
|
||||
import { SupportPage } from "@/pages/Support";
|
||||
import { TopFlix } from "@/pages/TopFlix";
|
||||
import { TopSources } from "@/pages/TopSources";
|
||||
import { Layout } from "@/setup/Layout";
|
||||
import { useHistoryListener } from "@/stores/history";
|
||||
import { LanguageProvider } from "@/stores/language";
|
||||
|
@ -89,81 +90,94 @@ function QueryView() {
|
|||
function App() {
|
||||
useHistoryListener();
|
||||
useOnlineListener();
|
||||
const maintenance = false; // Shows maintance page
|
||||
const [showDowntime, setShowDowntime] = useState(maintenance);
|
||||
|
||||
const handleButtonClick = () => {
|
||||
setShowDowntime(false);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
const sessionToken = sessionStorage.getItem("downtimeToken");
|
||||
if (!sessionToken && maintenance) {
|
||||
setShowDowntime(true);
|
||||
sessionStorage.setItem("downtimeToken", "true");
|
||||
}
|
||||
}, [setShowDowntime, maintenance]);
|
||||
|
||||
return (
|
||||
<Layout>
|
||||
<LanguageProvider />
|
||||
<Routes>
|
||||
{/* functional routes */}
|
||||
<Route path="/s/:query" element={<QuickSearch />} />
|
||||
<Route path="/search/:type" element={<Navigate to="/browse" />} />
|
||||
<Route path="/search/:type/:query?" element={<QueryView />} />
|
||||
|
||||
{/* pages */}
|
||||
<Route
|
||||
path="/media/:media"
|
||||
element={
|
||||
<LegacyUrlView>
|
||||
{!showDowntime && (
|
||||
<Routes>
|
||||
{/* functional routes */}
|
||||
<Route path="/s/:query" element={<QuickSearch />} />
|
||||
<Route path="/search/:type" element={<Navigate to="/browse" />} />
|
||||
<Route path="/search/:type/:query?" element={<QueryView />} />
|
||||
{/* pages */}
|
||||
<Route
|
||||
path="/media/:media"
|
||||
element={
|
||||
<LegacyUrlView>
|
||||
<Suspense fallback={null}>
|
||||
<PlayerView />
|
||||
</Suspense>
|
||||
</LegacyUrlView>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/media/:media/:season/:episode"
|
||||
element={
|
||||
<LegacyUrlView>
|
||||
<Suspense fallback={null}>
|
||||
<PlayerView />
|
||||
</Suspense>
|
||||
</LegacyUrlView>
|
||||
}
|
||||
/>
|
||||
<Route path="/browse/:query?" element={<HomePage />} />
|
||||
<Route path="/" element={<HomePage />} />
|
||||
<Route path="/register" element={<RegisterPage />} />
|
||||
<Route path="/login" element={<LoginPage />} />
|
||||
<Route path="/about" element={<AboutPage />} />
|
||||
<Route path="/onboarding" element={<OnboardingPage />} />
|
||||
<Route
|
||||
path="/onboarding/extension"
|
||||
element={<OnboardingExtensionPage />}
|
||||
/>
|
||||
<Route path="/onboarding/proxy" element={<OnboardingProxyPage />} />
|
||||
{shouldHaveDmcaPage() ? (
|
||||
<Route path="/dmca" element={<DmcaPage />} />
|
||||
) : null}
|
||||
{/* Support page */}
|
||||
<Route path="/support" element={<SupportPage />} />
|
||||
{/* Top flix page */}
|
||||
<Route path="/flix" element={<TopFlix />} />
|
||||
<Route path="/flix/sources" element={<TopSources />} />
|
||||
{/* Settings page */}
|
||||
<Route
|
||||
path="/settings"
|
||||
element={
|
||||
<Suspense fallback={null}>
|
||||
<PlayerView />
|
||||
<SettingsPage />
|
||||
</Suspense>
|
||||
</LegacyUrlView>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/media/:media/:season/:episode"
|
||||
element={
|
||||
<LegacyUrlView>
|
||||
<Suspense fallback={null}>
|
||||
<PlayerView />
|
||||
</Suspense>
|
||||
</LegacyUrlView>
|
||||
}
|
||||
/>
|
||||
<Route path="/browse/:query?" element={<HomePage />} />
|
||||
<Route path="/" element={<HomePage />} />
|
||||
<Route path="/register" element={<RegisterPage />} />
|
||||
<Route path="/login" element={<LoginPage />} />
|
||||
<Route path="/about" element={<AboutPage />} />
|
||||
<Route path="/onboarding" element={<OnboardingPage />} />
|
||||
<Route
|
||||
path="/onboarding/extension"
|
||||
element={<OnboardingExtensionPage />}
|
||||
/>
|
||||
<Route path="/onboarding/proxy" element={<OnboardingProxyPage />} />
|
||||
|
||||
{shouldHaveDmcaPage() ? (
|
||||
<Route path="/dmca" element={<DmcaPage />} />
|
||||
) : null}
|
||||
|
||||
{/* Settings page */}
|
||||
<Route
|
||||
path="/settings"
|
||||
element={
|
||||
<Suspense fallback={null}>
|
||||
<SettingsPage />
|
||||
</Suspense>
|
||||
}
|
||||
/>
|
||||
|
||||
{/* admin routes */}
|
||||
<Route path="/admin" element={<AdminPage />} />
|
||||
|
||||
{/* Support page */}
|
||||
<Route path="/support" element={<SupportPage />} />
|
||||
{/* Top flix page */}
|
||||
<Route path="/flix" element={<TopFlix />} />
|
||||
<Route path="/flix/sources" element={<TopSources />} />
|
||||
|
||||
{/* other */}
|
||||
<Route path="/dev" element={<DeveloperPage />} />
|
||||
<Route path="/dev/video" element={<VideoTesterView />} />
|
||||
{/* developer routes that can abuse workers are disabled in production */}
|
||||
{process.env.NODE_ENV === "development" ? (
|
||||
<Route path="/dev/test" element={<TestView />} />
|
||||
) : null}
|
||||
<Route path="*" element={<NotFoundPage />} />
|
||||
</Routes>
|
||||
}
|
||||
/>
|
||||
{/* admin routes */}
|
||||
<Route path="/admin" element={<AdminPage />} />
|
||||
{/* other */}
|
||||
<Route path="/dev" element={<DeveloperPage />} />
|
||||
<Route path="/dev/video" element={<VideoTesterView />} />
|
||||
{/* developer routes that can abuse workers are disabled in production */}
|
||||
{process.env.NODE_ENV === "development" ? (
|
||||
<Route path="/dev/test" element={<TestView />} />
|
||||
) : null}
|
||||
<Route path="*" element={<NotFoundPage />} />
|
||||
</Routes>
|
||||
)}
|
||||
{showDowntime && (
|
||||
<MaintenancePage onHomeButtonClick={handleButtonClick} />
|
||||
)}
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue