From ad043bbed1cd21d4b9c2819ad0da20af0e700d50 Mon Sep 17 00:00:00 2001 From: gryf Date: Fri, 18 Nov 2016 19:06:34 +0100 Subject: [PATCH] Added User object --- slack_backup/objects.py | 58 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/slack_backup/objects.py b/slack_backup/objects.py index d04c7c5..842a214 100644 --- a/slack_backup/objects.py +++ b/slack_backup/objects.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 """ Convinient object mapping from slack API reponses """ @@ -24,8 +25,22 @@ class Topic(Base): pass -class Channel(object): +class BaseObject(object): + def __init__(self): + self._id = None + self.name = None + + def __repr__(self): + return u"<%s %s>" % (str(hex(id(self))), self.__unicode__()) + + def __unicode__(self): + return u"%s, %s %s" % (self.__class__.__name__, self._id, self.name) + + +class Channel(BaseObject): def __init__(self, data_dict=None): + super().__init__() + data_dict = data_dict or {} self._id = data_dict['id'] @@ -40,9 +55,42 @@ class Channel(object): self.purpose = Purpose(data_dict.get('purpose')) self.topic = Topic(data_dict.get('topic')) - def __repr__(self): - return u"<%s %s>" % (str(hex(id(self))), self.__unicode__()) - def __unicode__(self): - return u"channel, %s %s" % (self._id, self.name) +class UserProfile(object): + def __init__(self, data_dict=None): + super().__init__() + data_dict = data_dict or {} + + self.first_name = data_dict.get("first_name", "") + self.last_name = data_dict.get("last_name", "") + self.real_name = data_dict.get("real_name", "") + self.email = data_dict.get("email", "") + self.skype = data_dict.get("skype", "") + self.phone = data_dict.get("phone", "") + self.image_24 = data_dict.get("image_24", "") + self.image_32 = data_dict.get("image_32", "") + self.image_48 = data_dict.get("image_48", "") + self.image_72 = data_dict.get("image_72", "") + self.image_192 = data_dict.get("image_192", "") + self.image_512 = data_dict.get("image_512", "") + + +class User(BaseObject): + def __init__(self, data_dict=None): + data_dict = data_dict or {} + + self._id = data_dict.get("id", "") + self.name = data_dict.get("name", "") + self.deleted = data_dict.get("deleted", False) + self.color = data_dict.get("color", "") + self.is_admin = data_dict.get("is_admin", False) + self.is_owner = data_dict.get("is_owner", False) + self.is_primary_owner = data_dict.get("is_primary_owner", False) + self.is_restricted = data_dict.get("is_restricted", False) + self.is_ultra_restricted = data_dict.get("is_ultra_restricted", False) + self.has_2fa = data_dict.get("has_2fa", False) + self.two_factor_type = data_dict.get("two_factor_type", "") + self.has_files = data_dict.get("has_files", False) + + self.profile = UserProfile(data_dict.get("profile"))