Merge pull request '0.1.1' (#1) from 0.1.1 into main
Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
4
changelog/0.1.1.md
Normal file
4
changelog/0.1.1.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 0.1.1
|
||||
|
||||
- Updated Jellyfin item fetching logic to skip items that are not `Audio`, `Episode`, or `Movie` types, preventing errors when unsupported media types are encountered
|
||||
- Updated Jellyfin image fetching logic to use `ParentId` for episodes and music tracks to ensure correct artwork is displayed in Discord Rich Presence
|
||||
@@ -16,7 +16,7 @@ class JellyfinApiClient:
|
||||
|
||||
self.logger.info("Connecting to Jellyfin server...")
|
||||
self.client = JellyfinClient()
|
||||
self.client.config.app('jellydisc', '0.1.0', machine_name, unique_id)
|
||||
self.client.config.app('jellydisc', '0.1.1', machine_name, unique_id)
|
||||
self.client.config.data['auth.ssl'] = True
|
||||
|
||||
self.last_auth_time = None
|
||||
@@ -50,7 +50,7 @@ class JellyfinApiClient:
|
||||
session_id = session.get('Id')
|
||||
current_item = self.client.jellyfin.get_now_playing(session_id)
|
||||
|
||||
if current_item:
|
||||
if current_item and current_item.get('Type') in ['Audio', 'Episode', 'Movie']:
|
||||
self.logger.info("Current playback information fetched.")
|
||||
return self.to_model(current_item)
|
||||
|
||||
@@ -71,8 +71,6 @@ class JellyfinApiClient:
|
||||
elif media_type == 'Movie':
|
||||
return self.to_movie_model(item)
|
||||
|
||||
raise ValueError(f"Unsupported media type: {media_type}")
|
||||
|
||||
def get_playback_info(self, media: dict) -> tuple[int, int]:
|
||||
play_state = media.get('PlayState')
|
||||
|
||||
@@ -89,6 +87,7 @@ class JellyfinApiClient:
|
||||
|
||||
def to_music_model(self, item: dict) -> JellyfinMediaItem:
|
||||
media_id = item.get('Id')
|
||||
parent_id = item.get('ParentId')
|
||||
premiere_date = item.get('PremiereDate')
|
||||
premiere_year = datetime.fromisoformat(premiere_date).year if premiere_date else None
|
||||
|
||||
@@ -99,7 +98,7 @@ class JellyfinApiClient:
|
||||
id=media_id,
|
||||
name=item.get('Name'),
|
||||
type=JellyfinMediaType.AUDIO,
|
||||
image_url=self.get_image_url(media_id),
|
||||
image_url=self.get_image_url(parent_id),
|
||||
start=start,
|
||||
end=end,
|
||||
metadata={
|
||||
@@ -128,11 +127,13 @@ class JellyfinApiClient:
|
||||
|
||||
def to_episode_model(self, item: dict) -> JellyfinMediaItem:
|
||||
media_id = item.get('Id')
|
||||
seris_name = item.get('SeriesName')
|
||||
parent = self.client.jellyfin.get_item(item.get('ParentId'))
|
||||
parent_id = item.get('ParentId')
|
||||
series_name = item.get('SeriesName')
|
||||
season_number = item.get('ParentIndexNumber')
|
||||
episode_number = item.get('IndexNumber')
|
||||
|
||||
subtitle=f"S{season_number:02}E{episode_number:02} of {seris_name}"
|
||||
subtitle=f"S{season_number:02}E{episode_number:02} of {series_name}"
|
||||
|
||||
(start, end) = self.get_playback_info(item)
|
||||
|
||||
@@ -140,7 +141,7 @@ class JellyfinApiClient:
|
||||
id=media_id,
|
||||
name=item.get('Name'),
|
||||
type=JellyfinMediaType.EPISODE,
|
||||
image_url=self.get_image_url(media_id),
|
||||
image_url=self.get_image_url(parent_id),
|
||||
start=start,
|
||||
end=end,
|
||||
metadata={
|
||||
|
||||
Reference in New Issue
Block a user