def encode_builtin(self, settings=False, complete=False, subscription=True): """ Encode this instance using only built-in types. """ id64 = self.id64() res = { 'id64' : id64, 'rating' : self.get_rating(), 'custom_name' : self.custom_name, } for key in self.dynamic_properties(): res[key] = getattr(self, key) if settings: psettings = PlayerSettings.get_by_id64(id64) psettings = psettings.encode_builtin(complete) if psettings else {} else: psettings = {} res['settings'] = psettings if subscription: psub = Subscription.get_by_id64(id64) psub = psub.encode_builtin() if psub else {} else: psub = {} res['subscription'] = psub res['message_count'] = PlayerMessage.count_for_user(id64) return res
def is_subscriber_id64(cls, id64): psub = Subscription.get_by_id64(id64) return psub.is_subscriber() if psub else False