Files
jellyplist/jellyfin/objects.py
2024-11-22 12:29:29 +00:00

90 lines
5.4 KiB
Python

from ast import List
class PlaylistMetadata:
def __init__(self, playlist_data=None):
# Initialize with existing data if available, otherwise use default values
self.Id = playlist_data.get("Id") if playlist_data else None
self.Name = playlist_data.get("Name", "") if playlist_data else None
self.OriginalTitle = playlist_data.get("OriginalTitle", "") if playlist_data else None
self.ForcedSortName = playlist_data.get("ForcedSortName", "") if playlist_data else None
self.CommunityRating = playlist_data.get("CommunityRating", "") if playlist_data else None
self.CriticRating = playlist_data.get("CriticRating", "") if playlist_data else None
self.IndexNumber = playlist_data.get("IndexNumber", None) if playlist_data else None
self.AirsBeforeSeasonNumber = playlist_data.get("AirsBeforeSeasonNumber", "") if playlist_data else None
self.AirsAfterSeasonNumber = playlist_data.get("AirsAfterSeasonNumber", "") if playlist_data else None
self.AirsBeforeEpisodeNumber = playlist_data.get("AirsBeforeEpisodeNumber", "") if playlist_data else None
self.ParentIndexNumber = playlist_data.get("ParentIndexNumber", None) if playlist_data else None
self.DisplayOrder = playlist_data.get("DisplayOrder", "") if playlist_data else None
self.Album = playlist_data.get("Album", "") if playlist_data else None
self.AlbumArtists = playlist_data.get("AlbumArtists", []) if playlist_data else []
self.ArtistItems = playlist_data.get("ArtistItems", []) if playlist_data else []
self.Overview = playlist_data.get("Overview", "") if playlist_data else None
self.Status = playlist_data.get("Status", "") if playlist_data else None
self.AirDays = playlist_data.get("AirDays", []) if playlist_data else []
self.AirTime = playlist_data.get("AirTime", "") if playlist_data else None
self.Genres = playlist_data.get("Genres", []) if playlist_data else []
self.Tags = playlist_data.get("Tags", []) if playlist_data else list[str]
self.Studios = playlist_data.get("Studios", []) if playlist_data else []
self.PremiereDate = playlist_data.get("PremiereDate", None) if playlist_data else None
self.DateCreated = playlist_data.get("DateCreated", None) if playlist_data else None
self.EndDate = playlist_data.get("EndDate", None) if playlist_data else None
self.ProductionYear = playlist_data.get("ProductionYear", "") if playlist_data else None
self.Height = playlist_data.get("Height", "") if playlist_data else None
self.AspectRatio = playlist_data.get("AspectRatio", "") if playlist_data else None
self.Video3DFormat = playlist_data.get("Video3DFormat", "") if playlist_data else None
self.OfficialRating = playlist_data.get("OfficialRating", "") if playlist_data else None
self.CustomRating = playlist_data.get("CustomRating", "") if playlist_data else None
self.People = playlist_data.get("People", []) if playlist_data else []
self.LockData = playlist_data.get("LockData", False) if playlist_data else False
self.LockedFields = playlist_data.get("LockedFields", []) if playlist_data else []
self.ProviderIds = playlist_data.get("ProviderIds", {}) if playlist_data else {}
self.PreferredMetadataLanguage = playlist_data.get("PreferredMetadataLanguage", "") if playlist_data else None
self.PreferredMetadataCountryCode = playlist_data.get("PreferredMetadataCountryCode", "") if playlist_data else None
self.Taglines = playlist_data.get("Taglines", []) if playlist_data else []
def to_dict(self):
"""
Converts the PlaylistMetadata object to a dictionary.
"""
return {
"Id": self.Id,
"Name": self.Name,
"OriginalTitle": self.OriginalTitle,
"ForcedSortName": self.ForcedSortName,
"CommunityRating": self.CommunityRating,
"CriticRating": self.CriticRating,
"IndexNumber": self.IndexNumber,
"AirsBeforeSeasonNumber": self.AirsBeforeSeasonNumber,
"AirsAfterSeasonNumber": self.AirsAfterSeasonNumber,
"AirsBeforeEpisodeNumber": self.AirsBeforeEpisodeNumber,
"ParentIndexNumber": self.ParentIndexNumber,
"DisplayOrder": self.DisplayOrder,
"Album": self.Album,
"AlbumArtists": self.AlbumArtists,
"ArtistItems": self.ArtistItems,
"Overview": self.Overview,
"Status": self.Status,
"AirDays": self.AirDays,
"AirTime": self.AirTime,
"Genres": self.Genres,
"Tags": self.Tags,
"Studios": self.Studios,
"PremiereDate": self.PremiereDate,
"DateCreated": self.DateCreated,
"EndDate": self.EndDate,
"ProductionYear": self.ProductionYear,
"Height": self.Height,
"AspectRatio": self.AspectRatio,
"Video3DFormat": self.Video3DFormat,
"OfficialRating": self.OfficialRating,
"CustomRating": self.CustomRating,
"People": self.People,
"LockData": self.LockData,
"LockedFields": self.LockedFields,
"ProviderIds": self.ProviderIds,
"PreferredMetadataLanguage": self.PreferredMetadataLanguage,
"PreferredMetadataCountryCode": self.PreferredMetadataCountryCode,
"Taglines": self.Taglines,
}