Skip to content

Commit 9e04a4f

Browse files
andrey-yantsenHellowlol
authored andcommitted
Populate subscription related fields in MyPlexAccount (#289)
* populate subscription related fields in MyPlexAccount * improve reading with .iter()
1 parent f26db5d commit 9e04a4f

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

plexapi/myplex.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,31 @@ def _loadData(self, data):
113113
self.title = data.attrib.get('title')
114114
self.username = data.attrib.get('username')
115115
self.uuid = data.attrib.get('uuid')
116+
subscription = data.find('subscription')
117+
118+
self.subscriptionActive = utils.cast(bool, subscription.attrib.get('active'))
119+
self.subscriptionStatus = subscription.attrib.get('status')
120+
self.subscriptionPlan = subscription.attrib.get('plan')
121+
122+
self.subscriptionFeatures = []
123+
for feature in subscription.iter('feature'):
124+
self.subscriptionFeatures.append(feature.attrib.get('id'))
125+
126+
roles = data.find('roles')
127+
self.roles = []
128+
if roles:
129+
for role in roles.iter('role'):
130+
self.roles.append(role.attrib('id'))
131+
132+
entitlements = data.find('entitlements')
133+
self.entitlements = []
134+
for entitlement in entitlements.iter('entitlement'):
135+
self.entitlements.append(entitlement.attrib.get('id'))
136+
116137
# TODO: Fetch missing MyPlexAccount attributes
117-
self.subscriptionActive = None # renamed on server
118-
self.subscriptionStatus = None # renamed on server
119-
self.subscriptionPlan = None # renmaed on server
120-
self.subscriptionFeatures = None # renamed on server
121-
self.roles = None
122-
self.entitlements = None
138+
self.profile_settings = None
139+
self.services = None
140+
self.joined_at = None
123141

124142
def device(self, name):
125143
""" Returns the :class:`~plexapi.myplex.MyPlexDevice` that matches the name specified.

0 commit comments

Comments
 (0)