Skip to content

Commit e7c11da

Browse files
authored
Merge pull request #477 from Fallenbagel/develop
Merge develop into main
2 parents 5712e19 + 3fd0168 commit e7c11da

File tree

26 files changed

+1398
-914
lines changed

26 files changed

+1398
-914
lines changed

.all-contributorsrc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,33 @@
872872
"contributions": [
873873
"code"
874874
]
875+
},
876+
{
877+
"login": "scorp200",
878+
"name": "Anton K. (ai Doge)",
879+
"avatar_url": "https://avatars.githubusercontent.com/u/9427639?v=4",
880+
"profile": "http://aidoge.xyz",
881+
"contributions": [
882+
"code"
883+
]
884+
},
885+
{
886+
"login": "marcofaggian",
887+
"name": "Marco Faggian",
888+
"avatar_url": "https://avatars.githubusercontent.com/u/19221001?v=4",
889+
"profile": "https://marcofaggian.com",
890+
"contributions": [
891+
"code"
892+
]
893+
},
894+
{
895+
"login": "nemchik",
896+
"name": "Eric Nemchik",
897+
"avatar_url": "https://avatars.githubusercontent.com/u/725456?v=4",
898+
"profile": "http://nemchik.com/",
899+
"contributions": [
900+
"code"
901+
]
875902
}
876903
],
877904
"badgeTemplate": "<a href=\"#contributors-\"><img alt=\"All Contributors\" src=\"https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg\"/></a>",

.github/workflows/ci.yml

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,14 @@ jobs:
3131
build_and_push:
3232
name: Build & Publish Docker Images
3333
if: github.ref == 'refs/heads/develop' && !contains(github.event.head_commit.message, '[skip ci]')
34-
runs-on: self-hosted
34+
runs-on: ubuntu-20.04
3535
steps:
3636
- name: Checkout
3737
uses: actions/checkout@v3
3838
- name: Set up QEMU
3939
uses: docker/setup-qemu-action@v2
4040
- name: Set up Docker Buildx
4141
uses: docker/setup-buildx-action@v2
42-
- name: Cache Docker layers
43-
uses: actions/cache@v3
44-
with:
45-
path: /tmp/.buildx-cache
46-
key: ${{ runner.os }}-buildx-${{ github.sha }}
47-
restore-keys: |
48-
${{ runner.os }}-buildx-
4942
- name: Log in to Docker Hub
5043
uses: docker/login-action@v2
5144
with:
@@ -68,15 +61,6 @@ jobs:
6861
COMMIT_TAG=${{ github.sha }}
6962
tags: |
7063
fallenbagel/jellyseerr:develop
71-
cache-from: type=local,src=/tmp/.buildx-cache
72-
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
73-
- # Temporary fix
74-
# https://github.com/docker/build-push-action/issues/252
75-
# https://github.com/moby/buildkit/issues/1896
76-
name: Move cache
77-
run: |
78-
rm -rf /tmp/.buildx-cache
79-
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
8064
8165
discord:
8266
name: Send Discord Notification

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
<a href="https://discord.gg/ckbvBtDJgC"><img src="https://img.shields.io/badge/Discord-Chat-lightgrey" alt="Discord"></a>
66
<a href="https://hub.docker.com/r/fallenbagel/jellyseerr"><img src="https://img.shields.io/docker/pulls/fallenbagel/jellyseerr" alt="Docker pulls"></a>
77
<a href="https://github.com/fallenbagel/jellyseerr/blob/develop/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/fallenbagel/jellyseerr"></a>
8+
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
9+
<a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-98-orange.svg"/></a>
10+
<!-- ALL-CONTRIBUTORS-BADGE:END -->
811

912
**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!
1013

overseerr-api.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5657,6 +5657,63 @@ paths:
56575657
audienceRating:
56585658
type: string
56595659
enum: ['Spilled', 'Upright']
5660+
/movie/{movieId}/ratingscombined:
5661+
get:
5662+
summary: Get RT and IMDB movie ratings combined
5663+
description: Returns ratings from RottenTomatoes and IMDB based on the provided movieId in a JSON object.
5664+
tags:
5665+
- movies
5666+
parameters:
5667+
- in: path
5668+
name: movieId
5669+
required: true
5670+
schema:
5671+
type: number
5672+
example: 337401
5673+
responses:
5674+
'200':
5675+
description: Ratings returned
5676+
content:
5677+
application/json:
5678+
schema:
5679+
type: object
5680+
properties:
5681+
rt:
5682+
type: object
5683+
properties:
5684+
title:
5685+
type: string
5686+
example: Mulan
5687+
year:
5688+
type: number
5689+
example: 2020
5690+
url:
5691+
type: string
5692+
example: 'http://www.rottentomatoes.com/m/mulan_2020/'
5693+
criticsScore:
5694+
type: number
5695+
example: 85
5696+
criticsRating:
5697+
type: string
5698+
enum: ['Rotten', 'Fresh', 'Certified Fresh']
5699+
audienceScore:
5700+
type: number
5701+
example: 65
5702+
audienceRating:
5703+
type: string
5704+
enum: ['Spilled', 'Upright']
5705+
imdb:
5706+
type: object
5707+
properties:
5708+
title:
5709+
type: string
5710+
example: I am Legend
5711+
url:
5712+
type: string
5713+
example: 'https://www.imdb.com/title/tt0480249'
5714+
criticsScore:
5715+
type: number
5716+
example: 6.5
56605717
/tv/{tvId}:
56615718
get:
56625719
summary: Get TV details

server/api/jellyfin.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -171,28 +171,25 @@ class JellyfinAPI {
171171

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

178-
const response: JellyfinLibrary[] = account.data.Items.filter(
179-
(Item: any) => {
176+
const response: JellyfinLibrary[] = libraries.data
177+
.filter((Item: any) => {
180178
return (
181-
Item.Type === 'CollectionFolder' &&
182179
Item.CollectionType !== 'music' &&
183180
Item.CollectionType !== 'books' &&
184181
Item.CollectionType !== 'musicvideos' &&
185182
Item.CollectionType !== 'homevideos'
186183
);
187-
}
188-
).map((Item: any) => {
189-
return <JellyfinLibrary>{
190-
key: Item.Id,
191-
title: Item.Name,
192-
type: Item.CollectionType === 'movies' ? 'movie' : 'show',
193-
agent: 'jellyfin',
194-
};
195-
});
184+
})
185+
.map((Item: any) => {
186+
return <JellyfinLibrary>{
187+
key: Item.ItemId,
188+
title: Item.Name,
189+
type: Item.CollectionType === 'movies' ? 'movie' : 'show',
190+
agent: 'jellyfin',
191+
};
192+
});
196193

197194
return response;
198195
} catch (e) {

server/api/plextv.ts

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -82,21 +82,6 @@ interface ServerResponse {
8282
};
8383
}
8484

85-
interface FriendResponse {
86-
MediaContainer: {
87-
User: {
88-
$: {
89-
id: string;
90-
title: string;
91-
username: string;
92-
email: string;
93-
thumb: string;
94-
};
95-
Server?: ServerResponse[];
96-
}[];
97-
};
98-
}
99-
10085
interface UsersResponse {
10186
MediaContainer: {
10287
User: {
@@ -234,19 +219,6 @@ class PlexTvAPI extends ExternalAPI {
234219
}
235220
}
236221

237-
public async getFriends(): Promise<FriendResponse> {
238-
const response = await this.axios.get('/pms/friends/all', {
239-
transformResponse: [],
240-
responseType: 'text',
241-
});
242-
243-
const parsedXml = (await xml2js.parseStringPromise(
244-
response.data
245-
)) as FriendResponse;
246-
247-
return parsedXml;
248-
}
249-
250222
public async checkUserAccess(userId: number): Promise<boolean> {
251223
const settings = getSettings();
252224

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

258-
const friends = await this.getFriends();
230+
const usersResponse = await this.getUsers();
259231

260-
const users = friends.MediaContainer.User;
232+
const users = usersResponse.MediaContainer.User;
261233

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

0 commit comments

Comments
 (0)