def new_message(self, conversation):
   if not settings.get_notify_on_messagerecieve() or self.skype.skype_presence == Skype4Py.cusDoNotDisturb:
       return
   #conversation.skypereturn.Chat.Type == Skype4Py.chatTypeMultiChat and  
   if conversation.skypereturn.Chat.Topic:
       group_chat_title = unicode(conversation.skypereturn.Sender.FullName + " ► " + conversation.skypereturn.Chat.Topic)
   else:
       group_chat_title = unicode(conversation.display_name)
       
   icon = ""
   if settings.get_display_notification_avatars():
       avatar = SkypeAvatar(conversation.skypereturn.Sender.Handle)
       if avatar.filename:
           icon = '-i "'+avatar.filename+'" '
       else:
           icon = '-i "/usr/share/skype-wrapper/icons/skype-wrapper-48.svg" '
   fullname = conversation.skypereturn.Sender.FullName
   
   if not fullname:
       fullname = username
   
   #doesn't work
   unitylauncher.urgent(True)
   
   os.system(u'notify-send '+icon+'"'+group_chat_title+'" "'+conversation.skypereturn.Body+'"');
Example #2
0
 def new_message(self, conversation):
   if not settings.get_notify_on_messagerecieve() or self.skype.skype_presence == Skype4Py.cusDoNotDisturb:
       return
   #conversation.skypereturn.Chat.Type == Skype4Py.chatTypeMultiChat and  
   if conversation.skypereturn.Chat.Topic:
       group_chat_title = unicode(conversation.skypereturn.Sender.FullName + " ► " + conversation.skypereturn.Chat.Topic)
   else:
       group_chat_title = unicode(conversation.display_name)
       
   icon = ""
   if settings.get_display_notification_avatars():
       avatar = SkypeAvatar(conversation.skypereturn.Sender.Handle)
       if avatar.filename:
           icon = '-i "'+avatar.filename+'" '
       else:
           icon = '-i "/usr/share/skype-wrapper/icons/skype-wrapper-48.svg" '
   fullname = conversation.skypereturn.Sender.FullName
   
   if not fullname:
       fullname = username
   
   #doesn't work
   unitylauncher.urgent(True)
   
   os.system(u'notify-send '+icon+'"'+group_chat_title+'" "'+conversation.skypereturn.Body+'"');
Example #3
0
 def calls_ringing(self) :
   self.calls_ringing_started = True
   if self.call_ringing > 0:
       unitylauncher.urgent()
   else :
       self.calls_ringing_started = False
   return self.call_ringing > 0
 def calls_ringing(self) :
     self.calls_ringing_started = True
     if self.call_ringing > 0:
         if helpers.isUnityRunning():
             unitylauncher.urgent()
     else :
         self.calls_ringing_started = False
     return self.call_ringing > 0
Example #5
0
 def checkUnreadMessages(self):
   if not self.messageupdatepending:
       return AppletRunning
   self.messageupdatepending = False
   
   try :
       log("Checking unread messages", INFO)
       missedmessages = []
       if self.skype.MissedMessages:
           for mesg in self.skype.MissedMessages:
               missedmessages.append(mesg)
               
       unread = self.unread_conversations
       self.unread_conversations = {}
       logged = False
       if missedmessages and self.cb_show_indicator:
           for mesg in reversed(missedmessages):
               try:
                   id = mesg.Id
                   if self.skype.Friends:
                       for friend in self.skype.Friends:
                           if mesg.Chat.DialogPartner == friend.Handle:
                               display_name = friend.DisplayName or friend.FullName or friend.Handle
                               break                    
               except:
                   log("Couldn't get missed message Chat object", ERROR)
                   continue
               if not id in self.unread_conversations:
                   conversation = Conversation(display_name, mesg.Timestamp, mesg.Sender.Handle, mesg)
                   self.name_mappings[id] = mesg.Sender.Handle
                   self.unread_conversations[id] = conversation
               else:
                   self.unread_conversations[id].add_timestamp(mesg.Timestamp)
               
               if helpers.isUserBlacklisted(mesg.Sender.Handle):
                   self.unread_conversations[id].Read = True
                   
               if not self.unread_conversations[id].Read:
                   self.logMessage(self.unread_conversations[id])
                   self.cb_show_indicator(self.unread_conversations[id]) 
       
       if len(unread) != len(self.unread_conversations):
           CPUPRIORITY = 1
           
           if self.cb_read_within_skype:
               self.cb_read_within_skype()
               
           if helpers.haveUnity():
               unitylauncher.urgent(True)
               unitylauncher.urgent(False)
           
       #limitcpu()
       CPUPRIORITY = 0
   except Exception, e:
       log("Checking unread messages failed: "+str(e), WARNING)
 def CallStatus(self, call, status):
     global active_player, player_paused, volume_level
     if status == "RINGING":
         if settings.get_control_music_player() and active_player == "unknown" and player_paused == False:
             controlMusicPlayer()
         if settings.get_restore_volume():
             SaveRestore_Volume()
         self.call_ringing = self.call_ringing + 1
         self.calls[call.PartnerHandle] = call
     else:
         self.call_ringing = self.call_ringing - 1
 
     #if status == "INPROGRESS":LOCALHOLD
 
     if (status == "MISSED" or status == "FINISHED" or status == "REFUSED" or status == "CANCELLED") and call.PartnerHandle in self.calls:
         if settings.get_restore_volume():
             SaveRestore_Volume()
             volume_level = "unknown"
         if settings.get_control_music_player():
             controlMusicPlayer()
             active_player = "unknown"
             player_paused = False
         del self.calls[call.PartnerHandle]
     if helper.isUnityRunning():    
         unitylauncher.createCallsQuickList(self.calls, self.cb_call_action)
         unitylauncher.redrawQuicklist()  
 
     # wiggle the launcher
     if self.call_ringing > 0 and not self.calls_ringing_started:
         if helpers.isUnityRunning():
             unitylauncher.urgent()
         GObject.timeout_add(1000, self.calls_ringing)
     
     icon = ""
     if settings.get_display_notification_avatars():
         avatar = SkypeAvatar(call.PartnerHandle)
         if avatar.filename:
             icon = avatar.filename
         else:
             icon = wrapperPath + "/icons/skype-wrapper-48.svg"
 
     partner = call.PartnerDisplayName or call.PartnerHandle
     notification = ""
     if status == "RINGING" and (call.Type == "INCOMING_P2P" or call.Type == "INCOMING_PSTN"):
         notification = "* Incoming call";
     if status == "INPROGRESS":
         notification = "* Call started";
     if status == "MISSED":
         notification = "* Missed call";
     if status == "FINISHED":
         notification = "* Call ended";
     if status == "REMOTEHOLD":
         notification = "* Call put on hold";
     if notification:
         helpers.notify(partner, notification, icon, "call://"+call.PartnerHandle, True, True)  
Example #7
0
 def CallStatus(self, call, status):
   global active_player, player_paused, volume_level
   if status == "RINGING":
       if settings.get_control_music_player() and active_player == "unknown" and player_paused == False:
           controlMusicPlayer()
       if settings.get_restore_volume():
           SaveRestore_Volume()
       self.call_ringing = self.call_ringing + 1
       self.calls[call.PartnerHandle] = call
   else:
       self.call_ringing = self.call_ringing - 1
   
   #if status == "INPROGRESS":LOCALHOLD
   
   if (status == "MISSED" or status == "FINISHED" or status == "REFUSED" or status == "CANCELLED") and call.PartnerHandle in self.calls:
       if settings.get_restore_volume():
           SaveRestore_Volume()
           volume_level = "unknown"
       if settings.get_control_music_player():
           controlMusicPlayer()
           active_player = "unknown"
           player_paused = False
       del self.calls[call.PartnerHandle]
       
   unitylauncher.createCallsQuickList(self.calls, self.cb_call_action)
   unitylauncher.redrawQuicklist()  
   
   # wiggle the launcher
   if self.call_ringing > 0 and not self.calls_ringing_started:
       unitylauncher.urgent()
       GObject.timeout_add(1000, self.calls_ringing)
       
   icon = ""
   if settings.get_display_notification_avatars():
       avatar = SkypeAvatar(call.PartnerHandle)
       if avatar.filename:
           icon = avatar.filename
       else:
           icon = "/usr/share/skype-wrapper/icons/skype-wrapper-48.svg"
   
   partner = call.PartnerDisplayName or call.PartnerHandle
   notification = ""
   if status == "RINGING" and (call.Type == "INCOMING_P2P" or call.Type == "INCOMING_PSTN"):
       notification = "* Incoming call";
   if status == "INPROGRESS":
       notification = "* Call started";
   if status == "MISSED":
       notification = "* Missed call";
   if status == "FINISHED":
       notification = "* Call ended";
   if status == "REMOTEHOLD":
       notification = "* Call put on hold";
   if notification:
       helpers.notify(partner, notification, icon, "call://"+call.PartnerHandle, True, True)  
 def CallStatus(self, call, status): 
   if status == "RINGING":
       self.call_ringing = self.call_ringing + 1
       self.calls[call.PartnerHandle] = call
   else:
       self.call_ringing = self.call_ringing - 1
   
   #if status == "INPROGRESS":LOCALHOLD
   
   if (status == "MISSED" or status == "FINISHED") and call.PartnerHandle in self.calls:
       del self.calls[call.PartnerHandle]
       
   unitylauncher.createCallsQuickList(self.calls, self.cb_call_action)
   unitylauncher.redrawQuicklist()  
   
   # wiggle the launcher
   if self.call_ringing > 0 and not self.calls_ringing_started:
       unitylauncher.urgent()
       GObject.timeout_add(1000, self.calls_ringing)
       
   icon = ""
   if settings.get_display_notification_avatars():
       avatar = SkypeAvatar(call.PartnerHandle)
       if avatar.filename:
           icon = avatar.filename
       else:
           icon = "/usr/share/skype-wrapper/icons/skype-wrapper-48.svg"
   
   partner = call.PartnerDisplayName or call.PartnerHandle
   notification = ""
   if status == "RINGING":
       notification = "* Incoming call";
   if status == "INPROGRESS":
       notification = "* Call started";
   if status == "MISSED":
       notification = "* Missed call";
   if status == "FINISHED":
       notification = "* Call ended";
   if status == "REMOTEHOLD":
       notification = "* Call put on hold";
   if notification:
       helpers.notify(partner, notification, icon, "call://"+call.PartnerHandle, True, True)  
Example #9
0
    def checkUnreadMessages(self):
        try:
            log("Checking unread messages", INFO)
            missedmessages = []
            if self.skype.MissedMessages:
                for mesg in self.skype.MissedMessages:
                    missedmessages.append(mesg)

            unread = self.unread_conversations
            self.unread_conversations = {}
            if missedmessages and self.cb_show_indicator:
                for mesg in reversed(missedmessages):
                    try:
                        id = mesg.Id
                        display_name = mesg.Chat.FriendlyName
                    except:
                        log("Couldn't get missed message Chat object", ERROR)
                        continue
                    if not id in self.unread_conversations:
                        conversation = Conversation(display_name,
                                                    mesg.Timestamp,
                                                    mesg.Sender.Handle, mesg)
                        self.name_mappings[id] = mesg.Sender.Handle
                        self.unread_conversations[id] = conversation
                    else:
                        self.unread_conversations[id].add_timestamp(
                            mesg.Timestamp)

                    if helpers.isUserBlacklisted(mesg.Sender.Handle):
                        self.unread_conversations[id].Read = True

                    if not self.unread_conversations[id].Read:
                        self.logMessage(self.unread_conversations[id])
                        self.cb_show_indicator(self.unread_conversations[id])
            if len(unread) != len(
                    self.unread_conversations) and self.cb_read_within_skype:
                self.cb_read_within_skype()
                unitylauncher.urgent(True)
                unitylauncher.urgent(False)
            limitcpu()
        except Exception, e:
            log("Checking unread messages failed: " + str(e), WARNING)
 def checkUnreadMessages(self):
   try :
       log("Checking unread messages", INFO)
       missedmessages = []
       if self.skype.MissedMessages:
           for mesg in self.skype.MissedMessages:
               missedmessages.append(mesg)
               
       unread = self.unread_conversations
       self.unread_conversations = {}
       if missedmessages and self.cb_show_indicator:
           for mesg in reversed(missedmessages):
               try:
                   id = mesg.Id
                   display_name = mesg.Chat.FriendlyName
               except:
                   log("Couldn't get missed message Chat object", ERROR)
                   continue
               if not id in self.unread_conversations:
                   conversation = Conversation(display_name, mesg.Timestamp, mesg.Sender.Handle, mesg)
                   self.name_mappings[id] = mesg.Sender.Handle
                   self.unread_conversations[id] = conversation
               else:
                   self.unread_conversations[id].add_timestamp(mesg.Timestamp)
               
               if helpers.isUserBlacklisted(mesg.Sender.Handle):
                   self.unread_conversations[id].Read = True
                   
               if not self.unread_conversations[id].Read:
                   self.logMessage(self.unread_conversations[id])
                   self.cb_show_indicator(self.unread_conversations[id]) 
       if len(unread) != len(self.unread_conversations) and self.cb_read_within_skype:
           self.cb_read_within_skype()
           unitylauncher.urgent(True)
           unitylauncher.urgent(False)
       limitcpu()
   except Exception, e:
       log("Checking unread messages failed: "+str(e), WARNING)
 def checkFileTransfers(self) :
   if not self.filetransferupdatepending:
       return AppletRunning
   self.filetransferupdatepending = False
   try : 
       log("Checking file transfers", INFO)
       for transfer in self.skype.ActiveFileTransfers:
           if not transfer.Id in self.filetransfers:
               self.filetransfers[transfer.Id] = FileTransfer(transfer)
       
       for transfer in self.skype.FileTransfers:
           if transfer.Id in self.filetransfers:
               self.filetransfers[transfer.Id].update(transfer)
            
       oldincoming = self.incomingfilecount
       self.incomingfilecount = 0
       self.filetransfer = {
           "total" : -1,
           "current" : 0    
       }
       # should we send out notifications
       for k in self.filetransfers:
           v = self.filetransfers[k]
           if str(v.type) == "INCOMING":
               if "NEW" in str(v.status):
                   self.incomingfilecount = self.incomingfilecount + 1
                   if helpers.haveUnity():
                       unitylauncher.urgent(True)
               else:
                   if helpers.haveUnity():
                       unitylauncher.urgent(False)
               
               if settings.get_show_incoming_filetransfer_progress():
                   if "TRANSFERRING" in str(v.status) or "PAUSED" in str(v.status):
                       self.filetransfer['total'] = self.filetransfer['total'] + v.skype_transfer.FileSize
                       self.filetransfer['current'] = self.filetransfer['current'] + v.skype_transfer.BytesTransferred
                       self.incomingfilecount = self.incomingfilecount + 1
                       self.filetransferupdatepending = True
               
                   
               if not str(v.status) in v.notifications:
                   if "NEW" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " wants to send you a file")
                   if "TRANSFERRING" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " is busy sending you a file")
                       self.filetransferupdatepending = True
                   if "CANCELLED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* file transfer with " + v.partner+ " has been cancelled")
                   if "COMPLETED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " finished sending you a file")
                       if helpers.haveUnity():
                           unitylauncher.urgent(True)
                   if "FAILED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " failed to send you a file")
               else:
                   if "COMPLETED" in v.status:
                       if helpers.haveUnity():
                           unitylauncher.urgent(False)
                       
           if str(v.type) == "OUTGOING":                
               if settings.get_show_outgoing_filetransfer_progress():
                   if "TRANSFERRING" in str(v.status) or "PAUSED" in str(v.status) or "REMOTELY_PAUSED" in str(v.status):
                       self.filetransfer['total'] = self.filetransfer['total'] + v.skype_transfer.FileSize
                       self.filetransfer['current'] = self.filetransfer['current'] + v.skype_transfer.BytesTransferred
                       self.incomingfilecount = self.incomingfilecount + 1
                       self.filetransferupdatepending = True
                       
               if not str(v.status) in v.notifications:
                   if "TRANSFERRING" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " is busy receiving your file")
                       self.filetransferupdatepending = True
                   if "CANCELLED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* file transfer with " + v.partner+ " has been cancelled")
                   if "COMPLETED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " has received your file")                        
                   if "FAILED" in v.status:
                       self.filetransfers[k].notifications[str(v.status)] = str(v.status)
                       if self.cb_log_transfer:
                           self.cb_log_transfer(v, "* " + v.partner+ " failed to receive your file")
              
       if self.filetransfer['total'] > -1:
           currentprogress = float(self.filetransfer['current']) / float(self.filetransfer['total'])
           if helpers.haveUnity():
               unitylauncher.progress(currentprogress)
       else:
           if helpers.haveUnity():
               unitylauncher.progress(-1)
           
       if oldincoming != self.incomingfilecount and self.cb_read_within_skype:
           self.cb_read_within_skype()  
       #limitcpu()
   except Exception, e:
       log("Checking file transfers failed ("+str(e)+")", WARNING)
       raise
    def checkFileTransfers(self):
        if not self.filetransferupdatepending:
            return AppletRunning
        self.filetransferupdatepending = False
        try:
            log("Checking file transfers", INFO)
            for transfer in self.skype.ActiveFileTransfers:
                if not transfer.Id in self.filetransfers:
                    self.filetransfers[transfer.Id] = FileTransfer(transfer)

            for transfer in self.skype.FileTransfers:
                if transfer.Id in self.filetransfers:
                    self.filetransfers[transfer.Id].update(transfer)

            oldincoming = self.incomingfilecount
            self.incomingfilecount = 0
            self.filetransfer = {"total": -1, "current": 0}
            # should we send out notifications
            for k in self.filetransfers:
                v = self.filetransfers[k]
                if str(v.type) == "INCOMING":
                    if "NEW" in str(v.status):
                        self.incomingfilecount = self.incomingfilecount + 1
                        if helpers.haveUnity():
                            unitylauncher.urgent(True)
                    else:
                        if helpers.haveUnity():
                            unitylauncher.urgent(False)

                    if settings.get_show_incoming_filetransfer_progress():
                        if "TRANSFERRING" in str(v.status) or "PAUSED" in str(
                                v.status):
                            self.filetransfer['total'] = self.filetransfer[
                                'total'] + v.skype_transfer.FileSize
                            self.filetransfer['current'] = self.filetransfer[
                                'current'] + v.skype_transfer.BytesTransferred
                            self.incomingfilecount = self.incomingfilecount + 1
                            self.filetransferupdatepending = True

                    if not str(v.status) in v.notifications:
                        if "NEW" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " wants to send you a file")
                        if "TRANSFERRING" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " is busy sending you a file")
                            self.filetransferupdatepending = True
                        if "CANCELLED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* file transfer with " + v.partner +
                                    " has been cancelled")
                        if "COMPLETED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " finished sending you a file")
                            if helpers.haveUnity():
                                unitylauncher.urgent(True)
                        if "FAILED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " failed to send you a file")
                    else:
                        if "COMPLETED" in v.status:
                            if helpers.haveUnity():
                                unitylauncher.urgent(False)

                if str(v.type) == "OUTGOING":
                    if settings.get_show_outgoing_filetransfer_progress():
                        if "TRANSFERRING" in str(v.status) or "PAUSED" in str(
                                v.status) or "REMOTELY_PAUSED" in str(
                                    v.status):
                            self.filetransfer['total'] = self.filetransfer[
                                'total'] + v.skype_transfer.FileSize
                            self.filetransfer['current'] = self.filetransfer[
                                'current'] + v.skype_transfer.BytesTransferred
                            self.incomingfilecount = self.incomingfilecount + 1
                            self.filetransferupdatepending = True

                    if not str(v.status) in v.notifications:
                        if "TRANSFERRING" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " is busy receiving your file")
                            self.filetransferupdatepending = True
                        if "CANCELLED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* file transfer with " + v.partner +
                                    " has been cancelled")
                        if "COMPLETED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " has received your file")
                        if "FAILED" in v.status:
                            self.filetransfers[k].notifications[str(
                                v.status)] = str(v.status)
                            if self.cb_log_transfer:
                                self.cb_log_transfer(
                                    v, "* " + v.partner +
                                    " failed to receive your file")

            if self.filetransfer['total'] > -1:
                currentprogress = float(self.filetransfer['current']) / float(
                    self.filetransfer['total'])
                if helpers.haveUnity():
                    unitylauncher.progress(currentprogress)
            else:
                if helpers.haveUnity():
                    unitylauncher.progress(-1)

            if oldincoming != self.incomingfilecount and self.cb_read_within_skype:
                self.cb_read_within_skype()
            #limitcpu()
        except Exception, e:
            log("Checking file transfers failed (" + str(e) + ")", WARNING)
            raise