Source code for webwhatsapi.objects.contact

from six import string_types

from .whatsapp_object import WhatsappObjectWithId, driver_needed
from ..helper import safe_str


[docs]class Contact(WhatsappObjectWithId): """ Class which represents a Contact on user's phone """ def __init__(self, js_obj, driver=None): """ :param js_obj: :param driver: :type driver: WhatsAPIDriver """ self.short_name = None self.push_name = None self.formatted_name = None self.profile_pic = None self.verified_name = None self.is_business = False super(Contact, self).__init__(js_obj, driver) if 'shortName' in js_obj: self.short_name = js_obj["shortName"] if 'pushname' in js_obj: self.push_name = js_obj["pushname"] if 'formattedName' in js_obj: self.formatted_name = js_obj["formattedName"] if 'profilePicThumbObj' in js_obj: self.profile_pic = js_obj["profilePicThumbObj"].get('eurl', None) if 'verifiedName' in js_obj: self.verified_name = js_obj["verifiedName"] self.is_business = js_obj["isBusiness"] @driver_needed def get_common_groups(self): return list(self.driver.contact_get_common_groups(self.id)) @driver_needed def get_chat(self): return self.driver.get_chat_from_id(self.id)
[docs] def get_safe_name(self): """ :return: String used for representation of the Contact :rtype: String """ name = (self.short_name or self.push_name or self.formatted_name) if (isinstance(name, string_types)): if self.is_business: safe_name = self.verified_name else: safe_name = safe_str(name) else: safe_name = "Unknown" return safe_name
def __repr__(self): safe_name = self.get_safe_name() return "<Contact {0} ({1})>".format(safe_name, self.id)