chore: rename Jellyseerr -> Seerr, part 1 (#1984)

* chore: rename Jellyseerr -> Seerr, part 1

* chore: update Jellyfin bot name
This commit is contained in:
TheCatLady
2025-10-06 15:22:36 -07:00
committed by GitHub
parent e7aed5b594
commit 2e2d2a031b
25 changed files with 93 additions and 100 deletions

View File

@@ -19,7 +19,7 @@ body:
id: version
attributes:
label: Version
description: What version of Jellyseerr are you running? (You can find this in Settings → About → Version.)
description: What version of Seerr are you running? (You can find this in Settings → About → Version.)
validations:
required: true
- type: textarea
@@ -97,5 +97,5 @@ body:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](/../../CODE_OF_CONDUCT.md)
options:
- label: I agree to follow Jellyseerr's Code of Conduct
- label: I agree to follow Seerr's Code of Conduct
required: true

View File

@@ -2,7 +2,7 @@ blank_issues_enabled: false
contact_links:
- name: 💬 Support via Discord
url: https://discord.gg/seerr
about: Chat with other users and the Jellyseerr dev team
about: Chat with other users and the Seerr dev team
- name: 💬 Support via GitHub Discussions
url: https://github.com/fallenbagel/jellyseerr/discussions
url: https://github.com/seerr-team/seerr/discussions
about: Ask questions and discuss with other community members

View File

@@ -31,7 +31,7 @@ body:
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/fallenbagel/jellyseerr/blob/develop/CODE_OF_CONDUCT.md)
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/seerr-team/seerr/blob/develop/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow Jellyseerr's Code of Conduct
- label: I agree to follow Seerr's Code of Conduct
required: true

View File

@@ -33,7 +33,7 @@ jobs:
:wave: @${{ env.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 Jellyseerr.
to get help with Seerr.
- [Discord](https://discord.gg/seerr)
run: |

View File

@@ -1,4 +1,4 @@
# Contributing to Jellyseerr
# Contributing to Seerr
All help is welcome and greatly appreciated! If you would like to contribute to the project, the following instructions should get you started...
@@ -6,10 +6,10 @@ All help is welcome and greatly appreciated! If you would like to contribute to
> [!IMPORTANT]
>
> If you are using **any kind of AI assistance** to contribute to Jellyseerr,
> If you are using **any kind of AI assistance** to contribute to Seerr,
> it must be disclosed in the pull request.
If you are using any kind of AI assistance while contributing to Jellyseerr,
If you are using any kind of AI assistance while contributing to Seerr,
**this must be disclosed in the pull request**, along with the extent to
which AI assistance was used (e.g. docs only vs. code generation).
If PR responses are being generated by an AI, disclose that as well.
@@ -56,14 +56,14 @@ Please be respectful to maintainers and disclose AI assistance.
1. [Fork](https://help.github.com/articles/fork-a-repo/) the repository to your own GitHub account and [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device:
```bash
git clone https://github.com/YOUR_USERNAME/jellyseerr.git
cd jellyseerr/
git clone https://github.com/YOUR_USERNAME/seerr.git
cd seerr/
```
2. Add the remote `upstream`:
```bash
git remote add upstream https://github.com/fallenbagel/jellyseerr.git
git remote add upstream https://github.com/seerr-team/seerr.git
```
3. Create a new branch:
@@ -147,11 +147,11 @@ When adding new UI text, please try to adhere to the following guidelines:
8. If an additional description or "tip" is required for a form field, it should be styled using the global CSS class `label-tip`.
9. In full sentences, abbreviations like "info" or "auto" should not be used in place of full words, unless referencing the name/label of a specific setting or option which has an abbreviation in its name.
10. Do your best to check for spelling errors and grammatical mistakes.
11. Do not misspell "Jellyseerr."
11. Do not misspell "Seerr."
## Translation
We use [Weblate](https://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/) for our translations, and your help with localizing Jellyseerr would be greatly appreciated! If your language is not listed below, please [open a feature request](/../../issues/new/choose).
We use [Weblate](https://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-frontend/) for our translations, and your help with localizing Seerr would be greatly appreciated! If your language is not listed below, please [open a feature request](/../../issues/new/choose).
<a href="https://jellyseerr.borgcube.de/engage/jellysseerr/"><img src="https://jellyseerr.borgcube.de/widget/jellyseerr/multi-auto.svg" alt="Translation status" /></a>
@@ -197,4 +197,4 @@ DB_TYPE="postgres" DB_USER=postgres DB_PASS=postgres pnpm migration:generate ser
## Attribution
This contribution guide was inspired by the [Next.js](https://github.com/vercel/next.js), [Radarr](https://github.com/Radarr/Radarr), [Overseerr](https://github.com/sct/Overseerr) and [Ghostty](https://github.com/ghostty-org/ghostty) contribution guides.
This contribution guide was inspired by the [Next.js](https://github.com/vercel/next.js), [Radarr](https://github.com/Radarr/Radarr), and [Ghostty](https://github.com/ghostty-org/ghostty) contribution guides.

View File

@@ -2,16 +2,16 @@
<img src="./public/logo_full.svg" alt="Jellyseerr" style="margin: 20px 0;">
</p>
<p align="center">
<img src="https://github.com/fallenbagel/jellyseerr/actions/workflows/release.yml/badge.svg" alt="Jellyseerr Release" />
<img src="https://github.com/fallenbagel/jellyseerr/actions/workflows/ci.yml/badge.svg" alt="Jellyseerr CI">
<img src="https://github.com/seerr-team/seerr/actions/workflows/release.yml/badge.svg" alt="Seerr Release" />
<img src="https://github.com/seerr-team/seerr/actions/workflows/ci.yml/badge.svg" alt="Seerr CI">
</p>
<p align="center">
<a href="https://discord.gg/seerr"><img src="https://img.shields.io/discord/783137440809746482" alt="Discord"></a>
<a href="https://hub.docker.com/r/fallenbagel/jellyseerr"><img src="https://img.shields.io/docker/pulls/fallenbagel/jellyseerr" alt="Docker pulls"></a>
<a href="http://translate.jellyseerr.dev/engage/jellyseerr/"><img src="http://translate.jellyseerr.dev/widget/jellyseerr/jellyseerr-frontend/svg-badge.svg" alt="Translation status" /></a>
<a href="https://github.com/fallenbagel/jellyseerr/blob/develop/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/fallenbagel/jellyseerr"></a>
<a href="https://github.com/seerr-team/seerr/blob/develop/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/seerr-team/seerr"></a>
**Jellyseerr** is a free and open source software application for managing requests for your media library. It integrates with the media server of your choice: [Jellyfin](https://jellyfin.org), [Plex](https://plex.tv), and [Emby](https://emby.media/). In addition, it integrates with your existing services, such as **[Sonarr](https://sonarr.tv/)**, **[Radarr](https://radarr.video/)**.
**Seerr** is a free and open source software application for managing requests for your media library. It integrates with the media server of your choice: [Jellyfin](https://jellyfin.org), [Plex](https://plex.tv), and [Emby](https://emby.media/). In addition, it integrates with your existing services, such as **[Sonarr](https://sonarr.tv/)**, **[Radarr](https://radarr.video/)**.
## Current Features
@@ -19,7 +19,7 @@
- Support for **PostgreSQL** and **SQLite** databases.
- Supports Movies, Shows and Mixed Libraries.
- Ability to change email addresses for SMTP purposes.
- Easy integration with your existing services. Currently, Jellyseerr supports Sonarr and Radarr. More to come!
- Easy integration with your existing services. Currently, Seerr supports Sonarr and Radarr. More to come!
- Jellyfin/Emby/Plex library scan, to keep track of the titles which are already available.
- Customizable request system, which allows users to request individual seasons or movies in a friendly, easy-to-use interface.
- Incredibly simple request management UI. Don't dig through the app to simply approve recent requests!
@@ -32,7 +32,7 @@ With more features on the way! Check out our [issue tracker](/../../issues) to s
## Getting Started
Check out our documentation for instructions on how to install and run Jellyseerr:
Check out our documentation for instructions on how to install and run Seerr:
https://docs.jellyseerr.dev/getting-started/
@@ -48,26 +48,26 @@ Nix: [Nixpkg](https://search.nixos.org/packages?channel=unstable&show=jellyseerr
## Support
- Check out the [Jellyseerr Documentation](https://docs.jellyseerr.dev) before asking for help. Your question might already be in the docs!
- Check out the [Seerr Documentation](https://docs.jellyseerr.dev) before asking for help. Your question might already be in the docs!
- You can get support on [Discord](https://discord.gg/seerr).
- You can ask questions in the Help category of our [GitHub Discussions](/../../discussions).
- Bug reports and feature requests can be submitted via [GitHub Issues](/../../issues).
## API Documentation
You can access the API documentation from your local Jellyseerr install at http://localhost:5055/api-docs
You can access the API documentation from your local Seerr install at http://localhost:5055/api-docs
## Community
You can ask questions, share ideas, and more in [GitHub Discussions](/../../discussions).
If you would like to chat with other members of our growing community, [join the Jellyseerr Discord server](https://discord.gg/seerr)!
If you would like to chat with other members of our growing community, [join the Seerr Discord server](https://discord.gg/seerr)!
Our [Code of Conduct](./CODE_OF_CONDUCT.md) applies to all Jellyseerr community channels.
Our [Code of Conduct](./CODE_OF_CONDUCT.md) applies to all Seerr community channels.
## Contributing
You can help improve Jellyseerr too! Check out our [Contribution Guide](./CONTRIBUTING.md) to get started.
You can help improve Seerr too! Check out our [Contribution Guide](./CONTRIBUTING.md) to get started.
## Contributors ✨

View File

@@ -31,7 +31,7 @@ We will send a response indicating the next steps in handling your report. After
## Third-Party Dependencies
If you discover a security vulnerability in a third-party dependency used by Jellyseerr, please report it directly to the maintainers of that module. You can also notify us through our security advisory process so we can:
If you discover a security vulnerability in a third-party dependency used by Seerr, please report it directly to the maintainers of that module. You can also notify us through our security advisory process so we can:
- Track the issue and monitor for updates
- Apply patches or workarounds if available
@@ -47,5 +47,6 @@ Security updates and advisories will be published on our [GitHub Security Adviso
## Community
For general questions and support (non-security related):
- [GitHub Discussions](../../discussions)
- [Discord](https://discord.gg/seerr)
- [Discord](https://discord.gg/seerr)

View File

@@ -4,7 +4,7 @@
"vapidPublic": "BK_EpP8NDm9waor2zn6_S28o3ZYv4kCkJOfYpO3pt3W6jnPmxrgTLANUBNbbyaNatPnSQ12De9CeqSYQrqWzHTs",
"main": {
"apiKey": "testkey",
"applicationTitle": "Jellyseerr",
"applicationTitle": "Seerr",
"applicationUrl": "",
"cacheImages": false,
"defaultPermissions": 32,
@@ -70,7 +70,7 @@
"ignoreTls": false,
"requireTls": false,
"allowSelfSigned": false,
"senderName": "Jellyseerr"
"senderName": "Seerr"
}
},
"discord": {

View File

@@ -1,12 +1,12 @@
{
"name": "jellyseerr",
"name": "seerr",
"version": "0.1.0",
"private": true,
"packageManager": "pnpm@10.17.1",
"scripts": {
"preinstall": "npx only-allow pnpm",
"postinstall": "node postinstall-win.js",
"dev": "nodemon -e ts --watch server --watch jellyseerr-api.yml -e .json,.ts,.yml -x ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/index.ts",
"dev": "nodemon -e ts --watch server --watch seerr-api.yml -e .json,.ts,.yml -x ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/index.ts",
"build:server": "tsc --project server/tsconfig.json && copyfiles -u 2 server/templates/**/*.{html,pug} dist/templates && tsc-alias -p server/tsconfig.json",
"build:next": "next build",
"build": "pnpm build:next && pnpm build:server",
@@ -29,7 +29,7 @@
},
"repository": {
"type": "git",
"url": "https://github.com/fallenbagel/jellyseerr.git"
"url": "https://github.com/seerr-team/seerr.git"
},
"license": "MIT",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "Jellyseerr",
"short_name": "Jellyseerr",
"name": "Seerr",
"short_name": "Seerr",
"start_url": "./",
"icons": [
{

View File

@@ -1,19 +1,19 @@
openapi: '3.0.2'
info:
title: 'Jellyseerr API'
title: 'Seerr API'
version: '1.0.0'
description: |
This is the documentation for the Jellyseerr API backend.
This is the documentation for the Seerr API backend.
Two primary authentication methods are supported:
- **Cookie Authentication**: A valid sign-in to the `/auth/plex` or `/auth/local` will generate a valid authentication cookie.
- **API Key Authentication**: Sign-in is also possible by passing an `X-Api-Key` header along with a valid API Key generated by Jellyseerr.
- **API Key Authentication**: Sign-in is also possible by passing an `X-Api-Key` header along with a valid API Key generated by Seerr.
tags:
- name: public
description: Public API endpoints requiring no authentication.
- name: settings
description: Endpoints related to Jellyseerr's settings and configuration.
description: Endpoints related to Seerr's settings and configuration.
- name: auth
description: Endpoints related to logging in or out, and the currently authenticated user.
- name: users
@@ -229,7 +229,7 @@ components:
example: en
applicationTitle:
type: string
example: Jellyseerr
example: Seerr
applicationUrl:
type: string
example: https://os.example.com
@@ -1570,7 +1570,7 @@ components:
example: no-reply@example.com
senderName:
type: string
example: Jellyseerr
example: Seerr
smtpHost:
type: string
example: 127.0.0.1
@@ -2136,8 +2136,8 @@ components:
paths:
/status:
get:
summary: Get Jellyseerr status
description: Returns the current Jellyseerr status in a JSON object.
summary: Get Seerr status
description: Returns the current Seerr status in a JSON object.
security: []
tags:
- public

View File

@@ -76,14 +76,14 @@ class GithubAPI extends ExternalAPI {
);
}
public async getJellyseerrReleases({
public async getSeerrReleases({
take = 20,
}: {
take?: number;
} = {}): Promise<GitHubRelease[]> {
try {
const data = await this.get<GitHubRelease[]>(
'/repos/fallenbagel/jellyseerr/releases',
'/repos/seerr-team/seerr/releases',
{
params: {
per_page: take,
@@ -94,14 +94,14 @@ class GithubAPI extends ExternalAPI {
return data;
} catch (e) {
logger.warn(
"Failed to retrieve GitHub releases. This may be an issue on GitHub's end. Jellyseerr can't check if it's on the latest version.",
"Failed to retrieve GitHub releases. This may be an issue on GitHub's end. Seerr can't check if it's on the latest version.",
{ label: 'GitHub API', errorMessage: e.message }
);
return [];
}
}
public async getJellyseerrCommits({
public async getSeerrCommits({
take = 20,
branch = 'develop',
}: {
@@ -110,7 +110,7 @@ class GithubAPI extends ExternalAPI {
} = {}): Promise<GithubCommit[]> {
try {
const data = await this.get<GithubCommit[]>(
'/repos/fallenbagel/jellyseerr/commits',
'/repos/seerr-team/seerr/commits',
{
params: {
per_page: take,
@@ -122,7 +122,7 @@ class GithubAPI extends ExternalAPI {
return data;
} catch (e) {
logger.warn(
"Failed to retrieve GitHub commits. This may be an issue on GitHub's end. Jellyseerr can't check if it's on the latest version.",
"Failed to retrieve GitHub commits. This may be an issue on GitHub's end. Seerr can't check if it's on the latest version.",
{ label: 'GitHub API', errorMessage: e.message }
);
return [];

View File

@@ -131,13 +131,13 @@ class JellyfinAPI extends ExternalAPI {
const safeDeviceId =
deviceId && deviceId.length > 0
? deviceId
: Buffer.from('BOT_jellyseerr').toString('base64');
: Buffer.from('BOT_seerr').toString('base64');
let authHeaderVal: string;
if (authToken) {
authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}", Token="${authToken}"`;
authHeaderVal = `MediaBrowser Client="Seerr", Device="Seerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}", Token="${authToken}"`;
} else {
authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}"`;
authHeaderVal = `MediaBrowser Client="Seerr", Device="Seerr", DeviceId="${safeDeviceId}", Version="${getAppVersion()}"`;
}
super(

View File

@@ -124,9 +124,9 @@ class PlexAPI {
// },
options: {
identifier: settings.clientId,
product: 'Jellyseerr',
deviceName: 'Jellyseerr',
platform: 'Jellyseerr',
product: 'Seerr',
deviceName: 'Seerr',
platform: 'Seerr',
},
});
}

View File

@@ -43,9 +43,9 @@ import path from 'path';
import swaggerUi from 'swagger-ui-express';
import YAML from 'yamljs';
const API_SPEC_PATH = path.join(__dirname, '../jellyseerr-api.yml');
const API_SPEC_PATH = path.join(__dirname, '../seerr-api.yml');
logger.info(`Starting Jellyseerr version ${getAppVersion()}`);
logger.info(`Starting Seerr version ${getAppVersion()}`);
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

View File

@@ -192,7 +192,7 @@ class SlackAgent
type: 'actions',
elements: [
{
action_id: 'open-in-jellyseerr',
action_id: 'open-in-seerr',
type: 'button',
url,
text: {

View File

@@ -380,7 +380,7 @@ class Settings {
vapidPublic: '',
main: {
apiKey: '',
applicationTitle: 'Jellyseerr',
applicationTitle: 'Seerr',
applicationUrl: '',
cacheImages: false,
defaultPermissions: Permission.REQUEST,
@@ -447,7 +447,7 @@ class Settings {
ignoreTls: false,
requireTls: false,
allowSelfSigned: false,
senderName: 'Jellyseerr',
senderName: 'Seerr',
},
},
discord: {

View File

@@ -28,7 +28,7 @@ const migrateApiTokens = async (settings: any): Promise<AllSettings> => {
);
jellyfinClient.setUserId(admin.jellyfinUserId ?? '');
try {
const apiKey = await jellyfinClient.createApiToken('Jellyseerr');
const apiKey = await jellyfinClient.createApiToken('Seerr');
settings.jellyfin.apiKey = apiKey;
} catch {
throw new Error(

View File

@@ -44,7 +44,7 @@ export const runMigrations = async (
}
migrated = newSettings;
} catch (e) {
// we stop jellyseerr if the migration failed
// we stop Seerr if the migration failed
logger.error(
`Error while running migration '${migration}': ${e.message}`,
{
@@ -81,7 +81,7 @@ export const runMigrations = async (
await fs.writeFile(BACKUP_PATH, oldBackup.toString());
}
} catch (e) {
// we stop jellyseerr if the migration failed
// we stop Seerr if the migration failed
logger.error(
`Something went wrong while running settings migrations: ${e.message}`,
{

View File

@@ -130,7 +130,7 @@ class WatchlistSync {
switch (e.constructor) {
// During watchlist sync, these errors aren't necessarily
// a problem with Jellyseerr. Since we are auto syncing these constantly, it's
// a problem with Seerr. Since we are auto syncing these constantly, it's
// possible they are unexpectedly at their quota limit, for example. So we'll
// instead log these as debug messages.
case RequestPermissionError:

View File

@@ -161,7 +161,7 @@ authRoutes.post('/plex', async (req, res, next) => {
});
} else {
logger.info(
'Sign-in attempt from Plex user with access to the media server; creating new Jellyseerr user',
'Sign-in attempt from Plex user with access to the media server; creating new Seerr user',
{
label: 'API',
ip: req.ip,
@@ -277,16 +277,14 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
select: { id: true, jellyfinDeviceId: true },
});
let deviceId = 'BOT_jellyseerr';
let deviceId = 'BOT_seerr';
if (user && user.id === 1) {
// Admin is always BOT_jellyseerr
deviceId = 'BOT_jellyseerr';
// Admin is always BOT_seerr
deviceId = 'BOT_seerr';
} else if (user && user.jellyfinDeviceId) {
deviceId = user.jellyfinDeviceId;
} else if (body.username) {
deviceId = Buffer.from(`BOT_jellyseerr_${body.username}`).toString(
'base64'
);
deviceId = Buffer.from(`BOT_seerr_${body.username}`).toString('base64');
}
// First we need to attempt to log the user in to jellyfin
@@ -334,7 +332,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
if (missingAdminUser) {
logger.info(
'Sign-in attempt from Jellyfin user with access to the media server; creating initial admin user for Jellyseerr',
'Sign-in attempt from Jellyfin user with access to the media server; creating initial admin user for Seerr',
{
label: 'API',
ip: req.ip,
@@ -363,7 +361,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
await userRepository.save(user);
} else {
logger.info(
'Sign-in attempt from Jellyfin user with access to the media server; editing admin user for Jellyseerr',
'Sign-in attempt from Jellyfin user with access to the media server; editing admin user for Seerr',
{
label: 'API',
ip: req.ip,
@@ -400,7 +398,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
account.AccessToken,
deviceId
);
const apiKey = await jellyfinClient.createApiToken('Jellyseerr');
const apiKey = await jellyfinClient.createApiToken('Seerr');
const serverName = await jellyfinserver.getServerName();
@@ -456,7 +454,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
});
} else if (!user) {
logger.info(
'Sign-in attempt from Jellyfin user with access to the media server; creating new Jellyseerr user',
'Sign-in attempt from Jellyfin user with access to the media server; creating new Seerr user',
{
label: 'API',
ip: req.ip,
@@ -616,7 +614,7 @@ authRoutes.post('/local', async (req, res, next) => {
.getOne();
if (!user || !(await user.passwordMatch(body.password))) {
logger.warn('Failed sign-in attempt using invalid Jellyseerr password', {
logger.warn('Failed sign-in attempt using invalid Seerr password', {
label: 'API',
ip: req.ip,
email: body.email,
@@ -705,15 +703,12 @@ authRoutes.post('/local', async (req, res, next) => {
return res.status(200).json(user?.filter() ?? {});
} catch (e) {
logger.error(
'Something went wrong authenticating with Jellyseerr password',
{
label: 'API',
errorMessage: e.message,
ip: req.ip,
email: body.email,
}
);
logger.error('Something went wrong authenticating with Seerr password', {
label: 'API',
errorMessage: e.message,
ip: req.ip,
email: body.email,
});
return next({
status: 500,
message: 'Unable to authenticate.',
@@ -747,7 +742,7 @@ authRoutes.post('/logout', async (req, res, next) => {
await axios.delete(`${baseUrl}/Devices`, {
params: { Id: user.jellyfinDeviceId },
headers: {
'X-Emby-Authorization': `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="jellyseerr", Version="${getAppVersion()}", Token="${
'X-Emby-Authorization': `MediaBrowser Client="Seerr", Device="Seerr", DeviceId="seerr", Version="${getAppVersion()}", Token="${
settings.jellyfin.apiKey
}"`,
},

View File

@@ -23,11 +23,11 @@ async function initAvatarImageProxy() {
select: ['id', 'jellyfinUserId', 'jellyfinDeviceId'],
order: { id: 'ASC' },
});
const deviceId = admin?.jellyfinDeviceId || 'BOT_jellyseerr';
const deviceId = admin?.jellyfinDeviceId || 'BOT_seerr';
const authToken = getSettings().jellyfin.apiKey;
_avatarImageProxy = new ImageProxy('avatar', '', {
headers: {
'X-Emby-Authorization': `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${deviceId}", Version="${getAppVersion()}", Token="${authToken}"`,
'X-Emby-Authorization': `MediaBrowser Client="Seerr", Device="Seerr", DeviceId="${deviceId}", Version="${getAppVersion()}", Token="${authToken}"`,
},
});
}

View File

@@ -55,7 +55,7 @@ router.get<unknown, StatusResponse>('/status', async (req, res) => {
let commitsBehind = 0;
if (currentVersion.startsWith('develop-') && commitTag !== 'local') {
const commits = await githubApi.getJellyseerrCommits();
const commits = await githubApi.getSeerrCommits();
if (commits.length) {
const filteredCommits = commits.filter(
@@ -74,7 +74,7 @@ router.get<unknown, StatusResponse>('/status', async (req, res) => {
}
}
} else if (commitTag !== 'local') {
const releases = await githubApi.getJellyseerrReleases();
const releases = await githubApi.getSeerrReleases();
if (releases.length) {
const latestVersion = releases[0];
@@ -445,7 +445,7 @@ router.get('/certifications/tv', isAuthenticated(), async (req, res, next) => {
router.get('/', (_req, res) => {
return res.status(200).json({
api: 'Jellyseerr API',
api: 'Seerr API',
version: '1.0',
});
});

View File

@@ -633,7 +633,7 @@ router.post(
jellyfinUsername: jellyfinUser?.Name,
jellyfinUserId: jellyfinUser?.Id,
jellyfinDeviceId: Buffer.from(
`BOT_jellyseerr_${jellyfinUser?.Name ?? ''}`
`BOT_seerr_${jellyfinUser?.Name ?? ''}`
).toString('base64'),
email: jellyfinUser?.Name,
permissions: settings.main.defaultPermissions,

View File

@@ -312,7 +312,7 @@ userSettingsRoutes.post<{ authToken: string }>(
// Do not allow linking of an already linked account
if (await userRepository.exist({ where: { plexId: account.id } })) {
return res.status(422).json({
message: 'This Plex account is already linked to a Jellyseerr user',
message: 'This Plex account is already linked to a Seerr user',
});
}
@@ -415,15 +415,13 @@ userSettingsRoutes.post<{ username: string; password: string }>(
})
) {
return res.status(422).json({
message: 'The specified account is already linked to a Jellyseerr user',
message: 'The specified account is already linked to a Seerr user',
});
}
const hostname = getHostname();
const deviceId = Buffer.from(
req.user?.id === 1
? 'BOT_jellyseerr'
: `BOT_jellyseerr_${req.user.username ?? ''}`
req.user?.id === 1 ? 'BOT_seerr' : `BOT_seerr_${req.user.username ?? ''}`
).toString('base64');
const jellyfinserver = new JellyfinAPI(hostname, undefined, deviceId);
@@ -452,8 +450,7 @@ userSettingsRoutes.post<{ username: string; password: string }>(
})
) {
return res.status(422).json({
message:
'The specified account is already linked to a Jellyseerr user',
message: 'The specified account is already linked to a Seerr user',
});
}