changeset b67198acb52f in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=b67198acb52f
description: * added 'ask' support
        * fixed a bug (when a contact does not have a name)

diffstat:

 src/common/check_paths.py         |   1 +
 src/common/connection_handlers.py |   2 +-
 src/common/logger.py              |  29 ++++++++++++++++++++---------
 src/common/optparser.py           |   1 +
 4 files changed, 23 insertions(+), 10 deletions(-)

diffs (98 lines):

diff -r af17977674b1 -r b67198acb52f src/common/check_paths.py
--- a/src/common/check_paths.py Sat Jun 27 17:56:04 2009 +0200
+++ b/src/common/check_paths.py Sat Jun 27 20:54:49 2009 +0200
@@ -102,6 +102,7 @@
                        jid_id INTEGER,
                        name TEXT,
                        subscription INTEGER,
+                       ask BOOLEAN,
                        PRIMARY KEY (account_jid_id, jid_id)
                );
 
diff -r af17977674b1 -r b67198acb52f src/common/connection_handlers.py
--- a/src/common/connection_handlers.py Sat Jun 27 17:56:04 2009 +0200
+++ b/src/common/connection_handlers.py Sat Jun 27 20:54:49 2009 +0200
@@ -1565,7 +1565,7 @@
                        if version:
                                account_jid = 
gajim.get_jid_from_account(self.name)
                                gajim.logger.add_or_update_contact(account_jid, 
jid, name, sub,
-                                       groups)
+                                       ask, groups)
                                gajim.config.set_per('accounts', self.name, 
'roster_version',
                                        version)
                if not self.connection or self.connected < 2:
diff -r af17977674b1 -r b67198acb52f src/common/logger.py
--- a/src/common/logger.py      Sat Jun 27 17:56:04 2009 +0200
+++ b/src/common/logger.py      Sat Jun 27 20:54:49 2009 +0200
@@ -846,7 +846,8 @@
                # Fill roster tables with the new roster
                for jid in roster:
                        self.add_or_update_contact(account_jid, jid, 
roster[jid]['name'],
-                               roster[jid]['subscription'], 
roster[jid]['groups'])
+                               roster[jid]['subscription'], roster[jid]['ask'],
+                               roster[jid]['groups'])
                gajim.config.set_per('accounts', account_name, 'roster_version',
                        roster_version)
 
@@ -860,7 +861,7 @@
                sql = 'DELETE FROM roster_entry WHERE account_jid_id = %d AND 
jid_id = %d' % (account_jid_id, jid_id)
                self.simple_commit(sql)
 
-       def add_or_update_contact(self, account_jid, jid, name, sub, groups):
+       def add_or_update_contact(self, account_jid, jid, name, sub, ask, 
groups):
                ''' Add or update a contact from account_jid roster. '''
                if sub == 'remove':
                        self.del_contact(account_jid, jid)
@@ -882,9 +883,13 @@
                                account_jid_id, jid_id, group)
                        self.cur.execute(sql)
 
-               sql = 'REPLACE INTO roster_entry VALUES("%d", "%d", "%s", 
"%d")' % (
-                       account_jid_id, jid_id, name,
-                       
self.convert_human_subscription_values_to_db_api_values(sub))
+               if name is None:
+                       name = ''
+
+               sql = 'REPLACE INTO roster_entry VALUES("%d", "%d", "%s", "%s", 
"%d")'\
+                       % (account_jid_id, jid_id, name,
+                       
self.convert_human_subscription_values_to_db_api_values(sub),
+                       bool(ask))
                self.simple_commit(sql)
 
        def get_roster(self, account_jid):
@@ -893,14 +898,20 @@
                account_jid_id = self.get_jid_id(account_jid)
 
                # First we fill data with roster_entry informations
-               self.cur.execute('SELECT j.jid, re.jid_id, re.name, 
re.subscription FROM roster_entry re, jids j WHERE 
re.account_jid_id="%(account_jid_id)s" AND j.jid_id=re.jid_id' % 
{'account_jid_id': account_jid_id})
-               for jid, jid_id, name, subscription in self.cur:
+               self.cur.execute('SELECT j.jid, re.jid_id, re.name, 
re.subscription, re.ask FROM roster_entry re, jids j WHERE 
re.account_jid_id="%(account_jid_id)s" AND j.jid_id=re.jid_id' % 
{'account_jid_id': account_jid_id})
+               for jid, jid_id, name, subscription, ask in self.cur:
                        data[jid] = {}
-                       data[jid]['name'] = name
+                       if name:
+                               data[jid]['name'] = name
+                       else:
+                               data[jid]['name'] = None
                        data[jid]['subscription'] = 
self.convert_db_api_values_to_human_subscription_values(subscription)
                        data[jid]['groups'] = []
                        data[jid]['resources'] = {}
-                       data[jid]['ask'] = None
+                       if ask:
+                               data[jid]['ask'] = 'subscribe'
+                       else:
+                               data[jid]['ask'] = None
                        data[jid]['id'] = jid_id
 
                # Then we add group for roster entries
diff -r af17977674b1 -r b67198acb52f src/common/optparser.py
--- a/src/common/optparser.py   Sat Jun 27 17:56:04 2009 +0200
+++ b/src/common/optparser.py   Sat Jun 27 20:54:49 2009 +0200
@@ -687,6 +687,7 @@
                                        jid_id INTEGER,
                                        name TEXT,
                                        subscription INTEGER,
+                                       ask BOOLEAN,
                                        PRIMARY KEY (account_jid_id, jid_id)
                                );
 
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to