mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2025-12-28 12:39:15 -05:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee14ff5a51 | ||
|
|
6b62d4b862 | ||
|
|
706fea0e97 | ||
|
|
80956d1a83 | ||
|
|
6d530d9028 | ||
|
|
f12237565f | ||
|
|
11f5594ed4 | ||
|
|
e4e58bee05 | ||
|
|
13ee3a836c | ||
|
|
3f16a353f5 | ||
|
|
9c43ba95e6 | ||
|
|
13fb6fd1a7 | ||
|
|
16e8e3a38e | ||
|
|
6fecdf094d | ||
|
|
69b271b018 | ||
|
|
d6ebd9a9b9 | ||
|
|
70dad332fc | ||
|
|
a65e430c60 | ||
|
|
18f4b67b72 | ||
|
|
506c31562a | ||
|
|
7a9d7a4834 | ||
|
|
902a033b8a | ||
|
|
00eb20aa5e | ||
|
|
a2c27cfa95 | ||
|
|
7122b4d08b |
35
.github/workflows/ci.yml
vendored
35
.github/workflows/ci.yml
vendored
@@ -1,9 +1,9 @@
|
||||
name: Overseerr CI
|
||||
name: Jellyseerr CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
- "*"
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
@@ -11,11 +11,12 @@ on:
|
||||
jobs:
|
||||
test:
|
||||
name: Lint & Test Build
|
||||
if: github.event_name == 'pull_request'
|
||||
runs-on: ubuntu-20.04
|
||||
container: node:14.17-alpine
|
||||
container: node:16.14-alpine
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
env:
|
||||
HUSKY_SKIP_INSTALL: 1
|
||||
@@ -27,36 +28,29 @@ jobs:
|
||||
|
||||
build_and_push:
|
||||
name: Build & Publish Docker Images
|
||||
needs: test
|
||||
if: github.ref == 'refs/heads/develop' && !contains(github.event.head_commit.message, '[skip ci]')
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
uses: actions/checkout@v3
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.3.0
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v2.1.6
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-buildx-
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1.9.0
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v1.9.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2.5.0
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
@@ -65,10 +59,7 @@ jobs:
|
||||
build-args: |
|
||||
COMMIT_TAG=${{ github.sha }}
|
||||
tags: |
|
||||
sctx/overseerr:develop
|
||||
sctx/overseerr:${{ github.sha }}
|
||||
ghcr.io/sct/overseerr:develop
|
||||
ghcr.io/sct/overseerr:${{ github.sha }}
|
||||
fallenbagel/jellyseerr:develop
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
|
||||
- # Temporary fix
|
||||
@@ -86,7 +77,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Get Build Job Status
|
||||
uses: technote-space/workflow-conclusion-action@v2.1.6
|
||||
uses: technote-space/workflow-conclusion-action@v2
|
||||
- name: Combine Job Status
|
||||
id: status
|
||||
run: |
|
||||
|
||||
23
.github/workflows/deploy_docs.yml
vendored
23
.github/workflows/deploy_docs.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: Deploy API Docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Generate Swagger UI
|
||||
uses: Legion2/swagger-ui-action@v1.1.2
|
||||
with:
|
||||
output: swagger-ui
|
||||
spec-file: overseerr-api.yml
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3.8.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: swagger-ui
|
||||
cname: api-docs.overseerr.dev
|
||||
19
.github/workflows/invalid_template.yml
vendored
19
.github/workflows/invalid_template.yml
vendored
@@ -1,19 +0,0 @@
|
||||
name: 'Invalid Template'
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, unlabeled, reopened]
|
||||
|
||||
jobs:
|
||||
support:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: dessant/support-requests@v2.0.1
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
support-label: 'invalid:template-incomplete'
|
||||
issue-comment: >
|
||||
:wave: @{issue-author}, please follow the template provided.
|
||||
close-issue: true
|
||||
lock-issue: true
|
||||
issue-lock-reason: 'resolved'
|
||||
23
.github/workflows/preview.yml
vendored
23
.github/workflows/preview.yml
vendored
@@ -1,9 +1,9 @@
|
||||
name: Overseerr Preview
|
||||
name: Jellyseerr Preview
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'preview-*'
|
||||
- "preview-*"
|
||||
|
||||
jobs:
|
||||
build_and_push:
|
||||
@@ -11,27 +11,21 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
uses: actions/checkout@v3
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.3.0
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1.9.0
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v1.9.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2.5.0
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
@@ -40,5 +34,4 @@ jobs:
|
||||
build-args: |
|
||||
COMMIT_TAG=${{ github.sha }}
|
||||
tags: |
|
||||
sctx/overseerr:${{ steps.get_version.outputs.VERSION }}
|
||||
ghcr.io/sct/overseerr:${{ steps.get_version.outputs.VERSION }}
|
||||
fallenbagel/jellyseerr:${{ steps.get_version.outputs.VERSION }}
|
||||
|
||||
102
.github/workflows/release.yml
vendored
102
.github/workflows/release.yml
vendored
@@ -1,118 +1,40 @@
|
||||
name: Overseerr Release
|
||||
name: Jellyseer Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Lint & Test Build
|
||||
runs-on: ubuntu-20.04
|
||||
container: node:14.17-alpine
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
- name: Install dependencies
|
||||
env:
|
||||
HUSKY_SKIP_INSTALL: 1
|
||||
run: yarn
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
semantic-release:
|
||||
name: Tag and release latest version
|
||||
needs: test
|
||||
runs-on: ubuntu-20.04
|
||||
env:
|
||||
HUSKY: 0
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v2
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
node-version: 16
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1.3.0
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1.9.0
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_TOKEN }}
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v1.9.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Install dependencies
|
||||
run: yarn
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
run: npx semantic-release
|
||||
|
||||
build-snap:
|
||||
name: Build Snap Package (${{ matrix.architecture }})
|
||||
needs: semantic-release
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
architecture:
|
||||
- amd64
|
||||
- arm64
|
||||
- armhf
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2.3.4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Switch to master branch
|
||||
run: git checkout master
|
||||
- name: Pull latest changes
|
||||
run: git pull
|
||||
- name: Prepare
|
||||
id: prepare
|
||||
run: |
|
||||
git fetch --prune --tags
|
||||
if [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then
|
||||
echo ::set-output name=RELEASE::stable
|
||||
else
|
||||
echo ::set-output name=RELEASE::edge
|
||||
fi
|
||||
- name: Set Up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
with:
|
||||
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
||||
- name: Build Snap Package
|
||||
uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
id: build
|
||||
with:
|
||||
architecture: ${{ matrix.architecture }}
|
||||
- name: Upload Snap Package
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: overseerr-snap-package-${{ matrix.architecture }}
|
||||
path: ${{ steps.build.outputs.snap }}
|
||||
- name: Review Snap Package
|
||||
uses: diddlesnaps/snapcraft-review-tools-action@v1.3.0
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
- name: Publish Snap Package
|
||||
uses: snapcore/action-publish@v1
|
||||
with:
|
||||
store_login: ${{ secrets.SNAP_LOGIN }}
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: ${{ steps.prepare.outputs.RELEASE }}
|
||||
|
||||
discord:
|
||||
name: Send Discord Notification
|
||||
needs: semantic-release
|
||||
@@ -120,7 +42,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Get Build Job Status
|
||||
uses: technote-space/workflow-conclusion-action@v2.1.6
|
||||
uses: technote-space/workflow-conclusion-action@v2
|
||||
- name: Combine Job Status
|
||||
id: status
|
||||
run: |
|
||||
|
||||
107
.github/workflows/snap.yaml
vendored
107
.github/workflows/snap.yaml
vendored
@@ -1,107 +0,0 @@
|
||||
name: Publish Snap
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
jobs:
|
||||
name: Job Check
|
||||
runs-on: ubuntu-20.04
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.9.0
|
||||
with:
|
||||
access_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
test:
|
||||
name: Lint & Test Build
|
||||
needs: jobs
|
||||
runs-on: ubuntu-20.04
|
||||
container: node:14.17-alpine
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
- name: Install dependencies
|
||||
env:
|
||||
HUSKY_SKIP_INSTALL: 1
|
||||
run: yarn
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
build-snap:
|
||||
name: Build Snap Package (${{ matrix.architecture }})
|
||||
needs: test
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
architecture:
|
||||
- amd64
|
||||
- arm64
|
||||
- armhf
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2.3.4
|
||||
- name: Prepare
|
||||
id: prepare
|
||||
run: |
|
||||
git fetch --prune --unshallow --tags
|
||||
if [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then
|
||||
echo ::set-output name=RELEASE::stable
|
||||
else
|
||||
echo ::set-output name=RELEASE::edge
|
||||
fi
|
||||
- name: Set Up QEMU
|
||||
uses: docker/setup-qemu-action@v1.2.0
|
||||
with:
|
||||
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
||||
- name: Build Snap Package
|
||||
uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
id: build
|
||||
with:
|
||||
architecture: ${{ matrix.architecture }}
|
||||
- name: Upload Snap Package
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: overseerr-snap-package-${{ matrix.architecture }}
|
||||
path: ${{ steps.build.outputs.snap }}
|
||||
- name: Review Snap Package
|
||||
uses: diddlesnaps/snapcraft-review-tools-action@v1.3.0
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
- name: Publish Snap Package
|
||||
uses: snapcore/action-publish@v1
|
||||
with:
|
||||
store_login: ${{ secrets.SNAP_LOGIN }}
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: ${{ steps.prepare.outputs.RELEASE }}
|
||||
|
||||
discord:
|
||||
name: Send Discord Notification
|
||||
needs: build-snap
|
||||
if: always() && !contains(github.event.head_commit.message, '[skip ci]')
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Get Build Job Status
|
||||
uses: technote-space/workflow-conclusion-action@v2.1.6
|
||||
- name: Combine Job Status
|
||||
id: status
|
||||
run: |
|
||||
failures=(neutral, skipped, timed_out, action_required)
|
||||
if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then
|
||||
echo ::set-output name=status::failure
|
||||
else
|
||||
echo ::set-output name=status::$WORKFLOW_CONCLUSION
|
||||
fi
|
||||
- name: Post Status to Discord
|
||||
uses: sarisia/actions-status-discord@v1
|
||||
with:
|
||||
webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
status: ${{ steps.status.outputs.status }}
|
||||
title: ${{ github.workflow }}
|
||||
nofail: true
|
||||
7
.github/workflows/support.yml
vendored
7
.github/workflows/support.yml
vendored
@@ -8,7 +8,7 @@ jobs:
|
||||
support:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: dessant/support-requests@v2.0.1
|
||||
- uses: dessant/support-requests@v2
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
support-label: 'support'
|
||||
@@ -16,11 +16,10 @@ jobs:
|
||||
:wave: @{issue-author}, we use the issue tracker exclusively
|
||||
for bug reports and feature requests. However, this issue appears
|
||||
to be a support request. Please use our support channels
|
||||
to get help with Overseerr.
|
||||
to get help with Jellyseerr.
|
||||
|
||||
- [Discord](https://discord.gg/overseerr)
|
||||
- [Discord](https://discord.gg/ckbvBtDJgC)
|
||||
|
||||
- [GitHub Discussions](https://github.com/sct/overseerr/discussions)
|
||||
close-issue: true
|
||||
lock-issue: true
|
||||
issue-lock-reason: 'off-topic'
|
||||
|
||||
7
CHANGELOG.md
Normal file
7
CHANGELOG.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## [1.0.2](https://github.com/Fallenbagel/jellyseerr/compare/v1.0.1...v1.0.2) (2022-04-20)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* fix usertype from local user to mediaServerType ([6d530d9](https://github.com/Fallenbagel/jellyseerr/commit/6d530d90280c929c7e8b185eb379e98c2d0a8ef9))
|
||||
* relax jellyfin url validation to allow local domains ([9c43ba9](https://github.com/Fallenbagel/jellyseerr/commit/9c43ba95e6c368b87acbfa8bac16c385605e7502)), closes [#123](https://github.com/Fallenbagel/jellyseerr/issues/123)
|
||||
@@ -23,12 +23,13 @@ Check out our [issue tracker](https://github.com/Fallenbagel/jellyseerr/issues).
|
||||
## Supported Architectures
|
||||
|
||||
Jellyseerr image support multiple architectures such as x86-64, arm64 and armv7.
|
||||
**NOTE: `:arm` and `:armv7` tag has been deprecated and replaced with `:latest`.**
|
||||
|
||||
| **Architecture** | **Tag** |
|
||||
| ---------------- | ------- |
|
||||
| x86-64 | latest |
|
||||
| ARM64 | arm |
|
||||
| ARMv7 | armv7 |
|
||||
| ARM64 | latest |
|
||||
| ARMv7 | latest |
|
||||
|
||||
## Getting Started
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "overseerr",
|
||||
"version": "0.1.0",
|
||||
"name": "jellyseerr",
|
||||
"version": "1.0.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "nodemon -e ts --watch server --watch overseerr-api.yml -e .json,.ts,.yml -x ts-node --files --project server/tsconfig.json server/index.ts",
|
||||
@@ -201,7 +201,7 @@
|
||||
]
|
||||
],
|
||||
"branches": [
|
||||
"master"
|
||||
"main"
|
||||
],
|
||||
"npmPublish": false,
|
||||
"publish": [
|
||||
@@ -211,8 +211,7 @@
|
||||
"COMMIT_TAG": "$GITHUB_SHA"
|
||||
},
|
||||
"imageNames": [
|
||||
"sctx/overseerr",
|
||||
"ghcr.io/sct/overseerr"
|
||||
"fallenbagel/jellyseerr"
|
||||
],
|
||||
"platforms": [
|
||||
"linux/amd64",
|
||||
|
||||
BIN
public/os_logo_square.png
Normal file
BIN
public/os_logo_square.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -163,11 +163,12 @@ class Media {
|
||||
this.mediaUrl4k = `https://app.plex.tv/desktop#!/server/${settings.plex.machineId}/details?key=%2Flibrary%2Fmetadata%2F${this.ratingKey4k}`;
|
||||
}
|
||||
} else {
|
||||
const pageName = process.env.JELLYFIN_TYPE === 'emby' ? 'item' : 'details';
|
||||
if (this.jellyfinMediaId) {
|
||||
this.mediaUrl = `${settings.jellyfin.hostname}/web/index.html#!/details?id=${this.jellyfinMediaId}&context=home&serverId=${settings.jellyfin.serverId}`;
|
||||
this.mediaUrl = `${settings.jellyfin.hostname}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId}&context=home&serverId=${settings.jellyfin.serverId}`;
|
||||
}
|
||||
if (this.jellyfinMediaId4k) {
|
||||
this.mediaUrl4k = `${settings.jellyfin.hostname}/web/index.html#!/details?id=${this.jellyfinMediaId4k}&context=home&serverId=${settings.jellyfin.serverId}`;
|
||||
this.mediaUrl4k = `${settings.jellyfin.hostname}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId4k}&context=home&serverId=${settings.jellyfin.serverId}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {
|
||||
ArrowCircleUpIcon,
|
||||
// BeakerIcon,
|
||||
BeakerIcon,
|
||||
CodeIcon,
|
||||
ServerIcon,
|
||||
} from '@heroicons/react/outline';
|
||||
@@ -36,7 +36,7 @@ const VersionStatus: React.FC<VersionStatusProps> = ({ onClick }) => {
|
||||
data.commitTag === 'local'
|
||||
? 'Keep it up! 👍'
|
||||
: data.version.startsWith('develop-')
|
||||
? intl.formatMessage(messages.streamstable)
|
||||
? intl.formatMessage(messages.streamdevelop)
|
||||
: intl.formatMessage(messages.streamstable);
|
||||
|
||||
return (
|
||||
@@ -52,16 +52,14 @@ const VersionStatus: React.FC<VersionStatusProps> = ({ onClick }) => {
|
||||
tabIndex={0}
|
||||
className={`flex items-center p-2 mx-2 text-xs transition duration-300 rounded-lg ring-1 ring-gray-700 ${
|
||||
data.updateAvailable
|
||||
? // ? 'bg-yellow-500 text-white hover:bg-yellow-400'
|
||||
'bg-gray-900 text-gray-300 hover:bg-gray-800'
|
||||
? 'bg-yellow-500 text-white hover:bg-yellow-400'
|
||||
: 'bg-gray-900 text-gray-300 hover:bg-gray-800'
|
||||
}`}
|
||||
>
|
||||
{data.commitTag === 'local' ? (
|
||||
<CodeIcon className="w-6 h-6" />
|
||||
) : data.version.startsWith('develop-') ? (
|
||||
// <BeakerIcon className="w-6 h-6" />
|
||||
<CodeIcon className="w-6 h-6" />
|
||||
<BeakerIcon className="w-6 h-6" />
|
||||
) : (
|
||||
<ServerIcon className="w-6 h-6" />
|
||||
)}
|
||||
@@ -74,8 +72,7 @@ const VersionStatus: React.FC<VersionStatusProps> = ({ onClick }) => {
|
||||
intl.formatMessage(messages.commitsbehind, {
|
||||
commitsBehind: data.commitsBehind,
|
||||
})
|
||||
) : // ) : data.commitsBehind === -1 ? (
|
||||
data.commitsBehind === 0 ? (
|
||||
) : data.commitsBehind === -1 ? (
|
||||
intl.formatMessage(messages.outofdate)
|
||||
) : (
|
||||
<code className="p-0 bg-transparent">
|
||||
|
||||
@@ -48,7 +48,10 @@ const JellyfinLogin: React.FC<JellyfinLoginProps> = ({
|
||||
if (initial) {
|
||||
const LoginSchema = Yup.object().shape({
|
||||
host: Yup.string()
|
||||
.url(intl.formatMessage(messages.validationhostformat))
|
||||
.matches(
|
||||
/^(?:(?:(?:https?):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/,
|
||||
intl.formatMessage(messages.validationhostformat)
|
||||
)
|
||||
.required(intl.formatMessage(messages.validationhostrequired)),
|
||||
email: Yup.string()
|
||||
.email(intl.formatMessage(messages.validationemailformat))
|
||||
|
||||
@@ -85,10 +85,10 @@ const SettingsAbout: React.FC = () => {
|
||||
title={intl.formatMessage(messages.version)}
|
||||
className="truncate"
|
||||
>
|
||||
{/* <code>{data.version.replace('develop-', '')}</code> */}
|
||||
<code>{data.version.replace('develop-', '')}</code>
|
||||
{status?.updateAvailable ? (
|
||||
<Badge badgeType="success" className="ml-2">
|
||||
{intl.formatMessage(messages.uptodate)}
|
||||
<Badge badgeType="warning" className="ml-2">
|
||||
{intl.formatMessage(messages.outofdate)}
|
||||
</Badge>
|
||||
) : (
|
||||
status?.commitTag !== 'local' && (
|
||||
@@ -115,12 +115,12 @@ const SettingsAbout: React.FC = () => {
|
||||
<List title={intl.formatMessage(messages.gettingsupport)}>
|
||||
<List.Item title={intl.formatMessage(messages.documentation)}>
|
||||
<a
|
||||
href="https://github.com/Fallenbagel/jellyseerr/blob/main/README.md"
|
||||
href="https://github.com/Fallenbagel/jellyseerr#readme"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="text-indigo-500 hover:underline"
|
||||
>
|
||||
https://github.com/Fallenbagel/jellyseerr/blob/main/README.md
|
||||
https://github.com/Fallenbagel/jellyseerr#readme
|
||||
</a>
|
||||
</List.Item>
|
||||
<List.Item title={intl.formatMessage(messages.githubdiscussions)}>
|
||||
|
||||
@@ -47,6 +47,8 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({
|
||||
unknownJob: 'Unknown Job',
|
||||
'plex-recently-added-scan': 'Plex Recently Added Scan',
|
||||
'plex-full-scan': 'Plex Full Library Scan',
|
||||
'jellyfin-recently-added-sync': 'Jellyfin Recently Added Scan',
|
||||
'jellyfin-full-sync': 'Jellyfin Full Library Scan',
|
||||
'radarr-scan': 'Radarr Scan',
|
||||
'sonarr-scan': 'Sonarr Scan',
|
||||
'download-sync': 'Download Sync',
|
||||
|
||||
@@ -58,6 +58,7 @@ const messages = defineMessages({
|
||||
deleteconfirm:
|
||||
'Are you sure you want to delete this user? All of their request data will be permanently removed.',
|
||||
localuser: 'Local User',
|
||||
mediaServerUser: '{mediaServerName} User',
|
||||
createlocaluser: 'Create Local User',
|
||||
creating: 'Creating…',
|
||||
create: 'Create',
|
||||
@@ -636,7 +637,13 @@ const UserList: React.FC = () => {
|
||||
</Badge>
|
||||
) : (
|
||||
<Badge badgeType="default">
|
||||
{intl.formatMessage(messages.localuser)}
|
||||
{intl.formatMessage(messages.mediaServerUser, {
|
||||
mediaServerName:
|
||||
settings.currentSettings.mediaServerType ===
|
||||
MediaServerType.PLEX
|
||||
? 'Plex'
|
||||
: 'Jellyfin',
|
||||
})}
|
||||
</Badge>
|
||||
)}
|
||||
</Table.TD>
|
||||
|
||||
@@ -597,6 +597,8 @@
|
||||
"components.Settings.SettingsLogs.copiedLogMessage": "S'ha copiat el missatge de registre al porta-retalls.",
|
||||
"components.Settings.SettingsJobsCache.runnow": "Executa-ho ara",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Exploració completa de la biblioteca plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Exploració completa de la biblioteca Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Exploració d'elements de Jellyfin afegits recentment",
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Pròxima execució",
|
||||
"components.Settings.SettingsJobsCache.jobstarted": "S'ha iniciat {jobname}.",
|
||||
"components.Settings.SettingsJobsCache.jobcancelled": "{jobname} s'ha cancel·lat.",
|
||||
|
||||
@@ -591,6 +591,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien",
|
||||
"components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben",
|
||||
"components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL",
|
||||
"components.RequestList.RequestItem.requested": "Angefragt",
|
||||
|
||||
@@ -388,6 +388,8 @@
|
||||
"components.Settings.SettingsJobsCache.process": "Διεργασία",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Σάρωση Plex για μέσα που προστέθηκαν πρόσφατα",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Σάρωση πλήρους βιβλιοθήκης Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Σάρωση πλήρους βιβλιοθήκης Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Σάρωση Jellyfin για μέσα που προστέθηκαν πρόσφατα",
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Επόμενη εκτέλεση",
|
||||
"components.Settings.SettingsJobsCache.jobtype": "Είδος",
|
||||
"components.Settings.SettingsJobsCache.jobstarted": "{jobname} ξεκίνησε.",
|
||||
|
||||
@@ -493,6 +493,8 @@
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Next Execution",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Plex Full Library Scan",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Plex Recently Added Scan",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Jellyfin Full Library Scan",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Jellyfin Recently Added Scan",
|
||||
"components.Settings.SettingsJobsCache.process": "Process",
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan",
|
||||
"components.Settings.SettingsJobsCache.runnow": "Run Now",
|
||||
|
||||
@@ -439,6 +439,8 @@
|
||||
"components.Settings.SettingsJobsCache.process": "Procesamiento",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución",
|
||||
"components.Settings.SettingsJobsCache.jobtype": "Tipo",
|
||||
"components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.",
|
||||
|
||||
@@ -598,6 +598,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Scan de Radarr",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan des ajouts récents aux bibliothèques Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Scan complet des bibliothèques Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Scan complet des bibliothèques Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan des ajouts récents aux bibliothèques Jellyfin",
|
||||
"components.Settings.Notifications.validationUrl": "Vous devez fournir un URL valide",
|
||||
"components.Settings.Notifications.botAvatarUrl": "L'URL de l'avatar de votre Bot",
|
||||
"components.Settings.SettingsUsers.userSettingsDescription": "Configurer les paramètres généraux et par défaut de l'utilisateur.",
|
||||
|
||||
@@ -478,6 +478,8 @@
|
||||
"components.Settings.SettingsJobsCache.process": "Folyamat",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Plex \"nemrégiben hozzáadott\" beolvasása",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Plex összes könyvtárának beolvasása",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Jellyfin összes könyvtárának beolvasása",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Jellyfin \"nemrégiben hozzáadott\" beolvasása",
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Következő végrehajtás",
|
||||
"components.Settings.SettingsJobsCache.jobtype": "Típus",
|
||||
"components.Settings.SettingsJobsCache.jobstarted": "{jobname} elindult.",
|
||||
|
||||
@@ -591,6 +591,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Scansione Radarr",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scansione aggiunti di recente su Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Scansione completa della libreria di Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Scansione completa della libreria di Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scansione aggiunti di recente su Jellyfin",
|
||||
"components.Settings.Notifications.validationUrl": "È necessario fornire un URL valido",
|
||||
"components.Settings.Notifications.botAvatarUrl": "URL avatar bot",
|
||||
"components.RequestList.RequestItem.requested": "Richiesto",
|
||||
|
||||
@@ -507,6 +507,8 @@
|
||||
"components.Settings.SettingsJobsCache.process": "Prosess",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Nylig lagt til i Plex-skann",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Full Plex-bibliotekskann",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Full Jellyfin-bibliotekskann",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Nylig lagt til i Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.nextexecution": "Kjøres igjen",
|
||||
"components.Settings.SettingsJobsCache.jobtype": "Type",
|
||||
"components.Settings.SettingsJobsCache.jobstarted": "{jobname} startet.",
|
||||
|
||||
@@ -591,6 +591,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Radarr-scan",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Plex recent toegevoegde scan",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Plex volledige bibliotheekscan",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "volledige bibliotheekscan Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Jellyfin recent toegevoegde scan",
|
||||
"components.Settings.Notifications.validationUrl": "Je moet een geldige URL opgeven",
|
||||
"components.Settings.Notifications.botAvatarUrl": "URL bot-avatar",
|
||||
"components.RequestList.RequestItem.requested": "Aangevraagd",
|
||||
|
||||
@@ -600,6 +600,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Escanemento do Radarr",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Recentemente Adicionado ao Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Escaneamento de Todas Bibliotecas do Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneamento de Todas Bibliotecas do Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Recentemente Adicionado ao Jellyfin",
|
||||
"components.UserProfile.norequests": "Nenhuma solicitação.",
|
||||
"components.UserProfile.UserSettings.unauthorizedDescription": "Você não tem permissão para modificar as configurações desse usuários.",
|
||||
"components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Você não pode modificar suas próprias permissões.",
|
||||
|
||||
@@ -591,6 +591,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Sincronizar Radarr",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Sincronizar Adicionado Recentemente do Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Sincronização Completa da Biblioteca Plex",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Sincronização Completa da Biblioteca Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Sincronizar Adicionado Recentemente do Jellyfin",
|
||||
"components.RequestList.RequestItem.requested": "Pedido",
|
||||
"components.RequestList.RequestItem.modifieduserdate": "{date} por {user}",
|
||||
"components.RequestList.RequestItem.modified": "Modificado",
|
||||
|
||||
@@ -570,6 +570,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Radarr-skanning",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Skanning av det senast tillagda i Plex",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Full Plex-biblioteksskanning",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Full Jellyfin-biblioteksskanning",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Skanning av det senast tillagda i Jellyfin",
|
||||
"components.Settings.SettingsJobsCache.download-sync-reset": "Hämta synkroniseringsåterställning",
|
||||
"components.Settings.SettingsJobsCache.download-sync": "Ladda ner synkronisering",
|
||||
"components.Settings.SettingsAbout.preferredmethod": "Föredraget",
|
||||
|
||||
@@ -598,6 +598,8 @@
|
||||
"components.Settings.SettingsJobsCache.radarr-scan": "Radarr 掃描",
|
||||
"components.Settings.SettingsJobsCache.plex-recently-added-scan": "Plex 最新添加掃描",
|
||||
"components.Settings.SettingsJobsCache.plex-full-scan": "Plex 媒體庫掃描",
|
||||
"components.Settings.SettingsJobsCache.jellyfin-full-scan": "Jellyfin 媒體庫掃描",
|
||||
"components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Jellyfin 最新添加掃描",
|
||||
"components.Discover.DiscoverTvLanguage.languageSeries": "{language}電視節目",
|
||||
"components.Discover.DiscoverMovieLanguage.languageMovies": "{language}電影",
|
||||
"components.UserProfile.ProfileHeader.userid": "使用者 ID:{userid}",
|
||||
|
||||
Reference in New Issue
Block a user