0.1.1 #1
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.logger.info("Connecting to Jellyfin server...")
|
||||||
self.client = JellyfinClient()
|
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.client.config.data['auth.ssl'] = True
|
||||||
|
|
||||||
self.last_auth_time = None
|
self.last_auth_time = None
|
||||||
@@ -50,7 +50,7 @@ class JellyfinApiClient:
|
|||||||
session_id = session.get('Id')
|
session_id = session.get('Id')
|
||||||
current_item = self.client.jellyfin.get_now_playing(session_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.")
|
self.logger.info("Current playback information fetched.")
|
||||||
return self.to_model(current_item)
|
return self.to_model(current_item)
|
||||||
|
|
||||||
@@ -71,8 +71,6 @@ class JellyfinApiClient:
|
|||||||
elif media_type == 'Movie':
|
elif media_type == 'Movie':
|
||||||
return self.to_movie_model(item)
|
return self.to_movie_model(item)
|
||||||
|
|
||||||
raise ValueError(f"Unsupported media type: {media_type}")
|
|
||||||
|
|
||||||
def get_playback_info(self, media: dict) -> tuple[int, int]:
|
def get_playback_info(self, media: dict) -> tuple[int, int]:
|
||||||
play_state = media.get('PlayState')
|
play_state = media.get('PlayState')
|
||||||
|
|
||||||
@@ -89,6 +87,7 @@ class JellyfinApiClient:
|
|||||||
|
|
||||||
def to_music_model(self, item: dict) -> JellyfinMediaItem:
|
def to_music_model(self, item: dict) -> JellyfinMediaItem:
|
||||||
media_id = item.get('Id')
|
media_id = item.get('Id')
|
||||||
|
parent_id = item.get('ParentId')
|
||||||
premiere_date = item.get('PremiereDate')
|
premiere_date = item.get('PremiereDate')
|
||||||
premiere_year = datetime.fromisoformat(premiere_date).year if premiere_date else None
|
premiere_year = datetime.fromisoformat(premiere_date).year if premiere_date else None
|
||||||
|
|
||||||
@@ -99,7 +98,7 @@ class JellyfinApiClient:
|
|||||||
id=media_id,
|
id=media_id,
|
||||||
name=item.get('Name'),
|
name=item.get('Name'),
|
||||||
type=JellyfinMediaType.AUDIO,
|
type=JellyfinMediaType.AUDIO,
|
||||||
image_url=self.get_image_url(media_id),
|
image_url=self.get_image_url(parent_id),
|
||||||
start=start,
|
start=start,
|
||||||
end=end,
|
end=end,
|
||||||
metadata={
|
metadata={
|
||||||
@@ -128,11 +127,13 @@ class JellyfinApiClient:
|
|||||||
|
|
||||||
def to_episode_model(self, item: dict) -> JellyfinMediaItem:
|
def to_episode_model(self, item: dict) -> JellyfinMediaItem:
|
||||||
media_id = item.get('Id')
|
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')
|
season_number = item.get('ParentIndexNumber')
|
||||||
episode_number = item.get('IndexNumber')
|
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)
|
(start, end) = self.get_playback_info(item)
|
||||||
|
|
||||||
@@ -140,7 +141,7 @@ class JellyfinApiClient:
|
|||||||
id=media_id,
|
id=media_id,
|
||||||
name=item.get('Name'),
|
name=item.get('Name'),
|
||||||
type=JellyfinMediaType.EPISODE,
|
type=JellyfinMediaType.EPISODE,
|
||||||
image_url=self.get_image_url(media_id),
|
image_url=self.get_image_url(parent_id),
|
||||||
start=start,
|
start=start,
|
||||||
end=end,
|
end=end,
|
||||||
metadata={
|
metadata={
|
||||||
|
|||||||
Reference in New Issue
Block a user