ask and show os info from each resource
This commit is contained in:
parent
e2b6b84694
commit
a2b6a44079
3 changed files with 30 additions and 7 deletions
|
@ -400,7 +400,8 @@ class Connection:
|
||||||
if qp.getTag('os'):
|
if qp.getTag('os'):
|
||||||
os_info += qp.getTag('os').getData()
|
os_info += qp.getTag('os').getData()
|
||||||
jid = iq_obj.getFrom().getStripped()
|
jid = iq_obj.getFrom().getStripped()
|
||||||
self.dispatch('OS_INFO', (jid, client_info, os_info))
|
resource = iq_obj.getFrom().getResource()
|
||||||
|
self.dispatch('OS_INFO', (jid, resource, client_info, os_info))
|
||||||
|
|
||||||
def _MucOwnerCB(self, con, iq_obj):
|
def _MucOwnerCB(self, con, iq_obj):
|
||||||
gajim.log.debug('MucOwnerCB')
|
gajim.log.debug('MucOwnerCB')
|
||||||
|
|
|
@ -407,7 +407,7 @@ class Interface:
|
||||||
def handle_event_os_info(self, account, array):
|
def handle_event_os_info(self, account, array):
|
||||||
if self.windows[account]['infos'].has_key(array[0]):
|
if self.windows[account]['infos'].has_key(array[0]):
|
||||||
self.windows[account]['infos'][array[0]].set_os_info(array[1], \
|
self.windows[account]['infos'][array[0]].set_os_info(array[1], \
|
||||||
array[2])
|
array[2], array[3])
|
||||||
|
|
||||||
def handle_event_gc_msg(self, account, array):
|
def handle_event_gc_msg(self, account, array):
|
||||||
#('GC_MSG', account, (jid, msg, time))
|
#('GC_MSG', account, (jid, msg, time))
|
||||||
|
|
32
src/vcard.py
32
src/vcard.py
|
@ -87,9 +87,23 @@ class Vcard_window:
|
||||||
else:
|
else:
|
||||||
self.set_value(i + '_entry', vcard[i])
|
self.set_value(i + '_entry', vcard[i])
|
||||||
|
|
||||||
def set_os_info(self, client_info, os_info):
|
def set_os_info(self, resource, client_info, os_info):
|
||||||
self.xml.get_widget('client_name_version_label').set_text(client_info)
|
i = 0
|
||||||
self.xml.get_widget('platform_label').set_text(os_info)
|
client = ''
|
||||||
|
platform = ''
|
||||||
|
while self.os_info.has_key(i):
|
||||||
|
if self.os_info[i]['resource'] == resource:
|
||||||
|
self.os_info[i]['client'] = client_info
|
||||||
|
self.os_info[i]['platform'] = os_info
|
||||||
|
if i > 0:
|
||||||
|
client += '\n'
|
||||||
|
platform += '\n'
|
||||||
|
client += self.os_info[i]['client']
|
||||||
|
platform += self.os_info[i]['platform']
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
self.xml.get_widget('client_name_version_label').set_text(client)
|
||||||
|
self.xml.get_widget('platform_label').set_text(platform)
|
||||||
|
|
||||||
def fill_jabber_page(self):
|
def fill_jabber_page(self):
|
||||||
self.xml.get_widget('nickname_label').set_text(self.user.name)
|
self.xml.get_widget('nickname_label').set_text(self.user.name)
|
||||||
|
@ -110,17 +124,25 @@ class Vcard_window:
|
||||||
if not self.user.status:
|
if not self.user.status:
|
||||||
self.user.status = ''
|
self.user.status = ''
|
||||||
stats = self.user.show + ': ' + self.user.status
|
stats = self.user.show + ': ' + self.user.status
|
||||||
|
gajim.connections[self.account].request_os_info(self.user.jid, \
|
||||||
|
self.user.resource)
|
||||||
|
self.os_info = {0: {'resource': self.user.resource, 'client': '',
|
||||||
|
'platform': ''}}
|
||||||
|
i = 1
|
||||||
for u in self.plugin.roster.contacts[self.account][self.user.jid]:
|
for u in self.plugin.roster.contacts[self.account][self.user.jid]:
|
||||||
if u.resource != self.user.resource:
|
if u.resource != self.user.resource:
|
||||||
resources += '\n' + u.resource + ' (' + str(u.priority) + ')'
|
resources += '\n' + u.resource + ' (' + str(u.priority) + ')'
|
||||||
if not u.status:
|
if not u.status:
|
||||||
u.status = ''
|
u.status = ''
|
||||||
stats += '\n' + u.show + ': ' + u.status
|
stats += '\n' + u.show + ': ' + u.status
|
||||||
|
gajim.connections[self.account].request_os_info(self.user.jid, \
|
||||||
|
u.resource)
|
||||||
|
self.os_info[i] = {'resource': u.resource, 'client': '',
|
||||||
|
'platform': ''}
|
||||||
|
i += 1
|
||||||
self.xml.get_widget('resource_label').set_text(resources)
|
self.xml.get_widget('resource_label').set_text(resources)
|
||||||
self.xml.get_widget('status_label').set_text(stats)
|
self.xml.get_widget('status_label').set_text(stats)
|
||||||
gajim.connections[self.account].request_vcard(self.user.jid)
|
gajim.connections[self.account].request_vcard(self.user.jid)
|
||||||
gajim.connections[self.account].request_os_info(self.user.jid, \
|
|
||||||
self.user.resource)
|
|
||||||
|
|
||||||
def add_to_vcard(self, vcard, entry, txt):
|
def add_to_vcard(self, vcard, entry, txt):
|
||||||
'''Add an information to the vCard dictionary'''
|
'''Add an information to the vCard dictionary'''
|
||||||
|
|
Loading…
Add table
Reference in a new issue