fix some bad merge
This commit is contained in:
parent
b47248f09d
commit
f7b0659c04
|
@ -2128,310 +2128,3 @@ ConnectionJingle, ConnectionIBBytestream):
|
||||||
con.RegisterHandler('iq', self._PubkeyGetCB, 'get', common.xmpp.NS_PUBKEY_PUBKEY)
|
con.RegisterHandler('iq', self._PubkeyGetCB, 'get', common.xmpp.NS_PUBKEY_PUBKEY)
|
||||||
con.RegisterHandler('iq', self._PubkeyResultCB, 'result', common.xmpp.NS_PUBKEY_PUBKEY)
|
con.RegisterHandler('iq', self._PubkeyResultCB, 'result', common.xmpp.NS_PUBKEY_PUBKEY)
|
||||||
|
|
||||||
class HelperEvent:
|
|
||||||
def get_jid_resource(self):
|
|
||||||
if self.id_ in self.conn.groupchat_jids:
|
|
||||||
self.fjid = self.conn.groupchat_jids[self.id_]
|
|
||||||
del self.conn.groupchat_jids[self.id_]
|
|
||||||
else:
|
|
||||||
self.fjid = helpers.get_full_jid_from_iq(self.iq_obj)
|
|
||||||
self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
|
|
||||||
|
|
||||||
def get_id(self):
|
|
||||||
self.id_ = self.iq_obj.getID()
|
|
||||||
|
|
||||||
class HttpAuthReceivedEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'http-auth-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
self.opt = gajim.config.get_per('accounts', self.conn.name, 'http_auth')
|
|
||||||
self.iq_id = self.iq_obj.getTagAttr('confirm', 'id')
|
|
||||||
self.method = self.iq_obj.getTagAttr('confirm', 'method')
|
|
||||||
self.url = self.iq_obj.getTagAttr('confirm', 'url')
|
|
||||||
# In case it's a message with a body
|
|
||||||
self.msg = self.iq_obj.getTagData('body')
|
|
||||||
return True
|
|
||||||
|
|
||||||
class LastResultReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
|
||||||
name = 'last-result-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
self.get_id()
|
|
||||||
self.get_jid_resource()
|
|
||||||
if self.id_ in self.conn.last_ids:
|
|
||||||
self.conn.last_ids.remove(self.id_)
|
|
||||||
|
|
||||||
self.status = ''
|
|
||||||
self.seconds = -1
|
|
||||||
|
|
||||||
if self.iq_obj.getType() == 'error':
|
|
||||||
return True
|
|
||||||
|
|
||||||
qp = self.iq_obj.getTag('query')
|
|
||||||
sec = qp.getAttr('seconds')
|
|
||||||
self.status = qp.getData()
|
|
||||||
try:
|
|
||||||
self.seconds = int(sec)
|
|
||||||
except Exception:
|
|
||||||
return
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class VersionResultReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
|
||||||
name = 'version-result-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
self.get_id()
|
|
||||||
self.get_jid_resource()
|
|
||||||
if self.id_ in self.conn.version_ids:
|
|
||||||
self.conn.version_ids.remove(self.id_)
|
|
||||||
|
|
||||||
self.client_info = ''
|
|
||||||
self.os_info = ''
|
|
||||||
|
|
||||||
if self.iq_obj.getType() == 'error':
|
|
||||||
return True
|
|
||||||
|
|
||||||
qp = self.iq_obj.getTag('query')
|
|
||||||
if qp.getTag('name'):
|
|
||||||
self.client_info += qp.getTag('name').getData()
|
|
||||||
if qp.getTag('version'):
|
|
||||||
self.client_info += ' ' + qp.getTag('version').getData()
|
|
||||||
if qp.getTag('os'):
|
|
||||||
self.os_info += qp.getTag('os').getData()
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class TimeResultReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
|
|
||||||
name = 'time-result-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
self.get_id()
|
|
||||||
self.get_jid_resource()
|
|
||||||
if self.id_ in self.conn.entity_time_ids:
|
|
||||||
self.conn.entity_time_ids.remove(self.id_)
|
|
||||||
|
|
||||||
self.time_info = ''
|
|
||||||
|
|
||||||
if self.iq_obj.getType() == 'error':
|
|
||||||
return True
|
|
||||||
|
|
||||||
qp = self.iq_obj.getTag('time')
|
|
||||||
if not qp:
|
|
||||||
# wrong answer
|
|
||||||
return
|
|
||||||
tzo = qp.getTag('tzo').getData()
|
|
||||||
if tzo.lower() == 'z':
|
|
||||||
tzo = '0:0'
|
|
||||||
tzoh, tzom = tzo.split(':')
|
|
||||||
utc_time = qp.getTag('utc').getData()
|
|
||||||
ZERO = datetime.timedelta(0)
|
|
||||||
class UTC(datetime.tzinfo):
|
|
||||||
def utcoffset(self, dt):
|
|
||||||
return ZERO
|
|
||||||
def tzname(self, dt):
|
|
||||||
return "UTC"
|
|
||||||
def dst(self, dt):
|
|
||||||
return ZERO
|
|
||||||
|
|
||||||
class contact_tz(datetime.tzinfo):
|
|
||||||
def utcoffset(self, dt):
|
|
||||||
return datetime.timedelta(hours=int(tzoh), minutes=int(tzom))
|
|
||||||
def tzname(self, dt):
|
|
||||||
return "remote timezone"
|
|
||||||
def dst(self, dt):
|
|
||||||
return ZERO
|
|
||||||
|
|
||||||
try:
|
|
||||||
t = datetime.datetime.strptime(utc_time, '%Y-%m-%dT%H:%M:%SZ')
|
|
||||||
t = t.replace(tzinfo=UTC())
|
|
||||||
self.time_info = t.astimezone(contact_tz()).strftime('%c')
|
|
||||||
except ValueError, e:
|
|
||||||
log.info('Wrong time format: %s' % str(e))
|
|
||||||
return
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class GMailQueryReceivedEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'gmail-notify'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
if not self.iq_obj.getTag('mailbox'):
|
|
||||||
return
|
|
||||||
mb = self.iq_obj.getTag('mailbox')
|
|
||||||
if not mb.getAttr('url'):
|
|
||||||
return
|
|
||||||
self.conn.gmail_url = mb.getAttr('url')
|
|
||||||
if mb.getNamespace() != common.xmpp.NS_GMAILNOTIFY:
|
|
||||||
return
|
|
||||||
self.newmsgs = mb.getAttr('total-matched')
|
|
||||||
if not self.newmsgs:
|
|
||||||
return
|
|
||||||
if self.newmsgs == '0':
|
|
||||||
return
|
|
||||||
# there are new messages
|
|
||||||
self.gmail_messages_list = []
|
|
||||||
if mb.getTag('mail-thread-info'):
|
|
||||||
gmail_messages = mb.getTags('mail-thread-info')
|
|
||||||
for gmessage in gmail_messages:
|
|
||||||
unread_senders = []
|
|
||||||
for sender in gmessage.getTag('senders').getTags(
|
|
||||||
'sender'):
|
|
||||||
if sender.getAttr('unread') != '1':
|
|
||||||
continue
|
|
||||||
if sender.getAttr('name'):
|
|
||||||
unread_senders.append(sender.getAttr('name') + \
|
|
||||||
'< ' + sender.getAttr('address') + '>')
|
|
||||||
else:
|
|
||||||
unread_senders.append(sender.getAttr('address'))
|
|
||||||
|
|
||||||
if not unread_senders:
|
|
||||||
continue
|
|
||||||
gmail_subject = gmessage.getTag('subject').getData()
|
|
||||||
gmail_snippet = gmessage.getTag('snippet').getData()
|
|
||||||
tid = int(gmessage.getAttr('tid'))
|
|
||||||
if not self.conn.gmail_last_tid or \
|
|
||||||
tid > self.conn.gmail_last_tid:
|
|
||||||
self.conn.gmail_last_tid = tid
|
|
||||||
self.gmail_messages_list.append({
|
|
||||||
'From': unread_senders,
|
|
||||||
'Subject': gmail_subject,
|
|
||||||
'Snippet': gmail_snippet,
|
|
||||||
'url': gmessage.getAttr('url'),
|
|
||||||
'participation': gmessage.getAttr('participation'),
|
|
||||||
'messages': gmessage.getAttr('messages'),
|
|
||||||
'date': gmessage.getAttr('date')})
|
|
||||||
self.conn.gmail_last_time = int(mb.getAttr('result-time'))
|
|
||||||
|
|
||||||
self.jid = gajim.get_jid_from_account(self.name)
|
|
||||||
log.debug(('You have %s new gmail e-mails on %s.') % (self.newmsgs,
|
|
||||||
self.jid))
|
|
||||||
return True
|
|
||||||
|
|
||||||
class RosterItemExchangeEvent(nec.NetworkIncomingEvent, HelperEvent):
|
|
||||||
name = 'roster-item-exchange-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
self.get_id()
|
|
||||||
self.get_jid_resource()
|
|
||||||
self.exchange_items_list = {}
|
|
||||||
items_list = self.iq_obj.getTag('x').getChildren()
|
|
||||||
if not items_list:
|
|
||||||
return
|
|
||||||
self.action = items_list[0].getAttr('action')
|
|
||||||
if self.action is None:
|
|
||||||
self.action = 'add'
|
|
||||||
for item in self.iq_obj.getTag('x', namespace=common.xmpp.NS_ROSTERX).\
|
|
||||||
getChildren():
|
|
||||||
try:
|
|
||||||
jid = helpers.parse_jid(item.getAttr('jid'))
|
|
||||||
except common.helpers.InvalidFormat:
|
|
||||||
log.warn('Invalid JID: %s, ignoring it' % item.getAttr('jid'))
|
|
||||||
continue
|
|
||||||
name = item.getAttr('name')
|
|
||||||
contact = gajim.contacts.get_contact(self.conn.name, jid)
|
|
||||||
groups = []
|
|
||||||
same_groups = True
|
|
||||||
for group in item.getTags('group'):
|
|
||||||
groups.append(group.getData())
|
|
||||||
# check that all suggested groups are in the groups we have for this
|
|
||||||
# contact
|
|
||||||
if not contact or group not in contact.groups:
|
|
||||||
same_groups = False
|
|
||||||
if contact:
|
|
||||||
# check that all groups we have for this contact are in the
|
|
||||||
# suggested groups
|
|
||||||
for group in contact.groups:
|
|
||||||
if group not in groups:
|
|
||||||
same_groups = False
|
|
||||||
if contact.sub in ('both', 'to') and same_groups:
|
|
||||||
continue
|
|
||||||
self.exchange_items_list[jid] = []
|
|
||||||
self.exchange_items_list[jid].append(name)
|
|
||||||
self.exchange_items_list[jid].append(groups)
|
|
||||||
if exchange_items_list:
|
|
||||||
return True
|
|
||||||
|
|
||||||
class VersionRequestEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'version-request-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class LastRequestEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'last-request-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class TimeRequestEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'time-request-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
class TimeRevisedRequestEvent(nec.NetworkIncomingEvent):
|
|
||||||
name = 'time-revised-request-received'
|
|
||||||
base_network_events = []
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
if not self.conn:
|
|
||||||
self.conn = self.base_event.conn
|
|
||||||
if not self.iq_obj:
|
|
||||||
self.iq_obj = self.base_event.xmpp_iq
|
|
||||||
|
|
||||||
return True
|
|
|
@ -154,7 +154,7 @@ class ConnectionJingle(object):
|
||||||
jingle.on_session_state_changed(c)
|
jingle.on_session_state_changed(c)
|
||||||
else:
|
else:
|
||||||
jingle = JingleSession(self, weinitiate=True, jid=jid)
|
jingle = JingleSession(self, weinitiate=True, jid=jid)
|
||||||
self.__sessions__[jingle.sid] = jingle
|
self._sessions[jingle.sid] = jingle
|
||||||
file_props['sid'] = jingle.sid
|
file_props['sid'] = jingle.sid
|
||||||
c = JingleFileTransfer(jingle, file_props=file_props,
|
c = JingleFileTransfer(jingle, file_props=file_props,
|
||||||
use_security=use_security)
|
use_security=use_security)
|
||||||
|
|
Loading…
Reference in New Issue