Example #1
0
    def _get_status_orb(self):

        if self.idle:
            return 'idle'
        elif self.away:
            return 'away'
        elif self.status == 'unknown':
            return 'offline'
        else:
            from common.Buddy import get_status_orb
            return get_status_orb(self)
Example #2
0
 def get_status_icon(self, contact, *a):
     "Returns an icon for a contact's status."
     if contact.blocked:
         orb = 'blocked'
     else:
         try:
             orb = contact.status_orb
         except AttributeError:
             orb = get_status_orb(contact)
     icon = skin.get('statusicons.'+orb)
     if max(icon.Width, icon.Height) > self.status_icon_size:
         return icon.Resized(self.status_icon_size)
     else:
         return icon
Example #3
0
class JabberResource(BuddyListElement):
    __metaclass__ = common.ActionMeta
    def __init__(self, jabber, jid, presence):
        self.jid = jid
        self._set_presence(presence)
#        self.presence = presence
        self.name = self.jid.as_unicode()
        self.alias = self.name
        self.protocol = jabber
        self.sms = False

    def _set_presence(self, presence):
        self.status_msg = presence.get_status()
        self.show       = presence.get_show()
        self.priority   = presence.get_priority()


    def get_status_message(self):
        return self.status_msg

    def set_status_message(self, val):
        self.status_msg = val

    status_message = property(get_status_message, set_status_message)

    @property
    def stripped_msg(self):
        msg = self.status_message
        return strip_html(msg) if msg else u''

    @property
    def service(self):
        if self.jid.domain == 'gmail.com':
            return GTALK
        else:
            return JABBER

    @property
    def away(self):
        if self.away_is_idle:
            return not self.available and not self.idle
        else:
            return not self.available

    @property
    def available(self):
        return self.show in jabber.available_show_types

    @property
    def away_is_idle(self):
        return self.service == GTALK

    #begin crap to make MetaContact happy
    @property
    def idle(self):
        if self.away_is_idle:
            return self.show == "away"
        else:
            return False

    @property
    def mobile(self):
        return self.jid.resource is not None and any(self.jid.resource.startswith(r) for r in MOBILE_RESOURCES())

    @property
    def icon(self): return False

    @property
    def pending_auth(self): return False

    @property
    def online(self): return True

    @property
    def blocked(self): return False
    #end crap to make MetaContact happy

    @property
    def long_show(self): return None

    status_orb = property(lambda self: get_status_orb(self))


    @property
    def sightly_status(self):
        status=self.show
        if status:
            return statuses.get(status,status.title())
        else:
            return _('Available')


    def __repr__(self):
        return '<JabberResource %s>' % self.jid.as_unicode()

    @action()
    def send_file(self, filepath = None):
        if filepath is None:
            from hub import Hub
            filepath = Hub.getInstance().get_file('Sending file to %s' % self.name)

        if filepath:
            self.protocol.send_file(self, fileinfo(filepath))