Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop into main #477

Merged
merged 22 commits into from
Sep 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c1a47bd
fix(ui): corrected issues icon color (#3498)
OwsleyJr Jun 12, 2023
2c3f533
fix: adjust the plex watchlist sync schedule to have fuzziness (#3502)
sct Jun 13, 2023
d0836ce
fix: improved handling of edge case that could cause availability syn…
OwsleyJr Jun 14, 2023
a761b7d
fix: resolved issue with create slider causing incorrect form submiss…
OwsleyJr Jun 21, 2023
01de972
fix(statusbadge): handle missing season/episode number (#3526)
TheCatLady Jun 29, 2023
2816c66
fix: resolved user access check issue (#3551)
Jul 18, 2023
68c7b36
docs: add scorp200 as a contributor for code (#3555) [skip ci]
allcontributors[bot] Jul 18, 2023
83b008c
fix: handle issue causing incorrect media to change to unknown (#3516)
OwsleyJr Jul 24, 2023
b4191f9
feat(rating): added IMDB Radarr proxy (#3496)
marcofaggian Jul 28, 2023
46e21c4
docs: add marcofaggian as a contributor for code (#3563) [skip ci]
allcontributors[bot] Jul 28, 2023
cb63bf2
fix: Include all defaults in payload (#3538)
nemchik Jul 28, 2023
a686d31
docs: add nemchik as a contributor for code (#3565) [skip ci]
allcontributors[bot] Jul 28, 2023
f7b4dfc
fix(tautulli): only test connection if hostname is defined (#3573)
TheCatLady Aug 4, 2023
048fa96
fix: multiple notifications for available media
Aug 5, 2023
3171108
ci: remove docker caching to save space after build (#3574)
sct Aug 6, 2023
7980212
Merge pull request #444 from davidfdezalcoba/fix-repeat-notifications
Fallenbagel Aug 6, 2023
6a8406b
Merge remote-tracking branch 'upstream/develop' into develop
Fallenbagel Aug 7, 2023
30361f2
fix: repeat notifications for available 4k media
Aug 9, 2023
acc230f
Merge pull request #449 from davidfdezalcoba/fix-repeat-notifications-4k
Fallenbagel Aug 10, 2023
8685f57
fix(server/api/jellyfin.ts): use /Library/VirtualFolders Jellyfin API…
EthanArmbrust Aug 10, 2023
b7282ce
Merge pull request #450 from EthanArmbrust/libview
Fallenbagel Aug 11, 2023
3fd0168
Fix translation on fr.json (#446)
Gauvino Aug 21, 2023
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
27 changes: 27 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -872,6 +872,33 @@
"contributions": [
"code"
]
},
{
"login": "scorp200",
"name": "Anton K. (ai Doge)",
"avatar_url": "https://avatars.githubusercontent.com/u/9427639?v=4",
"profile": "http://aidoge.xyz",
"contributions": [
"code"
]
},
{
"login": "marcofaggian",
"name": "Marco Faggian",
"avatar_url": "https://avatars.githubusercontent.com/u/19221001?v=4",
"profile": "https://marcofaggian.com",
"contributions": [
"code"
]
},
{
"login": "nemchik",
"name": "Eric Nemchik",
"avatar_url": "https://avatars.githubusercontent.com/u/725456?v=4",
"profile": "http://nemchik.com/",
"contributions": [
"code"
]
}
],
"badgeTemplate": "<a href=\"#contributors-\"><img alt=\"All Contributors\" src=\"https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg\"/></a>",
Expand Down
18 changes: 1 addition & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,14 @@ jobs:
build_and_push:
name: Build & Publish Docker Images
if: github.ref == 'refs/heads/develop' && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: self-hosted
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Cache Docker layers
uses: actions/cache@v3
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@v2
with:
Expand All @@ -68,15 +61,6 @@ jobs:
COMMIT_TAG=${{ github.sha }}
tags: |
fallenbagel/jellyseerr:develop
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
- # Temporary fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

discord:
name: Send Discord Notification
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
<a href="https://discord.gg/ckbvBtDJgC"><img src="https://img.shields.io/badge/Discord-Chat-lightgrey" 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="https://github.com/fallenbagel/jellyseerr/blob/develop/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/fallenbagel/jellyseerr"></a>
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-98-orange.svg"/></a>
<!-- ALL-CONTRIBUTORS-BADGE:END -->

**Jellyseerr** is a free and open source software application for managing requests for your media library. It is a a fork of Overseerr built to bring support for Jellyfin & Emby media servers!

Expand Down
57 changes: 57 additions & 0 deletions overseerr-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5657,6 +5657,63 @@ paths:
audienceRating:
type: string
enum: ['Spilled', 'Upright']
/movie/{movieId}/ratingscombined:
get:
summary: Get RT and IMDB movie ratings combined
description: Returns ratings from RottenTomatoes and IMDB based on the provided movieId in a JSON object.
tags:
- movies
parameters:
- in: path
name: movieId
required: true
schema:
type: number
example: 337401
responses:
'200':
description: Ratings returned
content:
application/json:
schema:
type: object
properties:
rt:
type: object
properties:
title:
type: string
example: Mulan
year:
type: number
example: 2020
url:
type: string
example: 'http://www.rottentomatoes.com/m/mulan_2020/'
criticsScore:
type: number
example: 85
criticsRating:
type: string
enum: ['Rotten', 'Fresh', 'Certified Fresh']
audienceScore:
type: number
example: 65
audienceRating:
type: string
enum: ['Spilled', 'Upright']
imdb:
type: object
properties:
title:
type: string
example: I am Legend
url:
type: string
example: 'https://www.imdb.com/title/tt0480249'
criticsScore:
type: number
example: 6.5
/tv/{tvId}:
get:
summary: Get TV details
Expand Down
27 changes: 12 additions & 15 deletions server/api/jellyfin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,28 +171,25 @@ class JellyfinAPI {

public async getLibraries(): Promise<JellyfinLibrary[]> {
try {
const account = await this.axios.get<any>(
`/Users/${this.userId ?? 'Me'}/Views`
);
const libraries = await this.axios.get<any>('/Library/VirtualFolders');

const response: JellyfinLibrary[] = account.data.Items.filter(
(Item: any) => {
const response: JellyfinLibrary[] = libraries.data
.filter((Item: any) => {
return (
Item.Type === 'CollectionFolder' &&
Item.CollectionType !== 'music' &&
Item.CollectionType !== 'books' &&
Item.CollectionType !== 'musicvideos' &&
Item.CollectionType !== 'homevideos'
);
}
).map((Item: any) => {
return <JellyfinLibrary>{
key: Item.Id,
title: Item.Name,
type: Item.CollectionType === 'movies' ? 'movie' : 'show',
agent: 'jellyfin',
};
});
})
.map((Item: any) => {
return <JellyfinLibrary>{
key: Item.ItemId,
title: Item.Name,
type: Item.CollectionType === 'movies' ? 'movie' : 'show',
agent: 'jellyfin',
};
});

return response;
} catch (e) {
Expand Down
32 changes: 2 additions & 30 deletions server/api/plextv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,21 +82,6 @@ interface ServerResponse {
};
}

interface FriendResponse {
MediaContainer: {
User: {
$: {
id: string;
title: string;
username: string;
email: string;
thumb: string;
};
Server?: ServerResponse[];
}[];
};
}

interface UsersResponse {
MediaContainer: {
User: {
Expand Down Expand Up @@ -234,19 +219,6 @@ class PlexTvAPI extends ExternalAPI {
}
}

public async getFriends(): Promise<FriendResponse> {
const response = await this.axios.get('/pms/friends/all', {
transformResponse: [],
responseType: 'text',
});

const parsedXml = (await xml2js.parseStringPromise(
response.data
)) as FriendResponse;

return parsedXml;
}

public async checkUserAccess(userId: number): Promise<boolean> {
const settings = getSettings();

Expand All @@ -255,9 +227,9 @@ class PlexTvAPI extends ExternalAPI {
throw new Error('Plex is not configured!');
}

const friends = await this.getFriends();
const usersResponse = await this.getUsers();

const users = friends.MediaContainer.User;
const users = usersResponse.MediaContainer.User;

const user = users.find((u) => parseInt(u.$.id) === userId);

Expand Down
Loading