mirror of
https://github.com/pkkid/python-plexapi
synced 2024-09-20 13:51:57 +00:00
Add additional filter fields per media type
This commit is contained in:
parent
28f0585a97
commit
7146587b0d
1 changed files with 49 additions and 9 deletions
|
@ -854,7 +854,7 @@ class LibrarySection(PlexObject):
|
|||
elif fieldType.type == 'date':
|
||||
value = self._validateFieldValueDate(value)
|
||||
elif fieldType.type == 'integer':
|
||||
value = int(value)
|
||||
value = float(value) if '.' in str(value) else int(value)
|
||||
elif fieldType.type == 'string':
|
||||
value = str(value)
|
||||
elif fieldType.type in choiceTypes:
|
||||
|
@ -1856,18 +1856,21 @@ class FilteringType(PlexObject):
|
|||
('tagline', 'asc', 'Tagline'),
|
||||
('updatedAt', 'asc', 'Date Updated')
|
||||
]
|
||||
if self.type == 'season':
|
||||
additionalSorts.append(('titleSort', 'asc', 'Title'))
|
||||
if self.type == 'track':
|
||||
# Don't know what this is but it is valid
|
||||
additionalSorts.append(('absoluteIndex', 'asc', 'Absolute Index'))
|
||||
|
||||
prefix = '' if self.type == 'movie' else self.type + '.'
|
||||
if self.type == 'season':
|
||||
additionalSorts.extend([
|
||||
('titleSort', 'asc', 'Title')
|
||||
])
|
||||
elif self.type == 'track':
|
||||
# Don't know what this is but it is valid
|
||||
additionalSorts.extend([
|
||||
('absoluteIndex', 'asc', 'Absolute Index')
|
||||
])
|
||||
|
||||
manualSorts = []
|
||||
for sortField, sortDir, sortTitle in additionalSorts:
|
||||
sortXML = ('<Sort defaultDirection="%s" descKey="%s%s:desc" key="%s" title="%s" />'
|
||||
% (sortDir, prefix, sortField, sortField, sortTitle))
|
||||
sortXML = ('<Sort defaultDirection="%s" descKey="%s:desc" key="%s" title="%s" />'
|
||||
% (sortDir, sortField, sortField, sortTitle))
|
||||
manualSorts.append(self._manuallyLoadXML(sortXML, FilteringSort))
|
||||
|
||||
return manualSorts
|
||||
|
@ -1881,9 +1884,46 @@ class FilteringType(PlexObject):
|
|||
('guid', 'string', 'Guid'),
|
||||
('id', 'integer', 'Rating Key'),
|
||||
('index', 'integer', '%s Number' % self.type.capitalize()),
|
||||
('lastRatedAt', 'date', '%s Last Rated' % self.type.capitalize()),
|
||||
('updatedAt', 'date', 'Date Updated')
|
||||
]
|
||||
|
||||
if self.type == 'movie':
|
||||
additionalFields.extend([
|
||||
('audienceRating', 'integer', 'Audience Rating'),
|
||||
('rating', 'integer', 'Critic Rating'),
|
||||
('viewOffset', 'integer', 'View Offset')
|
||||
])
|
||||
elif self.type == 'show':
|
||||
additionalFields.extend([
|
||||
('audienceRating', 'integer', 'Audience Rating'),
|
||||
('originallyAvailableAt', 'date', 'Show Release Date'),
|
||||
('rating', 'integer', 'Critic Rating'),
|
||||
('unviewedLeafCount', 'integer', 'Episode Unplayed Count')
|
||||
])
|
||||
elif self.type == 'season':
|
||||
additionalFields.extend([
|
||||
('addedAt', 'date', 'Date Season Added'),
|
||||
('unviewedLeafCount', 'integer', 'Episode Unplayed Count'),
|
||||
('year', 'integer', 'Season Year')
|
||||
])
|
||||
elif self.type == 'episode':
|
||||
additionalFields.extend([
|
||||
('audienceRating', 'integer', 'Audience Rating'),
|
||||
('duration', 'integer', 'Duration'),
|
||||
('rating', 'integer', 'Critic Rating'),
|
||||
('viewOffset', 'integer', 'View Offset')
|
||||
])
|
||||
elif self.type == 'artist':
|
||||
additionalFields.extend([
|
||||
('lastViewedAt', 'date', 'Artist Last Played')
|
||||
])
|
||||
elif self.type == 'track':
|
||||
additionalFields.extend([
|
||||
('duration', 'integer', 'Duration'),
|
||||
('viewOffset', 'integer', 'View Offset')
|
||||
])
|
||||
|
||||
prefix = '' if self.type == 'movie' else self.type + '.'
|
||||
|
||||
manualFields = []
|
||||
|
|
Loading…
Reference in a new issue