Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Here are some tips to make sure that your pull requests are :pinched_fingers: fi

Language contributions help P-Stream massively, allowing people worldwide to use our app!

We use Weblate for crowdsourcing our translations. [Click here to go to our translation tool.](https://docs.pstream.mov/links/weblate)
We use Weblate for crowdsourcing our translations.

1. First make sure you make an account. (click the link above)
2. Click the language you want to help translate, if it's not listed you can click the plus top left to add a new language.
Expand Down
18 changes: 8 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
# P-Stream

[![P-Stream Image](.github/P-Stream.png)](https://docs.pstream.mov)
[![P-Stream Image](.github/P-Stream.png)](https://p-stream.github.io/docs/)

## Quick Deploy

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fp-stream%2Fp-stream)

[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/p-stream/p-stream)

**NOTE: To self-host, more setup is required. Check the [docs](https://docs.pstream.mov) to properly set up!!!!**
**NOTE: To self-host, more setup is required. Check the [docs](https://p-stream.github.io/docs/) to properly set up!!!!**

## Links And Resources

| Service | Link | Source Code |
| ------------- | ----------------------------------------------- | ------------------------------------------------------- |
| P-Stream Docs | [docs](https://docs.pstream.mov) | [source code](https://github.com/p-stream/docs) |
| Extension | [extension](https://docs.pstream.mov/extension) | [source code](https://github.com/p-stream/browser-ext) |
| Proxy | [simple-proxy](https://docs.pstream.mov/proxy) | [source code](https://github.com/p-stream/simple-proxy) |
| Backend | [backend](https://server.fifthwit.net) | [source code](https://github.com/p-stream/backend) |
| Frontend | [P-Stream](https://docs.pstream.mov/instances) | [source code](https://github.com/p-stream/p-stream) |
| Weblate | [weblate](https://weblate.pstream.mov) | |

**_I provide these if you are not able to host yourself, though I do encourage hosting the frontend._**
| P-Stream Docs | [docs](https://p-stream.github.io/docs/) | [source code](https://github.com/p-stream/docs) |
| Extension | [extension](https://p-stream.github.io/docs/extension) | [source code](https://github.com/p-stream/browser-ext) |
| Proxy | [simple-proxy](https://p-stream.github.io/docs/proxy) | [source code](https://github.com/p-stream/simple-proxy) |
| Backend | [backend](https://github.com/p-stream/backend) | [source code](https://github.com/p-stream/backend) |
| Frontend | [P-Stream](https://p-stream.github.io/docs/instances) | [source code](https://github.com/p-stream/p-stream) |
| Weblate | [weblate](https://p-stream.github.io/docs/weblate) | |

## Referrers

Expand Down
2 changes: 1 addition & 1 deletion example.env
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ VITE_BACKEND_URL=https://server1.com,https://server2.com,https://server3.com
# Trakt integration setup. Get these at https://trakt.tv/oauth/applications
VITE_TRAKT_CLIENT_ID=
VITE_TRAKT_CLIENT_SECRET=
TRAKT_REDIRECT_URI=https://pstream.mov
TRAKT_REDIRECT_URI=https://your domain
4 changes: 2 additions & 2 deletions public/notifications.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>P-Stream Notifications</title>
<link>https://pstream.mov</link>
<link>https://raw.githubusercontent.com/p-stream/p-stream/production/public/notifications.xml</link>
<description>Site updates and important notifications for P-Stream users</description>
<language>en</language>
<lastBuildDate>Mon, 29 Sep 2025 18:00:00 MST</lastBuildDate>
<atom:link href="https://pstream.mov/notifications.xml" rel="self" type="application/rss+xml" />
<atom:link href="https://raw.githubusercontent.com/p-stream/p-stream/production/public/notifications.xml" rel="self" type="application/rss+xml" />

<item>
<guid>notification-061</guid>
Expand Down
2 changes: 1 addition & 1 deletion src/assets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Locales are difficult, here is some guidance.

## Process on adding new languages

1. Use [Weblate](https://docs.pstream.mov/links/weblate) to add translations, see contributing guidelines.
1. Use [Weblate](https://github.com/p-stream/p-stream) to add translations, see contributing guidelines.
2. Add your language to `@/assets/languages.ts`. Must be in ISO format (ISO-639 for language and ISO-3166 for country/region). For joke languages, use any format.
3. If the language code doesn't have a region specified (Such as in `pt-BR`, `BR` being the region), add a default region in `@/utils/language.ts` at `defaultLanguageCodes`
4. If the language code doesn't contain a region (Such as in `zh-Hant`), add a default country in `@/utils/language.ts` at `countryPriority`.
17 changes: 7 additions & 10 deletions src/assets/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@
"register": "Register",
"settings": "Settings",
"migration": "Migrate Account",
"jip": "Jip"
"jip": "Jip",
"pas": "Pas"
},
"keyboardShortcuts": {
"title": "Keyboard Shortcuts",
Expand Down Expand Up @@ -1107,15 +1108,11 @@
},
"jip": {
"title": "Jip",
"text": "P-Stream didn't fall out of a coconut tree, it was made mostly by a single person (a very epic one at that).",
"q1": {
"body": "You can join the official <0>P-Stream fluxer</0> and ask questions there or you can email the one provided at the bottom of this page.",
"title": "Where can I get help?"
},
"q2": {
"body": "We have a <0>GitHub</0> where you can create a detailed issue in our repository. Additionally, if you wish, you can create a pull request to fix the issue yourself.",
"title": "How can I report a bug or issue?"
}
"text": "movie-web didn't fall out of a coconut tree, it was made mostly by a single person (a very epic one at that)."
},
"pas": {
"title": "Pas",
"text": "P-Stream was a dream and Pas made it a reality."
},
"screens": {
"legal": {
Expand Down
2 changes: 1 addition & 1 deletion src/backend/metadata/traktApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import type {
TraktReleaseResponse,
} from "./types/trakt";

export const TRAKT_BASE_URL = "https://fed-airdate.pstream.mov";
export const TRAKT_BASE_URL = "";

// Token cookie configuration
const TOKEN_COOKIE_NAME = "turnstile_token";
Expand Down
4 changes: 0 additions & 4 deletions src/components/LinksDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -349,10 +349,6 @@ export function LinksDropdown(props: { children: React.ReactNode }) {
)}
<CircleDropdownLink href={conf().FLUXER_LINK} icon={Icons.FLUXER} />
<CircleDropdownLink href="/support" icon={Icons.SUPPORT} />
<CircleDropdownLink
href="https://rentry.co/nnqtas3e"
icon={Icons.TIP_JAR}
/>
</div>
</div>
</Transition>
Expand Down
2 changes: 1 addition & 1 deletion src/components/player/atoms/settings/CaptionsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ export function CaptionsView({
);
const delay = useSubtitleStore((s) => s.delay);
const appLanguage = useLanguageStore((s) => s.language);
const setSubtitle = useSubtitleStore((s) => s.setSubtitle);
// const setSubtitle = useSubtitleStore((s) => s.setSubtitle);
const matchScore = useCaptionMatchScore();

// Get combined caption list
Expand Down
2 changes: 1 addition & 1 deletion src/components/player/hooks/useInitializePlayer.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useCallback, useEffect, useMemo, useRef } from "react";
import { useCallback, useEffect, useMemo } from "react";

import { usePlayerStore } from "@/stores/player/store";
import { useVolumeStore } from "@/stores/volume";
Expand Down
2 changes: 1 addition & 1 deletion src/components/player/hooks/useSkipTime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { getTurnstileToken } from "@/utils/turnstile";

// Thanks Nemo for this API
const THE_INTRO_DB_BASE_URL = "https://api.theintrodb.org/v2";
const FED_SKIPS_BASE_URL = "https://fed-skips.pstream.mov";
const FED_SKIPS_BASE_URL = "";
const INTRODB_BASE_URL = "https://api.introdb.app/intro";
const MAX_RETRIES = 3;

Expand Down
59 changes: 59 additions & 0 deletions src/pages/Pas.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import classNames from "classnames";
import { Trans, useTranslation } from "react-i18next";

import { ThinContainer } from "@/components/layout/ThinContainer";
import { Heading1, Paragraph } from "@/components/utils/Text";
import { PageTitle } from "@/pages/parts/util/PageTitle";

import { SubPageLayout } from "./layouts/SubPageLayout";

// too lazy to import the actual button component
function Button(props: {
className: string;
onClick?: () => void;
children: React.ReactNode;
disabled?: boolean;
}) {
return (
<button
className={classNames(
"font-bold rounded h-10 w-40 scale-90 hover:scale-95 transition-all duration-200",
props.className,
)}
type="button"
onClick={props.onClick}
disabled={props.disabled}
>
{props.children}
</button>
);
}

export function PasPage() {
const { t } = useTranslation();

return (
<SubPageLayout>
<PageTitle subpage k="global.pages.pas" />
<ThinContainer>
<Heading1>{t("pas.title")}</Heading1>
<Paragraph className="flex flex-col gap-6">
<Trans
i18nKey="pas.text"
components={{
bold: <span className="font-bold" style={{ color: "#cfcfcf" }} />,
}}
/>
<Button
className="box-content w-full py-1 text-lg bg-buttons-secondary hover:bg-buttons-secondaryHover bg-opacity-90 text-buttons-secondaryText justify-center items-center inline-block"
onClick={() =>
window.open("https://github.com/Pasithea0", "_blank")
}
>
Pasithea0 on GitHub
</Button>
</Paragraph>
</ThinContainer>
</SubPageLayout>
);
}
2 changes: 1 addition & 1 deletion src/pages/migration/MigrationUpload.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ export function MigrationUploadPage() {
if (uploadedData.settings) {
// Apply subtitle settings
if (uploadedData.settings.defaultSubtitleLanguage) {
subtitleStore.setLanguage(
subtitleStore.importSubtitleLanguage(
uploadedData.settings.defaultSubtitleLanguage,
);
}
Expand Down
4 changes: 2 additions & 2 deletions src/pages/parts/settings/ConnectionsPart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ function ProxyEdit({
</p>
<p className="max-w-[30rem] font-medium">
<Trans i18nKey="settings.connections.workers.description">
<MwLink to="https://docs.pstream.mov/proxy/deploy">
<MwLink to="https://p-stream.github.io/docs/proxy/deploy">
{t("settings.connections.workers.documentation")}
</MwLink>
</Trans>
Expand Down Expand Up @@ -237,7 +237,7 @@ function BackendEdit({ backendUrl, setBackendUrl }: BackendEditProps) {
</p>
<p className="max-w-[30rem] font-medium">
<Trans i18nKey="settings.connections.server.description">
<MwLink to="https://docs.pstream.mov/backend/deploy">
<MwLink to="https://p-stream.github.io/docs/backend/deploy">
{t("settings.connections.server.documentation")}
</MwLink>
</Trans>
Expand Down
2 changes: 2 additions & 0 deletions src/setup/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import { MigrationUploadPage } from "@/pages/migration/MigrationUpload";
import { OnboardingPage } from "@/pages/onboarding/Onboarding";
import { OnboardingExtensionPage } from "@/pages/onboarding/OnboardingExtension";
import { OnboardingProxyPage } from "@/pages/onboarding/OnboardingProxy";
import { PasPage } from "@/pages/Pas";
import { RegisterPage } from "@/pages/Register";
import { SupportPage } from "@/pages/Support";
import { WatchHistory } from "@/pages/watchHistory/WatchHistory";
Expand Down Expand Up @@ -190,6 +191,7 @@ function App() {
{/* Support page */}
<Route path="/support" element={<SupportPage />} />
<Route path="/jip" element={<JipPage />} />
<Route path="/pas" element={<PasPage />} />
{/* Discover pages */}
<Route path="/discover" element={<Discover />} />
<Route
Expand Down
4 changes: 2 additions & 2 deletions src/setup/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,11 +140,11 @@ export function conf(): RuntimeConfig {
DMCA_EMAIL: getKey("DMCA_EMAIL"),
ONBOARDING_CHROME_EXTENSION_INSTALL_LINK: getKey(
"ONBOARDING_CHROME_EXTENSION_INSTALL_LINK",
"https://docs.pstream.mov/extension",
"https://p-stream.github.io/docs/extension",
),
ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK: getKey(
"ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK",
"https://docs.pstream.mov/extension",
"https://p-stream.github.io/docs/extension",
),
ONBOARDING_PROXY_INSTALL_LINK: getKey("ONBOARDING_PROXY_INSTALL_LINK"),
BACKEND_URLS: getKey("BACKEND_URL", BACKEND_URL)
Expand Down
Loading