add autopep8 formatting
This commit is contained in:
@@ -7,6 +7,7 @@ import logging
|
||||
import time
|
||||
import os
|
||||
|
||||
|
||||
class JellyfinApiClient:
|
||||
def __init__(self):
|
||||
machine_name = os.uname().nodename
|
||||
@@ -50,7 +51,8 @@ class JellyfinApiClient:
|
||||
session_id = session.get('Id')
|
||||
current_item = self.client.jellyfin.get_now_playing(session_id)
|
||||
|
||||
if current_item and current_item.get('Type') in ['Audio', 'Episode', 'Movie']:
|
||||
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)
|
||||
|
||||
@@ -78,7 +80,7 @@ class JellyfinApiClient:
|
||||
total_runtime_seconds = runtime_ticks // 10_000_000
|
||||
|
||||
playback_position_ticks = play_state.get('PositionTicks')
|
||||
playback_position_seconds = playback_position_ticks // 10_000_000
|
||||
playback_position_seconds = playback_position_ticks // 10_000_000
|
||||
|
||||
start = int(datetime.now().timestamp()) - playback_position_seconds
|
||||
end = start + total_runtime_seconds
|
||||
@@ -89,11 +91,11 @@ class JellyfinApiClient:
|
||||
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
|
||||
premiere_year = datetime.fromisoformat(
|
||||
premiere_date).year if premiere_date else None
|
||||
|
||||
(start, end) = self.get_playback_info(item)
|
||||
|
||||
|
||||
return JellyfinMediaItem(
|
||||
id=media_id,
|
||||
name=item.get('Name'),
|
||||
@@ -103,9 +105,8 @@ class JellyfinApiClient:
|
||||
end=end,
|
||||
metadata={
|
||||
'artist': item.get('AlbumArtist'),
|
||||
'album': f"{item.get('Album')} ({premiere_year})" if premiere_date else item.get('Album')
|
||||
}
|
||||
)
|
||||
'album': f"{
|
||||
item.get('Album')} ({premiere_year})" if premiere_date else item.get('Album')})
|
||||
|
||||
def to_movie_model(self, item: dict) -> JellyfinMediaItem:
|
||||
media_id = item.get('Id')
|
||||
@@ -133,7 +134,7 @@ class JellyfinApiClient:
|
||||
season_number = item.get('ParentIndexNumber')
|
||||
episode_number = item.get('IndexNumber')
|
||||
|
||||
subtitle=f"S{season_number:02}E{episode_number:02} of {series_name}"
|
||||
subtitle = f"S{season_number:02}E{episode_number:02} of {series_name}"
|
||||
|
||||
(start, end) = self.get_playback_info(item)
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
from pydantic import BaseModel
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class JellyfinMediaType(str, Enum):
|
||||
AUDIO = 'Audio'
|
||||
MOVIE = 'Movie'
|
||||
EPISODE = 'Episode'
|
||||
|
||||
|
||||
class JellyfinMediaItem(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
|
||||
@@ -2,18 +2,24 @@ from discord.models import DiscordRPCUpdatePayload
|
||||
from jellyfin.models import JellyfinMediaItem, JellyfinMediaType
|
||||
from pypresence.types import ActivityType
|
||||
|
||||
|
||||
def to_rpc_payload(media_item: JellyfinMediaItem) -> DiscordRPCUpdatePayload:
|
||||
if media_item.type == JellyfinMediaType.AUDIO:
|
||||
return DiscordRPCUpdatePayload(
|
||||
id=media_item.id,
|
||||
title=f"Listening to {media_item.name}",
|
||||
subtitle=f"by {media_item.metadata.get('artist', 'Unknown Artist')}",
|
||||
title=f"Listening to {
|
||||
media_item.name}",
|
||||
subtitle=f"by {
|
||||
media_item.metadata.get(
|
||||
'artist',
|
||||
'Unknown Artist')}",
|
||||
image_url=media_item.image_url,
|
||||
details=media_item.metadata.get('album', 'Unknown Album'),
|
||||
details=media_item.metadata.get(
|
||||
'album',
|
||||
'Unknown Album'),
|
||||
activity_type=ActivityType.LISTENING,
|
||||
start=media_item.start,
|
||||
end=media_item.end
|
||||
)
|
||||
end=media_item.end)
|
||||
elif media_item.type == JellyfinMediaType.MOVIE:
|
||||
return DiscordRPCUpdatePayload(
|
||||
id=media_item.id,
|
||||
|
||||
Reference in New Issue
Block a user