Add/Modify Events to handle all MAM namespaces
This commit is contained in:
		
							parent
							
								
									1d2320b0bb
								
							
						
					
					
						commit
						f8a028b553
					
				
					 1 changed files with 49 additions and 11 deletions
				
			
		| 
						 | 
					@ -1187,8 +1187,10 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
 | 
				
			||||||
                    return
 | 
					                    return
 | 
				
			||||||
                self.forwarded = True
 | 
					                self.forwarded = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        result = self.stanza.getTag('result', namespace=nbxmpp.NS_MAM)
 | 
					        result = self.stanza.getTag('result')
 | 
				
			||||||
        if result:
 | 
					        if result and result.getNamespace() in (nbxmpp.NS_MAM,
 | 
				
			||||||
 | 
					                                                nbxmpp.NS_MAM_1,
 | 
				
			||||||
 | 
					                                                nbxmpp.NS_MAM_2):
 | 
				
			||||||
            forwarded = result.getTag('forwarded', namespace=nbxmpp.NS_FORWARD)
 | 
					            forwarded = result.getTag('forwarded', namespace=nbxmpp.NS_FORWARD)
 | 
				
			||||||
            gajim.nec.push_incoming_event(MamMessageReceivedEvent(None,
 | 
					            gajim.nec.push_incoming_event(MamMessageReceivedEvent(None,
 | 
				
			||||||
                conn=self.conn, stanza=forwarded))
 | 
					                conn=self.conn, stanza=forwarded))
 | 
				
			||||||
| 
						 | 
					@ -1793,21 +1795,57 @@ class Archiving313PreferencesChangedReceivedEvent(nec.NetworkIncomingEvent):
 | 
				
			||||||
        self.default = None
 | 
					        self.default = None
 | 
				
			||||||
        self.id = self.stanza.getID()
 | 
					        self.id = self.stanza.getID()
 | 
				
			||||||
        self.answer = None
 | 
					        self.answer = None
 | 
				
			||||||
 | 
					        prefs = self.stanza.getTag('prefs')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if self.type_ != 'result':
 | 
					        if self.type_ != 'result' or not prefs:
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        prefs = self.stanza.getTag('prefs', namespace=nbxmpp.NS_MAM)
 | 
					        self.default = prefs.getAttr('default')
 | 
				
			||||||
        if prefs:
 | 
					 | 
				
			||||||
            self.default = prefs.getAttr('default')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for item in prefs.getTag('always').getTags('jid'):
 | 
					        for item in prefs.getTag('always').getTags('jid'):
 | 
				
			||||||
                self.items.append((item.getData(), 'Always'))
 | 
					            self.items.append((item.getData(), 'Always'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for item in prefs.getTag('never').getTags('jid'):
 | 
					        for item in prefs.getTag('never').getTags('jid'):
 | 
				
			||||||
                self.items.append((item.getData(), 'Never'))
 | 
					            self.items.append((item.getData(), 'Never'))
 | 
				
			||||||
        else:
 | 
					
 | 
				
			||||||
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ArchivingFinishedReceivedEvent(nec.NetworkIncomingEvent):
 | 
				
			||||||
 | 
					    name = 'archiving-finished'
 | 
				
			||||||
 | 
					    base_network_events = ['archiving-received']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def generate(self):
 | 
				
			||||||
 | 
					        self.conn = self.base_event.conn
 | 
				
			||||||
 | 
					        self.stanza = self.base_event.stanza
 | 
				
			||||||
 | 
					        self.type_ = self.base_event.type_
 | 
				
			||||||
 | 
					        self.fin = self.stanza.getTag('fin')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if self.type_ != 'result' or not self.fin:
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.queryid = self.fin.getAttr('queryid')
 | 
				
			||||||
 | 
					        if not self.queryid:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ArchivingFinishedLegacyReceivedEvent(nec.NetworkIncomingEvent):
 | 
				
			||||||
 | 
					    name = 'archiving-finished-legacy'
 | 
				
			||||||
 | 
					    base_network_events = ['raw-message-received']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def generate(self):
 | 
				
			||||||
 | 
					        self.conn = self.base_event.conn
 | 
				
			||||||
 | 
					        self.stanza = self.base_event.stanza
 | 
				
			||||||
 | 
					        self.type_ = self.base_event.type_
 | 
				
			||||||
 | 
					        self.fin = self.stanza.getTag('fin', namespace=nbxmpp.NS_MAM)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if not self.fin:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.queryid = self.fin.getAttr('queryid')
 | 
				
			||||||
 | 
					        if not self.queryid:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return True
 | 
					        return True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AccountCreatedEvent(nec.NetworkIncomingEvent):
 | 
					class AccountCreatedEvent(nec.NetworkIncomingEvent):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue