diff --git a/src/adhoc_commands.py b/src/adhoc_commands.py index a22bea8e7..2013807f7 100644 --- a/src/adhoc_commands.py +++ b/src/adhoc_commands.py @@ -452,7 +452,7 @@ class CommandWindow: note = command.getTag('note') if note: - self.notes_label.set_text(note.getData().decode('utf-8')) + self.notes_label.set_text(note.getData()) self.notes_label.set_no_show_all(False) self.notes_label.show() else: @@ -510,7 +510,7 @@ class CommandWindow: try: errorname = nbxmpp.NS_STANZAS + ' ' + str(errorid) errordesc = nbxmpp.ERRORS[errorname][2] - error = errordesc.decode('utf-8') + error = errordesc del errorname, errordesc except KeyError: # when stanza doesn't have error description error = _('Service returned an error.') diff --git a/src/advanced_configuration_window.py b/src/advanced_configuration_window.py index 7463b6f7d..84847b6d9 100644 --- a/src/advanced_configuration_window.py +++ b/src/advanced_configuration_window.py @@ -141,8 +141,7 @@ class AdvancedConfigurationWindow(object): """ optname = model[iter_][C_PREFNAME] opttype = model[iter_][C_TYPE] - - if opttype.decode('utf-8') == self.types['boolean'] or optname == 'password': + if opttype == self.types['boolean'] or optname == 'password': cell.set_property('editable', False) else: cell.set_property('editable', True) @@ -153,10 +152,10 @@ class AdvancedConfigurationWindow(object): # path[1] is the key name # path[2] is the root of tree # last two is optional - path = [model[iter_][0].decode('utf-8')] + path = [model[iter_][0]] parent = model.iter_parent(iter_) while parent: - path.append(model[parent][0].decode('utf-8')) + path.append(model[parent][0]) parent = model.iter_parent(parent) return path @@ -194,17 +193,17 @@ class AdvancedConfigurationWindow(object): def on_advanced_treeview_row_activated(self, treeview, path, column): modelpath = self.modelfilter.convert_path_to_child_path(path) modelrow = self.model[modelpath] - option = modelrow[0].decode('utf-8') - if modelrow[2].decode('utf-8') == self.types['boolean']: + option = modelrow[0] + if modelrow[2] == self.types['boolean']: for key in self.right_true_dict.keys(): - if self.right_true_dict[key] == modelrow[1].decode('utf-8'): + if self.right_true_dict[key] == modelrow[1]: modelrow[1] = str(key) newval = {'False': True, 'True': False}[modelrow[1]] if len(modelpath.get_indices()) > 1: optnamerow = self.model[modelpath.get_indices()[0]] - optname = optnamerow[0].decode('utf-8') + optname = optnamerow[0] keyrow = self.model[modelpath.get_indices()[:2]] - key = keyrow[0].decode('utf-8') + key = keyrow[0] self.remember_option(option + '\n' + key + '\n' + optname, modelrow[1], newval) gajim.config.set_per(optname, key, option, newval) @@ -234,13 +233,12 @@ class AdvancedConfigurationWindow(object): modelpath = self.modelfilter.convert_path_to_child_path(path) modelrow = self.model[modelpath] modelpath = modelpath.get_indices() - option = modelrow[0].decode('utf-8') - text = text.decode('utf-8') + option = modelrow[0] if len(modelpath) > 1: optnamerow = self.model[modelpath[0]] - optname = optnamerow[0].decode('utf-8') + optname = optnamerow[0] keyrow = self.model[modelpath[:2]] - key = keyrow[0].decode('utf-8') + key = keyrow[0] self.remember_option(option + '\n' + key + '\n' + optname, modelrow[1], text) gajim.config.set_per(optname, key, option, text) @@ -269,12 +267,12 @@ class AdvancedConfigurationWindow(object): return modelpath = self.modelfilter.convert_path_to_child_path(path) modelrow = self.model[modelpath] - option = modelrow[0].decode('utf-8') + option = modelrow[0] if len(modelpath) > 1: optnamerow = self.model[modelpath[0]] - optname = optnamerow[0].decode('utf-8') + optname = optnamerow[0] keyrow = self.model[modelpath[:2]] - key = keyrow[0].decode('utf-8') + key = keyrow[0] self.remember_option(option + '\n' + key + '\n' + optname, modelrow[C_VALUE], default) gajim.config.set_per(optname, key, option, default) @@ -317,7 +315,7 @@ class AdvancedConfigurationWindow(object): self.model.append(parent, [name, value, type_]) def visible_func(self, model, treeiter, data): - search_string = self.entry.get_text().decode('utf-8').lower() + search_string = self.entry.get_text().lower() for it in tree_model_pre_order(model, treeiter): if model[it][C_TYPE] != '': opt_path = self.get_option_path(model, it) diff --git a/src/atom_window.py b/src/atom_window.py index f0cb83f76..247a20758 100644 --- a/src/atom_window.py +++ b/src/atom_window.py @@ -84,20 +84,20 @@ class AtomWindow: # fill the fields if newentry.feed_link is not None: self.feed_title_label.set_markup( - u'%s' % \ + '%s' % \ GObject.markup_escape_text(newentry.feed_title)) else: self.feed_title_label.set_markup( GObject.markup_escape_text(newentry.feed_title)) self.feed_tagline_label.set_markup( - u'%s' % \ + '%s' % \ GObject.markup_escape_text(newentry.feed_tagline)) if newentry.title: if newentry.uri is not None: self.entry_title_label.set_markup( - u'%s' % \ + '%s' % \ GObject.markup_escape_text(newentry.title)) else: self.entry_title_label.set_markup( diff --git a/src/chat_control.py b/src/chat_control.py index 29aa2b781..80d374119 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -620,7 +620,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): message_buffer = self.msg_textview.get_buffer() start_iter = message_buffer.get_start_iter() end_iter = message_buffer.get_end_iter() - message = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8') + message = message_buffer.get_text(start_iter, end_iter, False) xhtml = self.msg_textview.get_xhtml() # send the message @@ -2842,7 +2842,7 @@ class ChatControl(ChatControlBase): type_ = model[iter_][2] if type_ != 'contact': # source is not a contact return - dropped_jid = data.decode('utf-8') + dropped_jid = data dropped_transport = gajim.get_transport_name_from_jid(dropped_jid) c_transport = gajim.get_transport_name_from_jid(c.jid) diff --git a/src/common/atom.py b/src/common/atom.py index a5ec628ef..d9ec2f067 100644 --- a/src/common/atom.py +++ b/src/common/atom.py @@ -100,13 +100,13 @@ class OldEntry(nbxmpp.Node, object): if main_feed is not None and source_feed is not None: - return u'%s: %s' % (main_feed, source_feed) + return '%s: %s' % (main_feed, source_feed) elif main_feed is not None: return main_feed elif source_feed is not None: return source_feed else: - return u'' + return '' feed_title = property(get_feed_title, None, None, ''' Title of feed. It is built from entry''s original feed title and title of feed @@ -173,4 +173,4 @@ class OldEntry(nbxmpp.Node, object): updated = property(get_updated, None, None, ''' Last significant modification time. ''') - feed_tagline = u'' + feed_tagline = '' diff --git a/src/common/check_paths.py b/src/common/check_paths.py index 6dbab7945..e45497179 100644 --- a/src/common/check_paths.py +++ b/src/common/check_paths.py @@ -133,11 +133,11 @@ def split_db(): try: import configpaths OLD_LOG_DB_FOLDER = os.path.join(configpaths.fse( - os.environ[u'appdata']), u'Gajim') + os.environ['appdata']), 'Gajim') except KeyError: - OLD_LOG_DB_FOLDER = u'.' + OLD_LOG_DB_FOLDER = '.' else: - OLD_LOG_DB_FOLDER = os.path.expanduser(u'~/.gajim') + OLD_LOG_DB_FOLDER = os.path.expanduser('~/.gajim') tmp = logger.CACHE_DB_PATH logger.CACHE_DB_PATH = os.path.join(OLD_LOG_DB_FOLDER, 'cache.db') @@ -148,7 +148,7 @@ def split_db(): os.chdir(back) cur = con.cursor() cur.execute('''SELECT name FROM sqlite_master WHERE type = 'table';''') - tables = cur.fetchall() # we get [(u'jids',), (u'unread_messages',), ... + tables = cur.fetchall() # we get [('jids',), ('unread_messages',), ... tables = [t[0] for t in tables] cur.execute("ATTACH DATABASE '%s' AS cache" % logger.CACHE_DB_PATH) for table in ('caps_cache', 'rooms_last_message_time', 'roster_entry', @@ -189,22 +189,22 @@ def check_and_possibly_move_config(): if os.name == 'nt': try: OLD_LOG_DB_FOLDER = os.path.join(configpaths.fse( - os.environ[u'appdata']), u'Gajim') + os.environ['appdata']), 'Gajim') except KeyError: - OLD_LOG_DB_FOLDER = u'.' + OLD_LOG_DB_FOLDER = '.' else: - OLD_LOG_DB_FOLDER = os.path.expanduser(u'~/.gajim') + OLD_LOG_DB_FOLDER = os.path.expanduser('~/.gajim') if not os.path.exists(OLD_LOG_DB_FOLDER): return - OLD_LOG_DB_PATH = os.path.join(OLD_LOG_DB_FOLDER, u'logs.db') - OLD_CACHE_DB_PATH = os.path.join(OLD_LOG_DB_FOLDER, u'cache.db') - vars['OLD_VCARD_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, u'vcards') - vars['OLD_AVATAR_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, u'avatars') - vars['OLD_MY_EMOTS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, u'emoticons') - vars['OLD_MY_ICONSETS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, u'iconsets') - vars['OLD_MY_MOOD_ICONSETS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, u'moods') + OLD_LOG_DB_PATH = os.path.join(OLD_LOG_DB_FOLDER, 'logs.db') + OLD_CACHE_DB_PATH = os.path.join(OLD_LOG_DB_FOLDER, 'cache.db') + vars['OLD_VCARD_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, 'vcards') + vars['OLD_AVATAR_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, 'avatars') + vars['OLD_MY_EMOTS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, 'emoticons') + vars['OLD_MY_ICONSETS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, 'iconsets') + vars['OLD_MY_MOOD_ICONSETS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, 'moods') vars['OLD_MY_ACTIVITY_ICONSETS_PATH'] = os.path.join(OLD_LOG_DB_FOLDER, - u'activities') + 'activities') OLD_CONFIG_FILES = [] OLD_DATA_FILES = [] for f in os.listdir(OLD_LOG_DB_FOLDER): @@ -345,7 +345,7 @@ def check_and_possibly_create_paths(): print(_('%s is a directory but should be a file') % CACHE_DB_PATH) print(_('Gajim will now exit')) sys.exit() - + if not os.path.exists(XTLS_CERTS): create_path(XTLS_CERTS) if not os.path.exists(LOCAL_XTLS_CERTS): diff --git a/src/common/commands.py b/src/common/commands.py index 4c2c90ad5..b76a4b014 100644 --- a/src/common/commands.py +++ b/src/common/commands.py @@ -104,12 +104,12 @@ class ChangeStatusCommand(AdHocCommand): var = 'presence-type', label = 'Type of presence:', options = [ - (u'chat', _('Free for chat')), - (u'online', _('Online')), - (u'away', _('Away')), - (u'xa', _('Extended away')), - (u'dnd', _('Do not disturb')), - (u'offline', _('Offline - disconnect'))], + ('chat', _('Free for chat')), + ('online', _('Online')), + ('away', _('Away')), + ('xa', _('Extended away')), + ('dnd', _('Do not disturb')), + ('offline', _('Offline - disconnect'))], value = 'online', required = True), dataforms.Field('text-multi', @@ -146,7 +146,7 @@ class ChangeStatusCommand(AdHocCommand): try: presencedesc = form['presence-desc'].value except Exception: # same exceptions as in last comment - presencedesc = u'' + presencedesc = '' response, cmd = self.buildResponse(request, status = 'completed') cmd.addChild('note', {}, _('The status has been changed.')) @@ -197,7 +197,7 @@ class LeaveGroupchatsCommand(AdHocCommand): options = [] account = self.connection.name for gc in find_current_groupchats(account): - options.append((u'%s' %(gc[0]), _('%(nickname)s on %(room_jid)s') % \ + options.append(('%s' %(gc[0]), _('%(nickname)s on %(room_jid)s') % \ {'nickname': gc[1], 'room_jid': gc[0]})) if not len(options): response, cmd = self.buildResponse(request, status = 'completed') @@ -367,7 +367,7 @@ class ConnectionCommands: if cmd.isVisibleFor(self.isSameJID(jid)): q.addChild('item', { # TODO: find the jid - 'jid': self.getOurBareJID() + u'/' + self.server_resource, + 'jid': self.getOurBareJID() + '/' + self.server_resource, 'node': node, 'name': cmd.commandname}) diff --git a/src/common/configpaths.py b/src/common/configpaths.py index 214d7891e..0a9d90982 100644 --- a/src/common/configpaths.py +++ b/src/common/configpaths.py @@ -82,10 +82,10 @@ class ConfigPaths: # variable 'appdata' is in? Assuming it to be in filesystem # encoding. self.config_root = self.cache_root = self.data_root = \ - os.path.join(fse(os.environ[u'appdata']), u'Gajim') + os.path.join(fse(os.environ['appdata']), 'Gajim') except KeyError: # win9x, in cwd - self.config_root = self.cache_root = self.data_root = u'.' + self.config_root = self.cache_root = self.data_root = '.' else: # Unices # Pass in an Unicode string, and hopefully get one back. if HAVE_XDG: @@ -93,23 +93,23 @@ class ConfigPaths: if not self.config_root: # Folder doesn't exist yet. self.config_root = os.path.join(xdg.BaseDirectory.\ - xdg_config_dirs[0], u'gajim') + xdg_config_dirs[0], 'gajim') self.cache_root = os.path.join(xdg.BaseDirectory.xdg_cache_home, - u'gajim') + 'gajim') self.data_root = xdg.BaseDirectory.save_data_path('gajim') if not self.data_root: self.data_root = os.path.join(xdg.BaseDirectory.\ - xdg_data_dirs[0], u'gajim') + xdg_data_dirs[0], 'gajim') else: expand = os.path.expanduser - base = os.getenv('XDG_CONFIG_HOME') or expand(u'~/.config') - self.config_root = os.path.join(base, u'gajim') - base = os.getenv('XDG_CACHE_HOME') or expand(u'~/.cache') - self.cache_root = os.path.join(base, u'gajim') - base = os.getenv('XDG_DATA_HOME') or expand(u'~/.local/share') - self.data_root = os.path.join(base, u'gajim') + base = os.getenv('XDG_CONFIG_HOME') or expand('~/.config') + self.config_root = os.path.join(base, 'gajim') + base = os.getenv('XDG_CACHE_HOME') or expand('~/.cache') + self.cache_root = os.path.join(base, 'gajim') + base = os.getenv('XDG_DATA_HOME') or expand('~/.local/share') + self.data_root = os.path.join(base, 'gajim') def add(self, name, type_, path): self.paths[name] = (type_, path) @@ -138,27 +138,27 @@ class ConfigPaths: if root is not None: self.config_root = self.cache_root = self.data_root = root - d = {'MY_DATA': '', 'LOG_DB': u'logs.db', 'MY_CACERTS': u'cacerts.pem', - 'MY_EMOTS': u'emoticons', 'MY_ICONSETS': u'iconsets', - 'MY_MOOD_ICONSETS': u'moods', 'MY_ACTIVITY_ICONSETS': u'activities', - 'PLUGINS_USER': u'plugins', 'MY_PEER_CERTS': u'certs'} + d = {'MY_DATA': '', 'LOG_DB': 'logs.db', 'MY_CACERTS': 'cacerts.pem', + 'MY_EMOTS': 'emoticons', 'MY_ICONSETS': 'iconsets', + 'MY_MOOD_ICONSETS': 'moods', 'MY_ACTIVITY_ICONSETS': 'activities', + 'PLUGINS_USER': 'plugins', 'MY_PEER_CERTS': 'certs'} for name in d: self.add(name, TYPE_DATA, windowsify(d[name])) - d = {'MY_CACHE': '', 'CACHE_DB': u'cache.db', 'VCARD': u'vcards', - 'AVATAR': u'avatars'} + d = {'MY_CACHE': '', 'CACHE_DB': 'cache.db', 'VCARD': 'vcards', + 'AVATAR': 'avatars'} for name in d: self.add(name, TYPE_CACHE, windowsify(d[name])) self.add('MY_CONFIG', TYPE_CONFIG, '') self.add('MY_CERT', TYPE_CONFIG, '') - basedir = fse(os.environ.get(u'GAJIM_BASEDIR', defs.basedir)) - self.add('DATA', None, os.path.join(basedir, windowsify(u'data'))) - self.add('ICONS', None, os.path.join(basedir, windowsify(u'icons'))) + basedir = fse(os.environ.get('GAJIM_BASEDIR', defs.basedir)) + self.add('DATA', None, os.path.join(basedir, windowsify('data'))) + self.add('ICONS', None, os.path.join(basedir, windowsify('icons'))) self.add('HOME', None, fse(os.path.expanduser('~'))) self.add('PLUGINS_BASE', None, os.path.join(basedir, - windowsify(u'plugins'))) + windowsify('plugins'))) try: self.add('TMP', None, fse(tempfile.gettempdir())) except IOError, e: @@ -173,17 +173,17 @@ class ConfigPaths: pass def init_profile(self, profile=''): - conffile = windowsify(u'config') - pidfile = windowsify(u'gajim') - secretsfile = windowsify(u'secrets') - pluginsconfdir = windowsify(u'pluginsconfig') + conffile = windowsify('config') + pidfile = windowsify('gajim') + secretsfile = windowsify('secrets') + pluginsconfdir = windowsify('pluginsconfig') if len(profile) > 0: - conffile += u'.' + profile - pidfile += u'.' + profile - secretsfile += u'.' + profile - pluginsconfdir += u'.' + profile - pidfile += u'.pid' + conffile += '.' + profile + pidfile += '.' + profile + secretsfile += '.' + profile + pluginsconfdir += '.' + profile + pidfile += '.pid' self.add('CONFIG_FILE', TYPE_CONFIG, conffile) self.add('PID_FILE', TYPE_CACHE, pidfile) self.add('SECRETS_FILE', TYPE_DATA, secretsfile) diff --git a/src/common/connection_handlers.py b/src/common/connection_handlers.py index bf23ecac7..7aa8e532a 100644 --- a/src/common/connection_handlers.py +++ b/src/common/connection_handlers.py @@ -1017,7 +1017,7 @@ class ConnectionHandlersBase: gc_contact = gajim.contacts.get_gc_contact(self.name, obj.jid, nick) if obj.receipt_request_tag and gajim.config.get_per('accounts', self.name, 'answer_receipts') and ((contact and contact.sub \ - not in (u'to', u'none')) or gc_contact) and obj.mtype != 'error': + not in ('to', 'none')) or gc_contact) and obj.mtype != 'error': receipt = nbxmpp.Message(to=obj.fjid, typ='chat') receipt.setID(obj.id_) receipt.setTag('received', namespace='urn:xmpp:receipts', diff --git a/src/common/dataforms.py b/src/common/dataforms.py index 1129ba2e3..bccd35d8a 100644 --- a/src/common/dataforms.py +++ b/src/common/dataforms.py @@ -195,7 +195,7 @@ class DataField(ExtendedNode): Human-readable description of field meaning """ def fget(self): - return self.getTagData('desc') or u'' + return self.getTagData('desc') or '' def fset(self, value): assert isinstance(value, basestring) @@ -348,7 +348,7 @@ class StringField(DataField): Value of field. May be any unicode string """ def fget(self): - return self.getTagData('value') or u'' + return self.getTagData('value') or '' def fset(self, value): assert isinstance(value, basestring) @@ -494,7 +494,7 @@ class TextMultiField(DataField): Value held in field """ def fget(self): - value = u'' + value = '' for element in self.iterTags('value'): value += '\n' + element.getData() return value[1:] @@ -643,7 +643,7 @@ class DataForm(ExtendedNode): """ # TODO: the same code is in TextMultiField. join them def fget(self): - value = u'' + value = '' for valuenode in self.getTags('instructions'): value += '\n' + valuenode.getData() return value[1:] diff --git a/src/common/helpers.py b/src/common/helpers.py index 0dbac4c40..7704c1c61 100644 --- a/src/common/helpers.py +++ b/src/common/helpers.py @@ -144,7 +144,7 @@ def parse_resource(resource): if resource: try: from nbxmpp.stringprepare import resourceprep - return resourceprep.prepare(unicode(resource)) + return resourceprep.prepare(resource) except UnicodeError: raise InvalidFormat, 'Invalid character in resource.' @@ -159,7 +159,7 @@ def prep(user, server, resource): raise InvalidFormat, _('Username must be between 1 and 1023 chars') try: from nbxmpp.stringprepare import nodeprep - user = nodeprep.prepare(unicode(user)) + user = nodeprep.prepare(unicode(user)).encode('utf-8') except UnicodeError: raise InvalidFormat, _('Invalid character in username.') else: @@ -170,7 +170,7 @@ def prep(user, server, resource): raise InvalidFormat, _('Server must be between 1 and 1023 chars') try: from nbxmpp.stringprepare import nameprep - server = nameprep.prepare(unicode(server)) + server = nameprep.prepare(unicode(server)).encode('utf-8') except UnicodeError: raise InvalidFormat, _('Invalid character in hostname.') else: @@ -181,7 +181,7 @@ def prep(user, server, resource): raise InvalidFormat, _('Resource must be between 1 and 1023 chars') try: from nbxmpp.stringprepare import resourceprep - resource = resourceprep.prepare(unicode(resource)) + resource = resourceprep.prepare(unicode(resource)).encode('utf-8') except UnicodeError: raise InvalidFormat, _('Invalid character in resource.') else: @@ -264,7 +264,7 @@ def get_uf_show(show, use_mnemonic = False): uf_show = Q_('?contact has status:Unknown') else: uf_show = Q_('?contact has status:Has errors') - return unicode(uf_show) + return uf_show def get_uf_sub(sub): if sub == 'none': @@ -278,7 +278,7 @@ def get_uf_sub(sub): else: uf_sub = sub - return unicode(uf_sub) + return uf_sub def get_uf_ask(ask): if ask is None: @@ -288,7 +288,7 @@ def get_uf_ask(ask): else: uf_ask = ask - return unicode(uf_ask) + return uf_ask def get_uf_role(role, plural = False): ''' plural determines if you get Moderators or Moderator''' @@ -577,9 +577,6 @@ def reduce_chars_newlines(text, max_chars = 0, max_lines = 0): string = string[:max_chars - 3] + '...' return string - if isinstance(text, str): - text = text.decode('utf-8') - if max_lines == 0: lines = text.split('\n') else: @@ -1431,7 +1428,7 @@ def get_proxy_info(account): login = ['', ''] addr = env_http_proxy[0].split(':') - proxy = {'host': addr[0], 'type' : u'http', 'user':login[0]} + proxy = {'host': addr[0], 'type' : 'http', 'user':login[0]} if len(addr) == 2: proxy['port'] = addr[1] @@ -1442,7 +1439,7 @@ def get_proxy_info(account): proxy['pass'] = login[1] proxy['useauth'] = True else: - proxy['pass'] = u'' + proxy['pass'] = '' return proxy except Exception: diff --git a/src/common/i18n.py b/src/common/i18n.py index 6de7eee31..feea54f2d 100644 --- a/src/common/i18n.py +++ b/src/common/i18n.py @@ -37,11 +37,11 @@ def paragraph_direction_mark(text): for char in text: bidi = unicodedata.bidirectional(char) if bidi == 'L': - return u'\u200E' + return '\u200E' elif bidi == 'AL' or bidi == 'R': - return u'\u200F' + return '\u200F' - return u'\u200E' + return '\u200E' APP = 'gajim' DIR = defs.localedir @@ -61,7 +61,7 @@ if os.name == 'nt': if lang: os.environ['LANG'] = lang -gettext.install(APP, DIR, unicode = True) +gettext.install(APP, DIR, unicode=False) if gettext._translations: _translation = gettext._translations.values()[0] else: diff --git a/src/common/kwalletbinding.py b/src/common/kwalletbinding.py index af320c2f8..4ae4043b0 100644 --- a/src/common/kwalletbinding.py +++ b/src/common/kwalletbinding.py @@ -53,7 +53,7 @@ def kwallet_get(folder, entry): "-e", entry.encode('utf-8')], stdout=subprocess.PIPE) pw = p.communicate()[0] if p.returncode == 0: - return unicode(pw.decode('utf-8')) + return pw if p.returncode == 1 or p.returncode == 4: # ENOENT return False diff --git a/src/common/logger.py b/src/common/logger.py index 162496cee..693e8aeb3 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -188,7 +188,7 @@ class Logger: def get_jids_already_in_db(self): try: self.cur.execute('SELECT jid FROM jids') - # list of tupples: [(u'aaa@bbb',), (u'cc@dd',)] + # list of tupples: [('aaa@bbb',), ('cc@dd',)] rows = self.cur.fetchall() except sqlite.DatabaseError: raise exceptions.DatabaseMalformed @@ -1048,6 +1048,8 @@ class Logger: FROM roster_entry re, jids j WHERE re.account_jid_id=? AND j.jid_id=re.jid_id''', (account_jid_id,)) for jid, jid_id, name, subscription, ask in self.cur: + jid = jid.encode('utf-8') + name = name.encode('utf-8') data[jid] = {} if name: data[jid]['name'] = name @@ -1071,6 +1073,7 @@ class Logger: WHERE account_jid_id=? AND jid_id=?''', (account_jid_id, data[jid]['id'])) for (group_name,) in self.cur: + group_name = group_name.encode('utf-8') data[jid]['groups'].append(group_name) del data[jid]['id'] diff --git a/src/common/optparser.py b/src/common/optparser.py index f99d2fae8..29a4966e2 100644 --- a/src/common/optparser.py +++ b/src/common/optparser.py @@ -61,7 +61,7 @@ class OptionsParser: for line in fd: try: - line = line.decode('utf-8') + line = helpers.ensure_utf8_string(line) except UnicodeDecodeError: line = line.decode(locale.getpreferredencoding()) optname, key, subname, value = regex.match(line).groups() @@ -715,7 +715,7 @@ class OptionsParser: """ dirs = ['../data', gajim.gajimpaths.data_root, gajim.DATA_DIR] if os.name != 'nt': - dirs.append(os.path.expanduser(u'~/.gajim')) + dirs.append(os.path.expanduser('~/.gajim')) for evt in gajim.config.get_per('soundevents'): path = gajim.config.get_per('soundevents', evt, 'path') # absolute and relative passes are necessary diff --git a/src/common/rst_xhtml_generator.py b/src/common/rst_xhtml_generator.py index b60bc5174..35907a03d 100644 --- a/src/common/rst_xhtml_generator.py +++ b/src/common/rst_xhtml_generator.py @@ -120,7 +120,7 @@ else: # in the JEP #   == u"\u00a0" self.pub.writer.translator_class.attribution_formats['dash'] = ( - u'\u2014', '') + '\u2014', '') self.pub.process_programmatic_settings(settings_spec, settings_overrides, config_section) @@ -137,7 +137,7 @@ else: output = self.pub.publish(enable_exit_status=enable_exit_status) # kludge until we can get docutils to stop generating (rare)   # entities - return u'\u00a0'.join(self.pub.writer.parts['fragment'].strip().split( + return '\u00a0'.join(self.pub.writer.parts['fragment'].strip().split( ' ')) Generator = HTMLGenerator() diff --git a/src/config.py b/src/config.py index 8b22f571e..a0693e1c6 100644 --- a/src/config.py +++ b/src/config.py @@ -684,7 +684,7 @@ class PreferencesWindow: def on_emoticons_combobox_changed(self, widget): active = widget.get_active() model = widget.get_model() - emot_theme = model[active][0].decode('utf-8') + emot_theme = model[active][0] if emot_theme == _('Disabled'): gajim.config.set('emoticons_theme', '') else: @@ -770,7 +770,7 @@ class PreferencesWindow: def on_theme_combobox_changed(self, widget): model = widget.get_model() active = widget.get_active() - config_theme = model[active][0].decode('utf-8').replace(' ', '_') + config_theme = model[active][0].replace(' ', '_') gajim.config.set('roster_theme', config_theme) @@ -800,7 +800,7 @@ class PreferencesWindow: def on_iconset_combobox_changed(self, widget): model = widget.get_model() active = widget.get_active() - icon_string = model[active][1].decode('utf-8') + icon_string = model[active][1] gajim.config.set('iconset', icon_string) gtkgui_helpers.reload_jabber_state_images() @@ -1019,7 +1019,7 @@ class PreferencesWindow: gajim.config.get('autoxatime') * 60) def on_auto_away_message_entry_changed(self, widget): - gajim.config.set('autoaway_message', widget.get_text().decode('utf-8')) + gajim.config.set('autoaway_message', widget.get_text()) def on_auto_xa_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'autoxa', @@ -1033,7 +1033,7 @@ class PreferencesWindow: gajim.config.get('autoxatime') * 60) def on_auto_xa_message_entry_changed(self, widget): - gajim.config.set('autoxa_message', widget.get_text().decode('utf-8')) + gajim.config.set('autoxa_message', widget.get_text()) def on_prompt_online_status_message_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'ask_online_status') @@ -1067,7 +1067,7 @@ class PreferencesWindow: def on_default_msg_treemodel_row_changed(self, model, path, iter_): status = model[iter_][0] - message = model[iter_][2].decode('utf-8') + message = model[iter_][2] message = helpers.to_one_line(message) gajim.config.set_per('defaultstatusmsg', status, 'enabled', model[iter_][3]) @@ -1084,20 +1084,18 @@ class PreferencesWindow: gajim.config.del_per('statusmsg', msg) iter_ = model.get_iter_first() while iter_: - val = model[iter_][0].decode('utf-8') + val = model[iter_][0] if model[iter_][1]: # we have a preset message if not val: # no title, use message text for title val = model[iter_][1] gajim.config.add_per('statusmsg', val) - msg = helpers.to_one_line(model[iter_][1].decode('utf-8')) + msg = helpers.to_one_line(model[iter_][1]) gajim.config.set_per('statusmsg', val, 'message', msg) i = 2 # store mood / activity for subname in ('activity', 'subactivity', 'activity_text', 'mood', 'mood_text'): val = model[iter_][i] - if val: - val = val.decode('utf-8') gajim.config.set_per('statusmsg', val, subname, val) i += 1 iter_ = model.iter_next(iter_) @@ -1111,7 +1109,7 @@ class PreferencesWindow: def on_av_combobox_changed(self, combobox, config_name): model = combobox.get_model() active = combobox.get_active() - device = model[active][1].decode('utf-8') + device = model[active][1] gajim.config.set(config_name, device) def on_audio_input_combobox_changed(self, widget): @@ -1137,7 +1135,7 @@ class PreferencesWindow: [self.xml.get_object('stun_server_entry')]) def stun_server_entry_changed(self, widget): - gajim.config.set('stun_server', widget.get_text().decode('utf-8')) + gajim.config.set('stun_server', widget.get_text()) def on_applications_combobox_changed(self, widget): if widget.get_active() == 0: @@ -1148,13 +1146,13 @@ class PreferencesWindow: self.xml.get_object('custom_apps_frame').show() def on_custom_browser_entry_changed(self, widget): - gajim.config.set('custombrowser', widget.get_text().decode('utf-8')) + gajim.config.set('custombrowser', widget.get_text()) def on_custom_mail_client_entry_changed(self, widget): - gajim.config.set('custommailapp', widget.get_text().decode('utf-8')) + gajim.config.set('custommailapp', widget.get_text()) def on_custom_file_manager_entry_changed(self, widget): - gajim.config.set('custom_file_manager', widget.get_text().decode('utf-8')) + gajim.config.set('custom_file_manager', widget.get_text()) def on_log_show_changes_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'log_contact_status_changes') @@ -1260,7 +1258,7 @@ class PreferencesWindow: def on_proxies_combobox_changed(self, widget): active = widget.get_active() - proxy = widget.get_model()[active][0].decode('utf-8') + proxy = widget.get_model()[active][0] if proxy == _('None'): proxy = '' @@ -1371,7 +1369,7 @@ class ManageProxiesWindow: (model, iter_) = sel.get_selected() if not iter_: return - proxy = model[iter_][0].decode('utf-8') + proxy = model[iter_][0] model.remove(iter_) gajim.config.del_per('proxies', proxy) self.xml.get_object('remove_proxy_button').set_sensitive(False) @@ -1386,7 +1384,7 @@ class ManageProxiesWindow: if self.block_signal: return act = widget.get_active() - proxy = self.proxyname_entry.get_text().decode('utf-8') + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'useauth', act) self.xml.get_object('proxyuser_entry').set_sensitive(act) self.xml.get_object('proxypass_entry').set_sensitive(act) @@ -1395,7 +1393,7 @@ class ManageProxiesWindow: if self.block_signal: return act = widget.get_active() - proxy = self.proxyname_entry.get_text().decode('utf-8') + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'bosh_useproxy', act) self.xml.get_object('proxyhost_entry').set_sensitive(act) self.xml.get_object('proxyport_entry').set_sensitive(act) @@ -1484,8 +1482,8 @@ class ManageProxiesWindow: (model, iter_) = sel.get_selected() if not iter_: return - old_name = model.get_value(iter_, 0).decode('utf-8') - new_name = widget.get_text().decode('utf-8') + old_name = model.get_value(iter_, 0) + new_name = widget.get_text() if new_name == '': return if new_name == old_name: @@ -1503,42 +1501,42 @@ class ManageProxiesWindow: types = ['http', 'socks5', 'bosh'] type_ = self.proxytype_combobox.get_active() self.show_bosh_fields(types[type_]=='bosh') - proxy = self.proxyname_entry.get_text().decode('utf-8') + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'type', types[type_]) def on_proxyhost_entry_changed(self, widget): if self.block_signal: return - value = widget.get_text().decode('utf-8') - proxy = self.proxyname_entry.get_text().decode('utf-8') + value = widget.get_text() + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'host', value) def on_proxyport_entry_changed(self, widget): if self.block_signal: return - value = widget.get_text().decode('utf-8') - proxy = self.proxyname_entry.get_text().decode('utf-8') + value = widget.get_text() + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'port', value) def on_proxyuser_entry_changed(self, widget): if self.block_signal: return - value = widget.get_text().decode('utf-8') - proxy = self.proxyname_entry.get_text().decode('utf-8') + value = widget.get_text() + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'user', value) def on_boshuri_entry_changed(self, widget): if self.block_signal: return - value = widget.get_text().decode('utf-8') - proxy = self.proxyname_entry.get_text().decode('utf-8') + value = widget.get_text() + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'bosh_uri', value) def on_proxypass_entry_changed(self, widget): if self.block_signal: return - value = widget.get_text().decode('utf-8') - proxy = self.proxyname_entry.get_text().decode('utf-8') + value = widget.get_text() + proxy = self.proxyname_entry.get_text() gajim.config.set_per('proxies', proxy, 'pass', value) @@ -1613,7 +1611,7 @@ class AccountsWindow: model = self.accounts_treeview.get_model() iter_ = model.get_iter_first() while iter_: - acct = model[iter_][0].decode('utf-8') + acct = model[iter_][0] if account == acct: self.accounts_treeview.set_cursor(model.get_path(iter_)) return @@ -1693,7 +1691,7 @@ class AccountsWindow: if sel: (model, iter_) = sel.get_selected() if iter_: - account = model[iter_][0].decode('utf-8') + account = model[iter_][0] else: account = None else: @@ -2342,7 +2340,7 @@ class AccountsWindow: def on_proxies_combobox1_changed(self, widget): active = widget.get_active() - proxy = widget.get_model()[active][0].decode('utf-8') + proxy = widget.get_model()[active][0] if proxy == _('None'): proxy = '' @@ -2384,7 +2382,7 @@ class AccountsWindow: def on_custom_host_entry1_changed(self, widget): if self.ignore_events: return - host = widget.get_text().decode('utf-8') + host = widget.get_text() if self.option_changed('custom_host', host): self.need_relogin = True gajim.config.set_per('accounts', self.current_account, 'custom_host', @@ -2655,7 +2653,7 @@ class AccountsWindow: def on_first_name_entry2_changed(self, widget): if self.ignore_events: return - name = widget.get_text().decode('utf-8') + name = widget.get_text() if self.option_changed('zeroconf_first_name', name): self.need_relogin = True gajim.config.set_per('accounts', self.current_account, @@ -2664,7 +2662,7 @@ class AccountsWindow: def on_last_name_entry2_changed(self, widget): if self.ignore_events: return - name = widget.get_text().decode('utf-8') + name = widget.get_text() if self.option_changed('zeroconf_last_name', name): self.need_relogin = True gajim.config.set_per('accounts', self.current_account, @@ -2673,7 +2671,7 @@ class AccountsWindow: def on_jabber_id_entry2_changed(self, widget): if self.ignore_events: return - id_ = widget.get_text().decode('utf-8') + id_ = widget.get_text() if self.option_changed('zeroconf_jabber_id', id_): self.need_relogin = True gajim.config.set_per('accounts', self.current_account, @@ -2682,7 +2680,7 @@ class AccountsWindow: def on_email_entry2_changed(self, widget): if self.ignore_events: return - email = widget.get_text().decode('utf-8') + email = widget.get_text() if self.option_changed('zeroconf_email', email): self.need_relogin = True gajim.config.set_per('accounts', self.current_account, @@ -2733,7 +2731,7 @@ class FakeDataForm(Gtk.Table, object): def get_infos(self): for name in self.entries.keys(): - self.infos[name] = self.entries[name].get_text().decode('utf-8') + self.infos[name] = self.entries[name].get_text() return self.infos class ServiceRegistrationWindow: @@ -2906,7 +2904,7 @@ class GroupchatConfigWindow: def on_cell_edited(self, cell, path, new_text): model = self.affiliation_treeview['outcast'].get_model() - new_text = new_text.decode('utf-8') + new_text = new_text iter_ = model.get_iter(path) model[iter_][1] = new_text @@ -2984,12 +2982,12 @@ class GroupchatConfigWindow: iter_ = model.get_iter_first() # add new jid while iter_: - jid = model[iter_][0].decode('utf-8') + jid = model[iter_][0] actual_jid_list.append(jid) if jid not in self.start_users_dict[affiliation] or \ (affiliation == 'outcast' and 'reason' in self.start_users_dict[ affiliation][jid] and self.start_users_dict[affiliation][jid]\ - ['reason'] != model[iter_][1].decode('utf-8')): + ['reason'] != model[iter_][1]): users_dict[jid] = {'affiliation': affiliation} if affiliation == 'outcast': users_dict[jid]['reason'] = model[iter_][1].decode( @@ -3236,7 +3234,7 @@ class ManageBookmarksWindow: # No parent, so we got an account -> add to this. add_to = iter_ - account = model[add_to][1].decode('utf-8') + account = model[add_to][1] nick = gajim.nicks[account] iter_ = self.treestore.append(add_to, [account, _('New Group Chat'), '@', False, False, '', nick, 'in_and_out']) @@ -3269,8 +3267,8 @@ class ManageBookmarksWindow: #Account data can't be changed return - if self.server_entry.get_text().decode('utf-8') == '' or \ - self.room_entry.get_text().decode('utf-8') == '': + if self.server_entry.get_text() == '' or \ + self.room_entry.get_text() == '': dialogs.ErrorDialog(_('This bookmark has invalid data'), _('Please be sure to fill out server and room fields or remove this' ' bookmark.')) @@ -3290,7 +3288,7 @@ class ManageBookmarksWindow: return for account in self.treestore: - account_unicode = account[1].decode('utf-8') + account_unicode = account[1] gajim.connections[account_unicode].bookmarks = [] for bm in account.iterchildren(): @@ -3298,17 +3296,9 @@ class ManageBookmarksWindow: autojoin = unicode(int(bm[3])) minimize = unicode(int(bm[4])) name = bm[1] - if name: - name = name.decode('utf-8') jid = bm[2] - if jid: - jid = jid.decode('utf-8') pw = bm[5] - if pw: - pw = pw.decode('utf-8') nick = bm[6] - if nick: - nick = nick.decode('utf-8') # create the bookmark-dict bmdict = { 'name': name, 'jid': jid, 'autojoin': autojoin, @@ -3353,7 +3343,7 @@ class ManageBookmarksWindow: # Fill in the data for childs self.title_entry.set_text(model[iter_][1]) - room_jid = model[iter_][2].decode('utf-8') + room_jid = model[iter_][2] (room, server) = room_jid.split('@') self.room_entry.set_text(room) self.server_entry.set_text(server) @@ -3364,7 +3354,7 @@ class ManageBookmarksWindow: self.minimize_checkbutton.set_sensitive(model[iter_][3]) if model[iter_][5] is not None: - password = model[iter_][5].decode('utf-8') + password = model[iter_][5] else: password = None @@ -3374,7 +3364,6 @@ class ManageBookmarksWindow: self.pass_entry.set_text('') nick = model[iter_][6] if nick: - nick = nick.decode('utf-8') self.nick_entry.set_text(nick) else: self.nick_entry.set_text('') @@ -3393,7 +3382,7 @@ class ManageBookmarksWindow: def on_nick_entry_changed(self, widget): (model, iter_) = self.selection.get_selected() if iter_: - nick = self.nick_entry.get_text().decode('utf-8') + nick = self.nick_entry.get_text() try: nick = helpers.parse_resource(nick) except helpers.InvalidFormat, e: @@ -3407,12 +3396,12 @@ class ManageBookmarksWindow: (model, iter_) = self.selection.get_selected() if not iter_: return - server = widget.get_text().decode('utf-8') + server = widget.get_text() if '@' in server: dialogs.ErrorDialog(_('Invalid server'), _('Character not allowed')) widget.set_text(server.replace('@', '')) - room_jid = self.room_entry.get_text().decode('utf-8').strip() + '@' + \ + room_jid = self.room_entry.get_text().strip() + '@' + \ server.strip() try: room_jid = helpers.parse_resource(room_jid) @@ -3427,12 +3416,12 @@ class ManageBookmarksWindow: (model, iter_) = self.selection.get_selected() if not iter_: return - room = widget.get_text().decode('utf-8') + room = widget.get_text() if '@' in room: dialogs.ErrorDialog(_('Invalid server'), _('Character not allowed')) widget.set_text(room.replace('@', '')) room_jid = room.strip() + '@' + \ - self.server_entry.get_text().decode('utf-8').strip() + self.server_entry.get_text().strip() try: room_jid = helpers.parse_resource(room_jid) except helpers.InvalidFormat, e: @@ -3641,7 +3630,7 @@ class AccountCreationWizardWindow: dialogs.ErrorDialog(pritext, sectext) return server = self.xml.get_object('server_comboboxentry').get_child().\ - get_text().decode('utf-8').strip() + get_text().strip() savepass = self.xml.get_object('save_password_checkbutton').\ get_active() password = self.xml.get_object('password_entry').get_text().decode( @@ -3675,7 +3664,7 @@ class AccountCreationWizardWindow: elif cur_page == 2: # We are creating a new account server = self.xml.get_object('server_comboboxentry1').get_child().\ - get_text().decode('utf-8') + get_text() if not server: dialogs.ErrorDialog(_('Invalid server'), @@ -3691,7 +3680,7 @@ class AccountCreationWizardWindow: # Get advanced options proxies_combobox = self.xml.get_object('proxies_combobox') active = proxies_combobox.get_active() - proxy = proxies_combobox.get_model()[active][0].decode('utf-8') + proxy = proxies_combobox.get_model()[active][0] if proxy == _('None'): proxy = '' config['proxy'] = proxy @@ -3707,7 +3696,7 @@ class AccountCreationWizardWindow: return config['custom_port'] = custom_port config['custom_host'] = self.xml.get_object( - 'custom_host_entry').get_text().decode('utf-8') + 'custom_host_entry').get_text() if self.xml.get_object('anonymous_checkbutton2').get_active(): self.modify = True @@ -4161,11 +4150,11 @@ class ManageSoundsWindow: self.window.show_all() def on_sounds_treemodel_row_changed(self, model, path, iter_): - sound_event = model[iter_][3].decode('utf-8') + sound_event = model[iter_][3] gajim.config.set_per('soundevents', sound_event, 'enabled', - bool(model[path][0])) + bool(model[path][0])) gajim.config.set_per('soundevents', sound_event, 'path', - model[iter_][2].decode('utf-8')) + model[iter_][2]) def sound_toggled_cb(self, cell, path): model = self.sound_tree.get_model() @@ -4238,7 +4227,7 @@ class ManageSoundsWindow: def on_cancel(widget): self.dialog.destroy() - path_to_snd_file = model[iter_][2].decode('utf-8') + path_to_snd_file = model[iter_][2] self.dialog = dialogs.SoundChooserDialog(path_to_snd_file, on_ok, on_cancel) diff --git a/src/dataforms_widget.py b/src/dataforms_widget.py index e686062b8..c6c72138b 100644 --- a/src/dataforms_widget.py +++ b/src/dataforms_widget.py @@ -114,12 +114,12 @@ class DataFormWidget(Gtk.Alignment, object): def get_title(self): """ Get the title of data form, as a unicode object. If no title or no form, - returns u''. Useful for setting window title + returns ''. Useful for setting window title """ if self._data_form is not None: if self._data_form.title is not None: return self._data_form.title - return u'' + return '' title = property(get_title, None, None, 'Data form title') @@ -540,7 +540,7 @@ class SingleForm(Gtk.Table, object): field) widget.set_sensitive(readwrite) if field.value is None: - field.value = u'' + field.value = '' widget.set_text(field.value) else: commonwidget=False diff --git a/src/dialogs.py b/src/dialogs.py index 723891ae4..af57189ea 100644 --- a/src/dialogs.py +++ b/src/dialogs.py @@ -127,7 +127,7 @@ class EditGroupsDialog: gajim.interface.roster.draw_group(_('General'), account) def on_add_button_clicked(self, widget): - group = self.xml.get_object('group_entry').get_text().decode('utf-8') + group = self.xml.get_object('group_entry').get_text() if not group: return # Do not allow special groups @@ -137,7 +137,7 @@ class EditGroupsDialog: model = self.treeview.get_model() iter_ = model.get_iter_first() while iter_: - if model.get_value(iter_, 0).decode('utf-8') == group: + if model.get_value(iter_, 0) == group: return iter_ = model.iter_next(iter_) self.changes_made = True @@ -153,7 +153,7 @@ class EditGroupsDialog: model[path][1] = True else: model[path][1] = not model[path][1] - group = model[path][0].decode('utf-8') + group = model[path][0] if model[path][1]: self.add_group(group) else: @@ -251,7 +251,7 @@ class PassphraseDialog: if not self.ok_handler: return - passph = self.passphrase_entry.get_text().decode('utf-8') + passph = self.passphrase_entry.get_text() if self.check: checked = self.xml.get_object('save_passphrase_checkbutton').\ @@ -325,8 +325,7 @@ class ChooseGPGKeyDialog: selection = self.keys_treeview.get_selection() (model, iter_) = selection.get_selected() if iter_ and response == Gtk.ResponseType.OK: - keyID = [ model[iter_][0].decode('utf-8'), - model[iter_][1].decode('utf-8') ] + keyID = [ model[iter_][0], model[iter_][1] ] else: keyID = None self.on_response(keyID) @@ -458,7 +457,7 @@ class ChangeActivityDialog: """ if self.checkbutton.get_active(): self.on_response(self.activity, self.subactivity, - self.entry.get_text().decode('utf-8')) + self.entry.get_text()) else: self.on_response(None, None, '') self.window.destroy() @@ -541,7 +540,7 @@ class ChangeMoodDialog: def on_ok_button_clicked(self, widget): '''Return mood and messsage (None if no mood selected)''' - message = self.entry.get_text().decode('utf-8') + message = self.entry.get_text() self.on_response(self.mood, message) self.window.destroy() @@ -713,8 +712,7 @@ class ChangeStatusMessageDialog(TimeoutDialog): def on_dialog_response(self, dialog, response): if response == Gtk.ResponseType.OK: beg, end = self.message_buffer.get_bounds() - message = self.message_buffer.get_text(beg, end, True).decode('utf-8')\ - .strip() + message = self.message_buffer.get_text(beg, end, True).strip() message = helpers.remove_invalid_xml_chars(message) msg = helpers.to_one_line(message) if self.show: @@ -742,7 +740,7 @@ class ChangeStatusMessageDialog(TimeoutDialog): active = widget.get_active() if active < 0: return None - name = model[active][0].decode('utf-8') + name = model[active][0] self.message_buffer.set_text(self.preset_messages_dict[name][0]) self.pep_dict['activity'] = self.preset_messages_dict[name][1] self.pep_dict['subactivity'] = self.preset_messages_dict[name][2] @@ -778,10 +776,10 @@ class ChangeStatusMessageDialog(TimeoutDialog): status_message_to_save_as_preset = self.message_buffer.get_text( start_iter, finish_iter, True) def on_ok(msg_name): - msg_text = status_message_to_save_as_preset.decode('utf-8') + msg_text = status_message_to_save_as_preset msg_text_1l = helpers.to_one_line(msg_text) if not msg_name: # msg_name was '' - msg_name = msg_text_1l.decode('utf-8') + msg_name = msg_text_1l def on_ok2(): self.preset_messages_dict[msg_name] = [ @@ -1034,7 +1032,7 @@ class AddNewContactWindow: self._nec_gateway_prompt_received) def on_register_button_clicked(self, widget): - jid = self.protocol_jid_combobox.get_active_text().decode('utf-8') + jid = self.protocol_jid_combobox.get_active_text() gajim.connections[self.account].request_register_agent_info(jid) def on_add_new_contact_window_key_press_event(self, widget, event): @@ -1051,7 +1049,7 @@ class AddNewContactWindow: """ When Subscribe button is clicked """ - jid = self.uid_entry.get_text().decode('utf-8').strip() + jid = self.uid_entry.get_text().strip() if not jid: return @@ -1091,7 +1089,7 @@ class AddNewContactWindow: ErrorDialog(pritext, _('You cannot add yourself to your roster.')) return - nickname = self.nickname_entry.get_text().decode('utf-8') or '' + nickname = self.nickname_entry.get_text() or '' # get value of account combobox, if account was not specified if not self.account: model = self.account_combobox.get_model() @@ -1110,14 +1108,14 @@ class AddNewContactWindow: message_buffer = self.message_textview.get_buffer() start_iter = message_buffer.get_start_iter() end_iter = message_buffer.get_end_iter() - message = message_buffer.get_text(start_iter, end_iter, True).decode('utf-8') + message = message_buffer.get_text(start_iter, end_iter, True) if self.save_message_checkbutton.get_active(): msg = helpers.to_one_line(message) gajim.config.set_per('accounts', self.account, 'subscription_request_msg', msg) else: message= '' - group = self.group_comboboxentry.get_child().get_text().decode('utf-8') + group = self.group_comboboxentry.get_child().get_text() groups = [] if group: groups = [group] @@ -1268,7 +1266,7 @@ class AboutDialog: dlg.set_transient_for(gajim.interface.roster.window) dlg.set_name('Gajim') dlg.set_version(gajim.version) - s = u'Copyright © 2003-2012 Gajim Team' + s = 'Copyright © 2003-2012 Gajim Team' dlg.set_copyright(s) copying_file_path = self.get_path('COPYING') if copying_file_path: @@ -2006,7 +2004,7 @@ class InputDialog(CommonInputDialog): self.input_entry.select_region(0, -1) # select all def get_text(self): - return self.input_entry.get_text().decode('utf-8') + return self.input_entry.get_text() class InputDialogCheck(InputDialog): """ @@ -2032,7 +2030,7 @@ class InputDialogCheck(InputDialog): def on_okbutton_clicked(self, widget): user_input = self.get_text() if user_input: - user_input = user_input.decode('utf-8') + user_input = user_input self.cancel_handler = None self.dialog.destroy() if isinstance(self.ok_handler, tuple): @@ -2041,7 +2039,7 @@ class InputDialogCheck(InputDialog): self.ok_handler(user_input, self.is_checked()) def get_text(self): - return self.input_entry.get_text().decode('utf-8') + return self.input_entry.get_text() def is_checked(self): """ @@ -2110,7 +2108,7 @@ class ChangeNickDialog(InputDialogCheck): def on_okbutton_clicked(self, widget): nick = self.get_text() if nick: - nick = nick.decode('utf-8') + nick = nick # send presence to room try: nick = helpers.parse_resource(nick) @@ -2162,7 +2160,7 @@ class InputTextDialog(CommonInputDialog): def get_text(self): start_iter, end_iter = self.input_buffer.get_bounds() - return self.input_buffer.get_text(start_iter, end_iter, True).decode('utf-8') + return self.input_buffer.get_text(start_iter, end_iter, True) class DoubleInputDialog: """ @@ -2207,8 +2205,8 @@ class DoubleInputDialog: self.cancel_handler() def on_okbutton_clicked(self, widget): - user_input1 = self.input_entry1.get_text().decode('utf-8') - user_input2 = self.input_entry2.get_text().decode('utf-8') + user_input1 = self.input_entry1.get_text() + user_input2 = self.input_entry2.get_text() self.cancel_handler = None self.dialog.destroy() if not self.ok_handler: @@ -2457,7 +2455,7 @@ class JoinGroupchatWindow: def on_account_combobox_changed(self, widget): model = widget.get_model() iter_ = widget.get_active_iter() - self.account = model[iter_][0].decode('utf-8') + self.account = model[iter_][0] self.on_required_entry_changed(self._nickname_entry) def _set_room_jid(self, room_jid): @@ -2468,11 +2466,11 @@ class JoinGroupchatWindow: def on_recently_combobox_changed(self, widget): model = widget.get_model() iter_ = widget.get_active_iter() - room_jid = model[iter_][0].decode('utf-8') + room_jid = model[iter_][0] self._set_room_jid(room_jid) def on_browse_rooms_button_clicked(self, widget): - server = self.server_comboboxentry.get_child().get_text().decode('utf-8') + server = self.server_comboboxentry.get_child().get_text() if server in gajim.interface.instances[self.account]['disco']: gajim.interface.instances[self.account]['disco'][server].window.\ present() @@ -2508,12 +2506,11 @@ class JoinGroupchatWindow: _('You have to choose an account from which you want to join the ' 'groupchat.')) return - nickname = self._nickname_entry.get_text().decode('utf-8') - server = self.server_comboboxentry.get_child().get_text().decode('utf-8').\ - strip() - room = self._room_jid_entry.get_text().decode('utf-8').strip() + nickname = self._nickname_entry.get_text() + server = self.server_comboboxentry.get_child().get_text().strip() + room = self._room_jid_entry.get_text().strip() room_jid = room + '@' + server - password = self._password_entry.get_text().decode('utf-8') + password = self._password_entry.get_text() try: nickname = helpers.parse_resource(nickname) except Exception: @@ -2613,7 +2610,7 @@ class SynchroniseSelectAccountDialog: (model, iter_) = sel.get_selected() if not iter_: return - remote_account = model.get_value(iter_, 0).decode('utf-8') + remote_account = model.get_value(iter_, 0) if gajim.connections[remote_account].connected < 2: ErrorDialog(_('This account is not connected to the server'), @@ -2686,7 +2683,7 @@ class SynchroniseSelectContactsDialog: while iter_: if model[iter_][0]: # it is selected - remote_jid = model[iter_][1].decode('utf-8') + remote_jid = model[iter_][1] message = 'I\'m synchronizing my contacts from my %s account, could you please add this address to your contact list?' % \ gajim.get_hostname_from_account(self.remote_account) remote_contact = gajim.contacts.get_first_contact_from_jid( @@ -2773,11 +2770,11 @@ class ChangePasswordDialog: dialog.destroy() self.on_response(None) return - password1 = self.password1_entry.get_text().decode('utf-8') + password1 = self.password1_entry.get_text() if not password1: ErrorDialog(_('Invalid password'), _('You must enter a password.')) return - password2 = self.password2_entry.get_text().decode('utf-8') + password2 = self.password2_entry.get_text() if password1 != password2: ErrorDialog(_('Passwords do not match'), _('The passwords typed in both fields must be identical.')) @@ -3129,7 +3126,7 @@ class SingleMessageWindow: else: sender_list.append(i[0].jid) else: - sender_list = [self.to_entry.get_text().decode('utf-8')] + sender_list = [self.to_entry.get_text()] for to_whom_jid in sender_list: if to_whom_jid in self.completion_dict: @@ -3142,9 +3139,9 @@ class SingleMessageWindow: 'valid.') % to_whom_jid) return True - subject = self.subject_entry.get_text().decode('utf-8') + subject = self.subject_entry.get_text() begin, end = self.message_tv_buffer.get_bounds() - message = self.message_tv_buffer.get_text(begin, end, True).decode('utf-8') + message = self.message_tv_buffer.get_text(begin, end, True) if '/announce/' in to_whom_jid: gajim.connections[self.account].send_motd(to_whom_jid, subject, @@ -3551,14 +3548,14 @@ class RosterItemExchangeWindow: if model[iter_][0]: a+=1 # it is selected - #remote_jid = model[iter_][1].decode('utf-8') + #remote_jid = model[iter_][1] message = _('%s suggested me to add you in my roster.' % self.jid_from) # keep same groups and same nickname groups = model[iter_][3].split(', ') if groups == ['']: groups = [] - jid = model[iter_][1].decode('utf-8') + jid = model[iter_][1] if gajim.jid_is_transport(self.jid_from): gajim.connections[self.account].automatically_added.append( jid) @@ -3574,7 +3571,7 @@ class RosterItemExchangeWindow: if model[iter_][0]: a+=1 # it is selected - jid = model[iter_][1].decode('utf-8') + jid = model[iter_][1] # keep same groups and same nickname groups = model[iter_][3].split(', ') if groups == ['']: @@ -3599,7 +3596,7 @@ class RosterItemExchangeWindow: if model[iter_][0]: a+=1 # it is selected - jid = model[iter_][1].decode('utf-8') + jid = model[iter_][1] gajim.connections[self.account].unsubscribe(jid) gajim.interface.roster.remove_contact(jid, self.account) gajim.contacts.remove_jid(self.account, jid) @@ -4154,7 +4151,7 @@ class PrivacyListWindow: self.active_rule = '' else: self.active_rule = \ - self.list_of_rules_combobox.get_active_text().decode('utf-8') + self.list_of_rules_combobox.get_active_text() if self.active_rule != '': rule_info = self.global_rules[self.active_rule] self.edit_order_spinbutton.set_value(int(rule_info['order'])) @@ -4952,7 +4949,7 @@ class TransformChatToMUC: guests = self.guests_treeview.get_selection().get_selected_rows() for guest in guests[1]: iter_ = self.store.get_iter(guest) - guest_list.append(self.store[iter_][2].decode('utf-8')) + guest_list.append(self.store[iter_][2]) for guest in self.auto_jids: guest_list.append(guest) room_jid = obj.room_id + '@' + obj.server diff --git a/src/disco.py b/src/disco.py index c3a51f7a9..4d7aed9da 100644 --- a/src/disco.py +++ b/src/disco.py @@ -800,7 +800,7 @@ _('This type of service does not contain any items to browse.')) def on_address_comboboxentry_changed(self, widget): if self.address_comboboxentry.get_active() != -1: # user selected one of the entries so do auto-visit - jid = self.address_comboboxentry.get_child().get_text().decode('utf-8') + jid = self.address_comboboxentry.get_child().get_text() try: jid = helpers.parse_jid(jid) except helpers.InvalidFormat, s: @@ -810,7 +810,7 @@ _('This type of service does not contain any items to browse.')) self.travel(jid, '') def on_go_button_clicked(self, widget): - jid = self.address_comboboxentry.get_child().get_text().decode('utf-8') + jid = self.address_comboboxentry.get_child().get_text() try: jid = helpers.parse_jid(jid) except helpers.InvalidFormat, s: @@ -998,9 +998,9 @@ class AgentBrowser: model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - jid = model[iter_][0].decode('utf-8') + jid = model[iter_][0] if jid: - node = model[iter_][1].decode('utf-8') + node = model[iter_][1] self.window.open(jid, node) def update_actions(self): @@ -1012,8 +1012,8 @@ class AgentBrowser: model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - jid = model[iter_][0].decode('utf-8') - node = model[iter_][1].decode('utf-8') + jid = model[iter_][0] + node = model[iter_][1] if jid: self.cache.get_info(jid, node, self._update_actions, nofetch = True) @@ -1035,8 +1035,8 @@ class AgentBrowser: model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - jid = model[iter_][0].decode('utf-8') - node = model[iter_][1].decode('utf-8') + jid = model[iter_][0] + node = model[iter_][1] if jid: self.cache.get_info(jid, node, self._default_action, nofetch = True) @@ -1077,8 +1077,8 @@ class AgentBrowser: """ iter_ = self.model.get_iter_first() while iter_: - cjid = self.model.get_value(iter_, 0).decode('utf-8') - cnode = self.model.get_value(iter_, 1).decode('utf-8') + cjid = self.model.get_value(iter_, 0) + cnode = self.model.get_value(iter_, 1) if jid == cjid and node == cnode: break iter_ = self.model.iter_next(iter_) @@ -1226,10 +1226,10 @@ class ToplevelAgentBrowser(AgentBrowser): # These can be None, apparently descr1 = model.get_value(iter1, 3) if descr1: - descr1 = descr1.decode('utf-8') + descr1 = descr1 descr2 = model.get_value(iter2, 3) if descr2: - descr2 = descr2.decode('utf-8') + descr2 = descr2 # Compare strings return cmp(descr1, descr2) return statecmp @@ -1402,7 +1402,7 @@ class ToplevelAgentBrowser(AgentBrowser): model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - service = model[iter_][0].decode('utf-8') + service = model[iter_][0] if service in gajim.interface.instances[self.account]['search']: gajim.interface.instances[self.account]['search'][service].window.\ present() @@ -1428,8 +1428,8 @@ class ToplevelAgentBrowser(AgentBrowser): model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - service = model[iter_][0].decode('utf-8') - node = model[iter_][1].decode('utf-8') + service = model[iter_][0] + node = model[iter_][1] adhoc_commands.CommandWindow(self.account, service, commandnode=node) def on_register_button_clicked(self, widget = None): @@ -1440,7 +1440,7 @@ class ToplevelAgentBrowser(AgentBrowser): model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - jid = model[iter_][0].decode('utf-8') + jid = model[iter_][0] if jid: gajim.connections[self.account].request_register_agent_info(jid) self.window.destroy(chain = True) @@ -1453,7 +1453,7 @@ class ToplevelAgentBrowser(AgentBrowser): model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - service = model[iter_][0].decode('utf-8') + service = model[iter_][0] if 'join_gc' not in gajim.interface.instances[self.account]: try: dialogs.JoinGroupchatWindow(self.account, service) @@ -1486,7 +1486,7 @@ class ToplevelAgentBrowser(AgentBrowser): self.register_button.set_sensitive(True) # Guess what kind of service we're dealing with if self.browse_button: - jid = model[iter_][0].decode('utf-8') + jid = model[iter_][0] type_ = gajim.get_transport_name_from_jid(jid, use_config_setting = False) if type_: @@ -1614,7 +1614,7 @@ class ToplevelAgentBrowser(AgentBrowser): cat = self._friendly_category(cat, type_)[0] iter_ = self.model.get_iter_first() while iter_: - if self.model.get_value(iter_, 3).decode('utf-8') == cat: + if self.model.get_value(iter_, 3) == cat: break iter_ = self.model.iter_next(iter_) if iter_: @@ -1627,8 +1627,8 @@ class ToplevelAgentBrowser(AgentBrowser): while cat_iter and not iter_: iter_ = self.model.iter_children(cat_iter) while iter_: - cjid = self.model.get_value(iter_, 0).decode('utf-8') - cnode = self.model.get_value(iter_, 1).decode('utf-8') + cjid = self.model.get_value(iter_, 0) + cnode = self.model.get_value(iter_, 1) if jid == cjid and node == cnode: break iter_ = self.model.iter_next(iter_) @@ -1699,7 +1699,7 @@ class ToplevelAgentBrowser(AgentBrowser): # Check if we have to move categories old_cat_iter = self.model.iter_parent(iter_) - old_cat = self.model.get_value(old_cat_iter, 3).decode('utf-8') + old_cat = self.model.get_value(old_cat_iter, 3) if self.model.get_value(old_cat_iter, 3) == cat: # Already in the right category, just update self.model[iter_][2] = pix @@ -1819,7 +1819,7 @@ class MucBrowser(AgentBrowser): if not iter: return name = gajim.config.get_per('accounts', self.account, 'name') - room_jid = model[iter][0].decode('utf-8') + room_jid = model[iter][0] bm = { 'name': room_jid.split('@')[0], 'jid': room_jid, @@ -1853,7 +1853,7 @@ class MucBrowser(AgentBrowser): model, iter_ = self.window.services_treeview.get_selection().get_selected() if not iter_: return - service = model[iter_][0].decode('utf-8') + service = model[iter_][0] if 'join_gc' not in gajim.interface.instances[self.account]: try: dialogs.JoinGroupchatWindow(self.account, service) @@ -1926,8 +1926,8 @@ class MucBrowser(AgentBrowser): pass while iter_ and self.model.get_path(iter_) != end: if not self.model.get_value(iter_, 6): - jid = self.model.get_value(iter_, 0).decode('utf-8') - node = self.model.get_value(iter_, 1).decode('utf-8') + jid = self.model.get_value(iter_, 0) + node = self.model.get_value(iter_, 1) self.cache.get_info(jid, node, self._agent_info) self._fetch_source = True return diff --git a/src/features_window.py b/src/features_window.py index 1bf2bbe1a..396080a51 100644 --- a/src/features_window.py +++ b/src/features_window.py @@ -149,7 +149,7 @@ class FeaturesWindow: if not rows: return path = rows[0] - feature = self.model[path][0].decode('utf-8') + feature = self.model[path][0] text = self.features[feature][1] + '\n' if os.name == 'nt': text = text + self.features[feature][3] diff --git a/src/filetransfers_window.py b/src/filetransfers_window.py index 33ae185b8..ce281023a 100644 --- a/src/filetransfers_window.py +++ b/src/filetransfers_window.py @@ -484,7 +484,7 @@ class FileTransfersWindow: iter_ = self.get_iter_by_sid(file_props.type_, file_props.sid) if iter_ is None: return - self.model[iter_][C_SID].decode('utf-8') + self.model[iter_][C_SID] if status == 'stop': file_props.stopped = True elif status == 'ok': @@ -677,7 +677,7 @@ class FileTransfersWindow: """ iter_ = self.model.get_iter_first() while iter_: - if typ + sid == self.model[iter_][C_SID].decode('utf-8'): + if typ + sid == self.model[iter_][C_SID]: return iter_ iter_ = self.model.iter_next(iter_) @@ -769,7 +769,7 @@ class FileTransfersWindow: except Exception: self.tooltip.hide_tooltip() return - sid = self.model[iter_][C_SID].decode('utf-8') + sid = self.model[iter_][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) if file_props is not None: if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: @@ -824,7 +824,7 @@ class FileTransfersWindow: self.set_all_insensitive() return current_iter = self.model.get_iter(path) - sid = self.model[current_iter][C_SID].decode('utf-8') + sid = self.model[current_iter][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) self.remove_menuitem.set_sensitive(is_row_selected) self.open_folder_menuitem.set_sensitive(is_row_selected) @@ -882,7 +882,7 @@ class FileTransfersWindow: i = len(self.model) - 1 while i >= 0: iter_ = self.model.get_iter((i)) - sid = self.model[iter_][C_SID].decode('utf-8') + sid = self.model[iter_][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) if is_transfer_stopped(file_props): self._remove_transfer(iter_, sid, file_props) @@ -917,7 +917,7 @@ class FileTransfersWindow: if selected is None or selected[1] is None: return s_iter = selected[1] - sid = self.model[s_iter][C_SID].decode('utf-8') + sid = self.model[s_iter][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) if is_transfer_paused(file_props): file_props.last_time = time.time() @@ -939,7 +939,7 @@ class FileTransfersWindow: if selected is None or selected[1] is None: return s_iter = selected[1] - sid = self.model[s_iter][C_SID].decode('utf-8') + sid = self.model[s_iter][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) account = file_props.tt_account if account not in gajim.connections: @@ -958,7 +958,7 @@ class FileTransfersWindow: # as it was before setting the timeout if props and self.tooltip.id == props[0]: iter_ = self.model.get_iter(props[0]) - sid = self.model[iter_][C_SID].decode('utf-8') + sid = self.model[iter_][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) # bounding rectangle of coordinates for the cell within the treeview rect = self.tree.get_cell_area(props[0], props[1]) @@ -1046,7 +1046,7 @@ class FileTransfersWindow: if not selected or not selected[1]: return s_iter = selected[1] - sid = self.model[s_iter][C_SID].decode('utf-8') + sid = self.model[s_iter][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) if not file_props.file_name: return @@ -1068,7 +1068,7 @@ class FileTransfersWindow: if not selected or not selected[1]: return s_iter = selected[1] - sid = self.model[s_iter][C_SID].decode('utf-8') + sid = self.model[s_iter][C_SID] file_props = FilesProp.getFilePropByType(sid[0], sid[1:]) self._remove_transfer(s_iter, sid, file_props) self.set_all_insensitive() diff --git a/src/gajim_themes_window.py b/src/gajim_themes_window.py index b6ff4e4af..4bac43b8e 100644 --- a/src/gajim_themes_window.py +++ b/src/gajim_themes_window.py @@ -89,8 +89,7 @@ class GajimThemesWindow: def on_theme_cell_edited(self, cell, row, new_name): model = self.themes_tree.get_model() iter_ = model.get_iter_from_string(row) - old_name = model.get_value(iter_, 0).decode('utf-8') - new_name = new_name.decode('utf-8') + old_name = model.get_value(iter_, 0) if old_name == new_name: return if old_name == 'default': @@ -150,7 +149,7 @@ class GajimThemesWindow: self.theme_options_vbox.set_sensitive(False) self.theme_options_table.set_sensitive(False) return - self.current_theme = model.get_value(iter_, 0).decode('utf-8') + self.current_theme = model.get_value(iter_, 0) self.current_theme = self.current_theme.replace(' ', '_') self.set_theme_options(self.current_theme) if self.current_theme == 'default': diff --git a/src/groupchat_control.py b/src/groupchat_control.py index 210b9a398..6ade68c4f 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -364,7 +364,7 @@ class GroupchatControl(ChatControlBase): self.handlers[id_] = widget self.room_jid = self.contact.jid - self.nick = contact.name.decode('utf-8') + self.nick = contact.name self.new_nick = '' self.name = '' for bm in gajim.connections[self.account].bookmarks: @@ -528,8 +528,6 @@ class GroupchatControl(ChatControlBase): nick2 = model[iter2][C_NICK] if not nick1 or not nick2: return 0 - nick1 = nick1.decode('utf-8') - nick2 = nick2.decode('utf-8') if type1 == 'role': return locale.strcoll(nick1, nick2) if type1 == 'contact': @@ -631,7 +629,7 @@ class GroupchatControl(ChatControlBase): """ # Get the room_jid from treeview for contact in self.iter_contact_rows(): - nick = contact[C_NICK].decode('utf-8') + nick = contact[C_NICK] self.draw_contact(nick) def on_list_treeview_selection_changed(self, selection): @@ -643,7 +641,7 @@ class GroupchatControl(ChatControlBase): self._last_selected_contact = None return contact = model[selected_iter] - nick = contact[C_NICK].decode('utf-8') + nick = contact[C_NICK] self._last_selected_contact = nick if contact[C_TYPE] != 'contact': return @@ -1042,7 +1040,7 @@ class GroupchatControl(ChatControlBase): while role_iter: user_iter = self.model.iter_children(role_iter) while user_iter: - if nick == self.model[user_iter][C_NICK].decode('utf-8'): + if nick == self.model[user_iter][C_NICK]: return user_iter else: user_iter = self.model.iter_next(user_iter) @@ -1379,7 +1377,7 @@ class GroupchatControl(ChatControlBase): contact in a room """ if nick is None: - nick = model[iter_][C_NICK].decode('utf-8') + nick = model[iter_][C_NICK] ctrl = self._start_private_message(nick) if ctrl and msg: @@ -1832,7 +1830,7 @@ class GroupchatControl(ChatControlBase): def get_role_iter(self, role): role_iter = self.model.get_iter_first() while role_iter: - role_name = self.model[role_iter][C_NICK].decode('utf-8') + role_name = self.model[role_iter][C_NICK] if role == role_name: return role_iter role_iter = self.model.iter_next(role_iter) @@ -2137,7 +2135,7 @@ class GroupchatControl(ChatControlBase): type_ = model[iter_][2] if type_ != 'contact': # source is not a contact return - contact_jid = data.decode('utf-8') + contact_jid = data gajim.connections[self.account].send_invite(self.room_jid, contact_jid) self.print_conversation(_('%(jid)s has been invited in this room') % { 'jid': contact_jid}, graphics=False) @@ -2311,7 +2309,7 @@ class GroupchatControl(ChatControlBase): """ Make contact's popup menu """ - nick = self.model[iter_][C_NICK].decode('utf-8') + nick = self.model[iter_][C_NICK] c = gajim.contacts.get_gc_contact(self.account, self.room_jid, nick) fjid = self.room_jid + '/' + nick jid = c.jid @@ -2478,7 +2476,7 @@ class GroupchatControl(ChatControlBase): else: widget.expand_row(path, False) else: # We want to send a private message - nick = self.model[path][C_NICK].decode('utf-8') + nick = self.model[path][C_NICK] self._start_private_message(nick) def on_list_treeview_row_activated(self, widget, path, col=0): @@ -2511,7 +2509,7 @@ class GroupchatControl(ChatControlBase): widget.get_selection().select_path(path) iter_ = self.model.get_iter(path) if len(path) == 2: - nick = self.model[iter_][C_NICK].decode('utf-8') + nick = self.model[iter_][C_NICK] self._start_private_message(nick) return True @@ -2521,7 +2519,7 @@ class GroupchatControl(ChatControlBase): return True else: iter_ = self.model.get_iter(path) - nick = self.model[iter_][C_NICK].decode('utf-8') + nick = self.model[iter_][C_NICK] if not nick in gajim.contacts.get_nick_list(self.account, self.room_jid): # it's a group @@ -2564,13 +2562,13 @@ class GroupchatControl(ChatControlBase): except Exception: self.tooltip.hide_tooltip() return - typ = self.model[iter_][C_TYPE].decode('utf-8') + typ = self.model[iter_][C_TYPE] if typ == 'contact': account = self.account if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: self.tooltip.id = row - nick = self.model[iter_][C_NICK].decode('utf-8') + nick = self.model[iter_][C_NICK] self.tooltip.timeout = GObject.timeout_add(500, self.show_tooltip, gajim.contacts.get_gc_contact( account, self.room_jid, nick)) @@ -2707,8 +2705,8 @@ class GroupchatControl(ChatControlBase): connection = gajim.connections[self.account] if fjid in connection.blocked_contacts: return - new_rule = {'order': u'1', 'type': u'jid', 'action': u'deny', - 'value' : fjid, 'child': [u'message', u'iq', u'presence-out']} + new_rule = {'order': '1', 'type': 'jid', 'action': 'deny', + 'value' : fjid, 'child': ['message', 'iq', 'presence-out']} connection.blocked_list.append(new_rule) connection.blocked_contacts.append(fjid) self.draw_contact(nick) diff --git a/src/gtkgui_helpers.py b/src/gtkgui_helpers.py index 3e62de3d1..b6e92a9f2 100644 --- a/src/gtkgui_helpers.py +++ b/src/gtkgui_helpers.py @@ -195,7 +195,7 @@ def get_default_font(): for line in open(xfce_config_file): if line.find('name="Gtk/FontName"') != -1: start = line.find('value="') + 7 - return line[start:line.find('"', start)].decode('utf-8') + return line[start:line.find('"', start)] except Exception: #we talk about file print(_('Error: cannot open %s for reading') % xfce_config_file, @@ -211,7 +211,7 @@ def get_default_font(): font_name = values[0] font_size = values[1] font_string = '%s %s' % (font_name, font_size) # Verdana 9 - return font_string.decode('utf-8') + return font_string except Exception: #we talk about file print(_('Error: cannot open %s for reading') % kde_config_file, @@ -684,7 +684,7 @@ def decode_filechooser_file_paths(file_paths): file_path = file_path.decode(sys.getfilesystemencoding()) except Exception: try: - file_path = file_path.decode('utf-8') + file_path = file_path except Exception: pass file_paths_list.append(file_path) diff --git a/src/gui_interface.py b/src/gui_interface.py index 4a1d11ae3..875b6adc4 100644 --- a/src/gui_interface.py +++ b/src/gui_interface.py @@ -1906,8 +1906,8 @@ class Interface: self.sth_at_sth_dot_sth = r'\S+@\S+\.\S*[^\s)?]' # Invalid XML chars - self.invalid_XML_chars = u'[\x00-\x08]|[\x0b-\x0c]|[\x0e-\x1f]|'\ - u'[\ud800-\udfff]|[\ufffe-\uffff]' + self.invalid_XML_chars = '[\x00-\x08]|[\x0b-\x0c]|[\x0e-\x1f]|'\ + '[\ud800-\udfff]|[\ufffe-\uffff]' def popup_emoticons_under_button(self, button, parent_win): """ @@ -1969,7 +1969,7 @@ class Interface: if not self.image_is_ok(emot_file): continue for emot in emots[emot_filename]: - emot = emot.decode('utf-8') + emot = emot # This avoids duplicated emoticons with the same image eg. :) # and :-) if not emot_file in self.emoticons.values(): diff --git a/src/history_manager.py b/src/history_manager.py index 1d005cb2a..34e757722 100644 --- a/src/history_manager.py +++ b/src/history_manager.py @@ -65,12 +65,12 @@ def parseOpts(): longargs = 'help config_path=' opts = getopt.getopt(sys.argv[1:], shortargs, longargs.split())[0] except getopt.error, msg: - print str(msg) - print 'for help use --help' + print(str(msg)) + print('for help use --help') sys.exit(2) for o, a in opts: if o in ('-h', '--help'): - print 'history_manager [--help] [--config-path]' + print('history_manager [--help] [--config-path]') sys.exit() elif o in ('-c', '--config-path'): config_path = a @@ -264,7 +264,7 @@ class HistoryManager: # get those jids that have at least one entry in logs self.cur.execute('SELECT jid, jid_id FROM jids WHERE jid_id IN (' 'SELECT distinct logs.jid_id FROM logs) ORDER BY jid') - # list of tupples: [(u'aaa@bbb',), (u'cc@dd',)] + # list of tupples: [('aaa@bbb',), ('cc@dd',)] rows = self.cur.fetchall() for row in rows: self.jids_already_in.append(row[0]) # jid @@ -291,7 +291,7 @@ class HistoryManager: path = rowref.get_path() if path is None: continue - jid = liststore[path][0].decode('utf-8') # jid + jid = liststore[path][0] # jid self._fill_logs_listview(jid) def _get_jid_id(self, jid): @@ -642,7 +642,7 @@ class HistoryManager: dialog.set_transient_for(self.window) def on_search_db_button_clicked(self, widget): - text = self.search_entry.get_text().decode('utf-8') + text = self.search_entry.get_text() if not text: return @@ -655,7 +655,7 @@ class HistoryManager: def on_search_results_listview_row_activated(self, widget, path, column): # get log_line_id, jid_id from row we double clicked log_line_id = self.search_results_liststore[path][0] - jid = self.search_results_liststore[path][1].decode('utf-8') + jid = self.search_results_liststore[path][1] # make it string as in gtk liststores I have them all as strings # as this is what db returns so I don't have to fight with types jid_id = self._get_jid_id(jid) diff --git a/src/history_window.py b/src/history_window.py index a774b83b0..00d1c186f 100644 --- a/src/history_window.py +++ b/src/history_window.py @@ -165,7 +165,7 @@ class HistoryWindow: keys = completion_dict.keys() # Move the actual jid at first so we load history faster - actual_jid = self.jid_entry.get_text().decode('utf-8') + actual_jid = self.jid_entry.get_text() if actual_jid in keys: keys.remove(actual_jid) keys.insert(0, actual_jid) @@ -244,7 +244,7 @@ class HistoryWindow: # Don't disable querybox when we have changed the combobox # to GC or All and hit enter return - jid = self.jid_entry.get_text().decode('utf-8') + jid = self.jid_entry.get_text() account = None # we don't know the account, could be any. Search for it! self._load_history(jid, account) self.results_window.set_property('visible', False) diff --git a/src/htmltextview.py b/src/htmltextview.py index b668466c2..208bbf8ba 100644 --- a/src/htmltextview.py +++ b/src/htmltextview.py @@ -762,7 +762,7 @@ class HtmlHandler(xml.sax.handler.ContentHandler): try: self.textbuf.insert_pixbuf(self.iter, self.textview.focus_out_line_pixbuf) - #self._insert_text(u'\u2550'*40) + #self._insert_text('\u2550'*40) self._jump_line() except Exception, e: log.debug(str('Error in hr'+e)) @@ -913,7 +913,7 @@ class HtmlTextView(Gtk.TextView): while (search_iter.compare(end)): character = search_iter.get_char() - if character == u'\ufffc': + if character == '\ufffc': anchor = search_iter.get_child_anchor() if anchor: text = anchor.get_data('plaintext') diff --git a/src/plugins/gui.py b/src/plugins/gui.py index 1ace7a595..5f4a04213 100644 --- a/src/plugins/gui.py +++ b/src/plugins/gui.py @@ -237,7 +237,7 @@ class PluginsWindow(object): model, iter = selection.get_selected() if iter: plugin = model.get_value(iter, PLUGIN) - plugin_name = model.get_value(iter, NAME).decode('utf-8') + plugin_name = model.get_value(iter, NAME) is_active = model.get_value(iter, ACTIVE) try: gajim.plugin_manager.remove_plugin(plugin) diff --git a/src/plugins/plugin.py b/src/plugins/plugin.py index b668c2765..f53424f11 100644 --- a/src/plugins/plugin.py +++ b/src/plugins/plugin.py @@ -40,7 +40,7 @@ class GajimPlugin(object): ''' Base class for implementing Gajim plugins. ''' - name = u'' + name = '' ''' Name of plugin. @@ -48,7 +48,7 @@ class GajimPlugin(object): :type: unicode ''' - short_name = u'' + short_name = '' ''' Short name of plugin. @@ -59,7 +59,7 @@ class GajimPlugin(object): :todo: decide whether we really need this one, because class name (with module name) can act as such short name ''' - version = u'' + version = '' ''' Version of plugin. @@ -71,7 +71,7 @@ class GajimPlugin(object): same plugin class but with different version and we want only the newest one to be active - is such policy good? ''' - description = u'' + description = '' ''' Plugin description. @@ -88,7 +88,7 @@ class GajimPlugin(object): :todo: should we decide on any particular format of author strings? Especially: should we force format of giving author's e-mail? ''' - homepage = u'' + homepage = '' ''' URL to plug-in's homepage. diff --git a/src/profile_window.py b/src/profile_window.py index 7e7fc76e7..04d596294 100644 --- a/src/profile_window.py +++ b/src/profile_window.py @@ -344,7 +344,7 @@ class ProfileWindow: 'ADR_WORK_REGION', 'ADR_WORK_PCODE', 'ADR_WORK_CTRY'] vcard_ = {} for e in entries: - txt = self.xml.get_object(e + '_entry').get_text().decode('utf-8') + txt = self.xml.get_object(e + '_entry').get_text() if txt != '': vcard_ = self.add_to_vcard(vcard_, e, txt) @@ -354,7 +354,7 @@ class ProfileWindow: end_iter = buff.get_end_iter() txt = buff.get_text(start_iter, end_iter, False) if txt != '': - vcard_['DESC'] = txt.decode('utf-8') + vcard_['DESC'] = txt # Avatar if self.avatar_encoded: diff --git a/src/roster_window.py b/src/roster_window.py index 5860fc774..9687d574a 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -459,7 +459,7 @@ class RosterWindow: account_group = 'MERGED' else: account_group = account - group = self.model[parent_i][C_JID].decode('utf-8') + group = self.model[parent_i][C_JID] if group in gajim.groups[account]: del gajim.groups[account][group] to_be_removed = parent_i @@ -1144,8 +1144,8 @@ class RosterWindow: if self.model[parent_iter][C_TYPE] != 'contact': # parent is not a contact return - parent_jid = self.model[parent_iter][C_JID].decode('utf-8') - parent_account = self.model[parent_iter][C_ACCOUNT].decode('utf-8') + parent_jid = self.model[parent_iter][C_JID] + parent_account = self.model[parent_iter][C_ACCOUNT] self.draw_contact(parent_jid, parent_account) return False @@ -1203,7 +1203,7 @@ class RosterWindow: if nb_connected_contact > 1: # switch back to default writing direction name += i18n.paragraph_direction_mark(unicode(name)) - name += u' (%d)' % nb_connected_contact + name += ' (%d)' % nb_connected_contact # add status msg, if not empty, under contact name in # the treeview @@ -1256,8 +1256,8 @@ class RosterWindow: iterC = self.model.iter_children(child_iter) while iterC: # a child has awaiting messages? - jidC = self.model[iterC][C_JID].decode('utf-8') - accountC = self.model[iterC][C_ACCOUNT].decode('utf-8') + jidC = self.model[iterC][C_JID] + accountC = self.model[iterC][C_ACCOUNT] if len(gajim.events.get_events(accountC, jidC)): icon_name = 'event' break @@ -1350,7 +1350,7 @@ class RosterWindow: iters = self._get_contact_iter(jid, account, model=self.model) if not iters or not gajim.config.get('show_avatars_in_roster'): return - jid = self.model[iters[0]][C_JID].decode('utf-8') + jid = self.model[iters[0]][C_JID] pixbuf = gtkgui_helpers.get_avatar_pixbuf_from_cache(jid) if pixbuf in (None, 'ask'): scaled_pixbuf = empty_pixbuf @@ -1496,8 +1496,8 @@ class RosterWindow: def _readjust_expand_collapse_state(self): def func(model, path, iter_): type_ = model[iter_][C_TYPE] - acct = model[iter_][C_ACCOUNT].decode('utf-8') - jid = model[iter_][C_JID].decode('utf-8') + acct = model[iter_][C_ACCOUNT] + jid = model[iter_][C_JID] key = None if type_ == 'account': key = acct @@ -1507,7 +1507,7 @@ class RosterWindow: parent_iter = model.iter_parent(iter_) ptype = model[parent_iter][C_TYPE] if ptype == 'group': - grp = model[parent_iter][C_JID].decode('utf-8') + grp = model[parent_iter][C_JID] key = acct + grp + jid if key: if key in self.collapsed_rows: @@ -1611,11 +1611,10 @@ class RosterWindow: if not account: return False - account = account.decode('utf-8') jid = model[titer][C_JID] if not jid: return False - jid = jid.decode('utf-8') + if type_ == 'group': group = jid if group == _('Transports'): @@ -1713,8 +1712,8 @@ class RosterWindow: name2 = model[iter2][C_NAME] if not name1 or not name2: return 0 - name1 = name1.decode('utf-8') - name2 = name2.decode('utf-8') + name1 = name1 + name2 = name2 type1 = model[iter1][C_TYPE] type2 = model[iter2][C_TYPE] if type1 == 'self_contact': @@ -1724,10 +1723,10 @@ class RosterWindow: if type1 == 'group': name1 = model[iter1][C_JID] if name1: - name1 = name1.decode('utf-8') + name1 = name1 name2 = model[iter2][C_JID] if name2: - name2 = name2.decode('utf-8') + name2 = name2 if name1 == _('Transports'): return 1 if name2 == _('Transports'): @@ -1744,12 +1743,12 @@ class RosterWindow: account2 = model[iter2][C_ACCOUNT] if not account1 or not account2: return 0 - account1 = account1.decode('utf-8') - account2 = account2.decode('utf-8') + account1 = account1 + account2 = account2 if type1 == 'account': return locale.strcoll(account1, account2) - jid1 = model[iter1][C_JID].decode('utf-8') - jid2 = model[iter2][C_JID].decode('utf-8') + jid1 = model[iter1][C_JID] + jid2 = model[iter2][C_JID] if type1 == 'contact': lcontact1 = gajim.contacts.get_contacts(account1, jid1) contact1 = gajim.contacts.get_first_contact_from_jid(account1, jid1) @@ -2861,8 +2860,8 @@ class RosterWindow: if model[titer][C_TYPE] in ('contact', 'self_contact'): # we're on a contact entry in the roster if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: - account = model[titer][C_ACCOUNT].decode('utf-8') - jid = model[titer][C_JID].decode('utf-8') + account = model[titer][C_ACCOUNT] + jid = model[titer][C_JID] self.tooltip.id = row contacts = gajim.contacts.get_contacts(account, jid) connected_contacts = [] @@ -2877,8 +2876,8 @@ class RosterWindow: self.show_tooltip, connected_contacts) elif model[titer][C_TYPE] == 'groupchat': if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: - account = model[titer][C_ACCOUNT].decode('utf-8') - jid = model[titer][C_JID].decode('utf-8') + account = model[titer][C_ACCOUNT] + jid = model[titer][C_JID] self.tooltip.id = row contact = gajim.contacts.get_contacts(account, jid) self.tooltip.account = account @@ -2887,7 +2886,7 @@ class RosterWindow: elif model[titer][C_TYPE] == 'account': # we're on an account entry in the roster if self.tooltip.timeout == 0 or self.tooltip.id != props[0]: - account = model[titer][C_ACCOUNT].decode('utf-8') + account = model[titer][C_ACCOUNT] if account == 'all': self.tooltip.id = row self.tooltip.account = None @@ -3025,9 +3024,9 @@ class RosterWindow: continue accounts.append(account) self.send_status(account, 'offline', msg, to=contact.jid) - new_rule = {'order': u'1', 'type': u'jid', - 'action': u'deny', 'value' : contact.jid, - 'child': [u'message', u'iq', u'presence-out']} + new_rule = {'order': '1', 'type': 'jid', + 'action': 'deny', 'value' : contact.jid, + 'child': ['message', 'iq', 'presence-out']} gajim.connections[account].blocked_list.append(new_rule) # needed for draw_contact: gajim.connections[account].blocked_contacts.append( @@ -3045,9 +3044,9 @@ class RosterWindow: self.draw_group(group, account) self.send_status(account, 'offline', msg, to=contact.jid) self.draw_contact(contact.jid, account) - new_rule = {'order': u'1', 'type': u'group', 'action': u'deny', - 'value' : group, 'child': [u'message', u'iq', - u'presence-out']} + new_rule = {'order': '1', 'type': 'group', 'action': 'deny', + 'value' : group, 'child': ['message', 'iq', + 'presence-out']} # account is the same for all when we block a group gajim.connections[list_[0][1]].blocked_list.append(new_rule) for account in accounts: @@ -3485,8 +3484,8 @@ class RosterWindow: path = list_of_paths[0] type_ = model[path][C_TYPE] if type_ in ('contact', 'group', 'agent'): - jid = model[path][C_JID].decode('utf-8') - account = model[path][C_ACCOUNT].decode('utf-8') + jid = model[path][C_JID] + account = model[path][C_ACCOUNT] self.on_rename(widget, type_, jid, account) elif event.keyval == Gdk.KEY_Delete: @@ -3495,7 +3494,7 @@ class RosterWindow: if not len(list_of_paths): return type_ = model[list_of_paths[0]][C_TYPE] - account = model[list_of_paths[0]][C_ACCOUNT].decode('utf-8') + account = model[list_of_paths[0]][C_ACCOUNT] if type_ in ('account', 'group', 'self_contact') or \ account == gajim.ZEROCONF_ACC_NAME: return @@ -3503,8 +3502,8 @@ class RosterWindow: for path in list_of_paths: if model[path][C_TYPE] != type_: return - jid = model[path][C_JID].decode('utf-8') - account = model[path][C_ACCOUNT].decode('utf-8') + jid = model[path][C_JID] + account = model[path][C_ACCOUNT] contact = gajim.contacts.get_contact_with_highest_priority( account, jid) list_.append((contact, account)) @@ -3616,7 +3615,7 @@ class RosterWindow: if type_ in ('agent', 'contact', 'self_contact', 'groupchat'): self.on_row_activated(widget, path) elif type_ == 'account': - account = model[path][C_ACCOUNT].decode('utf-8') + account = model[path][C_ACCOUNT] if account != 'all': show = gajim.connections[account].connected if show > 1: # We are connected @@ -3830,7 +3829,7 @@ class RosterWindow: 'contacts.')) self.update_status_combobox() return - status = model[active][2].decode('utf-8') + status = model[active][2] # status "desync'ed" or not statuses_unified = helpers.statuses_unified() if (active == 7 and statuses_unified) or (active == 9 and \ @@ -4047,7 +4046,7 @@ class RosterWindow: """ jid = contact.jid if resource is not None: - jid = jid + u'/' + resource + jid = jid + '/' + resource adhoc_commands.CommandWindow(account, jid) def on_roster_window_focus_in_event(self, widget, event): @@ -4095,8 +4094,8 @@ class RosterWindow: for path in list_of_paths: type_ = model[path][C_TYPE] if type_ in ('contact', 'agent'): - jid = model[path][C_JID].decode('utf-8') - account = model[path][C_ACCOUNT].decode('utf-8') + jid = model[path][C_JID] + account = model[path][C_ACCOUNT] contact = gajim.contacts.get_first_contact_from_jid(account, jid) self.on_info(widget, contact, account) @@ -4109,8 +4108,8 @@ class RosterWindow: path = list_of_paths[0] type_ = model[path][C_TYPE] if type_ in ('contact', 'agent'): - jid = model[path][C_JID].decode('utf-8') - account = model[path][C_ACCOUNT].decode('utf-8') + jid = model[path][C_JID] + account = model[path][C_ACCOUNT] contact = gajim.contacts.get_first_contact_from_jid(account, jid) self.on_history(widget, contact, account) @@ -4125,7 +4124,7 @@ class RosterWindow: this way) """ model = self.modelfilter - account = model[path][C_ACCOUNT].decode('utf-8') + account = model[path][C_ACCOUNT] type_ = model[path][C_TYPE] if type_ in ('group', 'account'): if self.tree.row_expanded(path): @@ -4133,7 +4132,7 @@ class RosterWindow: else: self.tree.expand_row(path, False) return - jid = model[path][C_JID].decode('utf-8') + jid = model[path][C_JID] resource = None contact = gajim.contacts.get_contact_with_highest_priority(account, jid) titer = model.get_iter(path) @@ -4160,7 +4159,7 @@ class RosterWindow: if not first_ev and model.iter_has_child(titer): child_iter = model.iter_children(titer) while not first_ev and child_iter: - child_jid = model[child_iter][C_JID].decode('utf-8') + child_jid = model[child_iter][C_JID] first_ev = gajim.events.get_first_event(account, child_jid) if first_ev: jid = child_jid @@ -4205,11 +4204,11 @@ class RosterWindow: if self.regroup: # merged accounts accounts = gajim.connections.keys() else: - accounts = [model[titer][C_ACCOUNT].decode('utf-8')] + accounts = [model[titer][C_ACCOUNT]] type_ = model[titer][C_TYPE] if type_ == 'group': - group = model[titer][C_JID].decode('utf-8') + group = model[titer][C_JID] child_model[child_iter][C_IMG] = \ gajim.interface.jabber_state_images['16']['opened'] if self.rfilter_enabled: @@ -4242,8 +4241,8 @@ class RosterWindow: self.tree.expand_row(path, False) elif type_ == 'contact': # Metacontact got toggled, update icon - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] contact = gajim.contacts.get_contact(account, jid) for group in contact.groups: if account + group + jid in self.collapsed_rows: @@ -4269,7 +4268,7 @@ class RosterWindow: if self.regroup: # merged accounts accounts = gajim.connections.keys() else: - accounts = [model[titer][C_ACCOUNT].decode('utf-8')] + accounts = [model[titer][C_ACCOUNT]] type_ = model[titer][C_TYPE] if type_ == 'group': @@ -4277,7 +4276,7 @@ class RosterWindow: jabber_state_images['16']['closed'] if self.rfilter_enabled: return - group = model[titer][C_JID].decode('utf-8') + group = model[titer][C_JID] for account in accounts: if group in gajim.groups[account]: # This account has this group gajim.groups[account][group]['expand'] = False @@ -4290,8 +4289,8 @@ class RosterWindow: self.draw_account(account) elif type_ == 'contact': # Metacontact got toggled, update icon - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] contact = gajim.contacts.get_contact(account, jid) groups = contact.groups if not groups: @@ -4323,8 +4322,6 @@ class RosterWindow: if not account: return - account = account.decode('utf-8') - if type_ == 'contact': child_iter = model.convert_iter_to_child_iter(titer) if self.model.iter_has_child(child_iter): @@ -4332,10 +4329,10 @@ class RosterWindow: # redraw us to show/hide expand icon if self.filtering: # Prevent endless loops - jid = model[titer][C_JID].decode('utf-8') + jid = model[titer][C_JID] GObject.idle_add(self.draw_contact, jid, account) elif type_ == 'group': - group = model[titer][C_JID].decode('utf-8') + group = model[titer][C_JID] self._adjust_group_expand_collapse_state(group, account) elif type_ == 'account': self._adjust_account_expand_collapse_state(account) @@ -4365,8 +4362,8 @@ class RosterWindow: # if row[C_TYPE] != 'contact': # self._last_selected_contact = [] # return -# jid = row[C_JID].decode('utf-8') -# account = row[C_ACCOUNT].decode('utf-8') +# jid = row[C_JID] +# account = row[C_ACCOUNT] # self._last_selected_contact.append((jid, account)) # GObject.idle_add(self.draw_contact, jid, account, True) @@ -4704,9 +4701,9 @@ class RosterWindow: path_dest = (path_dest[0], path_dest[1]-1) # destination: the row something got dropped on iter_dest = model.get_iter(path_dest) - type_dest = model[iter_dest][C_TYPE].decode('utf-8') - jid_dest = model[iter_dest][C_JID].decode('utf-8') - account_dest = model[iter_dest][C_ACCOUNT].decode('utf-8') + type_dest = model[iter_dest][C_TYPE] + jid_dest = model[iter_dest][C_JID] + account_dest = model[iter_dest][C_ACCOUNT] # drop on account row in merged mode, we cannot know the desired account if account_dest == 'all': @@ -4770,7 +4767,7 @@ class RosterWindow: path_source = treeview.get_selection().get_selected_rows()[1][0] iter_source = model.get_iter(path_source) type_source = model[iter_source][C_TYPE] - account_source = model[iter_source][C_ACCOUNT].decode('utf-8') + account_source = model[iter_source][C_ACCOUNT] if gajim.config.get_per('accounts', account_source, 'is_zeroconf'): return @@ -4788,14 +4785,14 @@ class RosterWindow: if account_source != account_dest: # drop on another account return - grp_source = model[iter_source][C_JID].decode('utf-8') + grp_source = model[iter_source][C_JID] delimiter = gajim.connections[account_source].nested_group_delimiter grp_source_list = grp_source.split(delimiter) new_grp = None if type_dest == 'account': new_grp = grp_source_list[-1] elif type_dest == 'group': - new_grp = model[iter_dest][C_JID].decode('utf-8') + delimiter +\ + new_grp = model[iter_dest][C_JID] + delimiter +\ grp_source_list[-1] if new_grp: self.move_group(grp_source, new_grp, account_source) @@ -4817,26 +4814,26 @@ class RosterWindow: it = iter_source while model[it][C_TYPE] == 'contact': it = model.iter_parent(it) - grp_source = model[it][C_JID].decode('utf-8') + grp_source = model[it][C_JID] if grp_source in helpers.special_groups and \ grp_source not in ('Not in Roster', 'Observers'): # a transport or a minimized groupchat was dragged # we can add it to other accounts but not move it to another group, # see below return - jid_source = data.decode('utf-8') + jid_source = data c_source = gajim.contacts.get_contact_with_highest_priority( account_source, jid_source) # Get destination group grp_dest = None if type_dest == 'group': - grp_dest = model[iter_dest][C_JID].decode('utf-8') + grp_dest = model[iter_dest][C_JID] elif type_dest in ('contact', 'agent'): it = iter_dest while model[it][C_TYPE] != 'group': it = model.iter_parent(it) - grp_dest = model[it][C_JID].decode('utf-8') + grp_dest = model[it][C_JID] if grp_dest in helpers.special_groups: return @@ -5092,8 +5089,8 @@ class RosterWindow: if not model[titer][C_JID] or not model[titer][C_ACCOUNT]: # This can append when at the moment we add the row return - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] self._set_contact_row_background_color(renderer, jid, account) parent_iter = model.iter_parent(titer) if model[parent_iter][C_TYPE] == 'contact': @@ -5141,8 +5138,8 @@ class RosterWindow: if not model[titer][C_JID] or not model[titer][C_ACCOUNT]: # This can append when at the moment we add the row return - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] color = None if type_ == 'groupchat': ctrl = gajim.interface.minimized_controls[account].get(jid, @@ -5190,8 +5187,8 @@ class RosterWindow: if not model[titer][C_JID] or not model[titer][C_ACCOUNT]: # This can append at the moment we add the row return - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] self._set_contact_row_background_color(renderer, jid, account) def _fill_avatar_pixbuf_renderer(self, column, renderer, model, titer, @@ -5217,8 +5214,8 @@ class RosterWindow: if not model[titer][C_JID] or not model[titer][C_ACCOUNT]: # This can append at the moment we add the row return - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] self._set_contact_row_background_color(renderer, jid, account) else: renderer.set_property('visible', False) @@ -5727,7 +5724,7 @@ class RosterWindow: Make account's popup menu """ model = self.modelfilter - account = model[titer][C_ACCOUNT].decode('utf-8') + account = model[titer][C_ACCOUNT] if account != 'all': # not in merged mode menu = self.build_account_menu(account) @@ -5762,8 +5759,8 @@ class RosterWindow: """ model = self.modelfilter path = model.get_path(titer) - group = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + group = model[titer][C_JID] + account = model[titer][C_ACCOUNT] list_ = [] # list of (jid, account) tuples list_online = [] # list of (jid, account) tuples @@ -5923,8 +5920,8 @@ class RosterWindow: Make contact's popup menu """ model = self.modelfilter - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] contact = gajim.contacts.get_contact_with_highest_priority(account, jid) menu = gui_menu_builder.get_contact_menu(contact, account) event_button = gtkgui_helpers.get_possible_button_event(event) @@ -5941,8 +5938,8 @@ class RosterWindow: is_blocked = True privacy_rules_supported = True for titer in iters: - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] if gajim.connections[account].connected < 2: one_account_offline = True if not gajim.connections[account].privacy_rules_supported: @@ -6040,9 +6037,9 @@ class RosterWindow: Make transport's popup menu """ model = self.modelfilter - jid = model[titer][C_JID].decode('utf-8') + jid = model[titer][C_JID] path = model.get_path(titer) - account = model[titer][C_ACCOUNT].decode('utf-8') + account = model[titer][C_ACCOUNT] contact = gajim.contacts.get_contact_with_highest_priority(account, jid) menu = Gtk.Menu() @@ -6177,8 +6174,8 @@ class RosterWindow: def make_groupchat_menu(self, event, titer): model = self.modelfilter - jid = model[titer][C_JID].decode('utf-8') - account = model[titer][C_ACCOUNT].decode('utf-8') + jid = model[titer][C_JID] + account = model[titer][C_ACCOUNT] contact = gajim.contacts.get_contact_with_highest_priority(account, jid) menu = Gtk.Menu() diff --git a/src/statusicon.py b/src/statusicon.py index ceb4a5bee..8f5b82a38 100644 --- a/src/statusicon.py +++ b/src/statusicon.py @@ -477,7 +477,7 @@ class StatusIcon: def on_change_status_message_activate(self, widget): model = gajim.interface.roster.status_combobox.get_model() active = gajim.interface.roster.status_combobox.get_active() - status = model[active][2].decode('utf-8') + status = model[active][2] def on_response(message, pep_dict): if message is None: # None if user press Cancel return diff --git a/test/integration/test_roster.py b/test/integration/test_roster.py index 43f40ed76..5b81f5824 100644 --- a/test/integration/test_roster.py +++ b/test/integration/test_roster.py @@ -186,13 +186,13 @@ class TestRosterWindowMetaContacts(TestRosterWindowRegrouped): def test_connect_new_metacontact(self): self.test_fill_roster_model() - jid = u'coolstuff@gajim.org' + jid = 'coolstuff@gajim.org' contact = gajim.contacts.create_contact(jid, account1) gajim.contacts.add_contact(account1, contact) self.roster.add_contact(jid, account1) self.roster.chg_contact_status(contact, 'offline', '', account1) - gajim.contacts.add_metacontact(account1, u'samejid@gajim.org', + gajim.contacts.add_metacontact(account1, 'samejid@gajim.org', account1, jid) self.roster.chg_contact_status(contact, 'online', '', account1) diff --git a/test/lib/data.py b/test/lib/data.py index af2a87057..584af050e 100755 --- a/test/lib/data.py +++ b/test/lib/data.py @@ -1,77 +1,77 @@ # -*- coding: utf-8 -*- -account1 = u'acc1' -account2 = u'Cool"chârßéµö' -account3 = u'dingdong.org' +account1 = 'acc1' +account2 = 'Cool"chârßéµö' +account3 = 'dingdong.org' contacts = {} contacts[account1] = { - u'myjid@'+account1: { + 'myjid@'+account1: { 'ask': None, 'groups': [], 'name': None, 'resources': {}, - 'subscription': u'both'}, - u'default1@gajim.org': { + 'subscription': 'both'}, + 'default1@gajim.org': { 'ask': None, 'groups': [], 'name': None, 'resources': {}, - 'subscription': u'both'}, - u'default2@gajim.org': { - 'ask': None, 'groups': [u'GroupA',], 'name': None, 'resources': {}, - 'subscription': u'both'}, - u'Cool"chârßéµö@gajim.org': { - 'ask': None, 'groups': [u' @@ -38,10 +38,10 @@ session_init = ''' - + ''' - - + + transport_info = ''' ") - + def _simulate_jingle_session(self): - + self.dispatcher.RegisterHandler('iq', self.con._JingleCB, 'set' , common.xmpp.NS_JINGLE) self.dispatcher.ProcessNonBlocking(session_init) @@ -142,15 +142,15 @@ class TestJingle(unittest.TestCase): # we have to manually simulate this behavior session.approve_session() self.con.send_file_approval(self.recieve_file) - + self.dispatcher.ProcessNonBlocking(transport_info) - + def test_jingle_session(self): self._simulate_connect() self._simulate_jingle_session() - - + + if __name__ == '__main__': diff --git a/test/unit/test_xmpp_transports_nb.py b/test/unit/test_xmpp_transports_nb.py index 633549560..771bf5f1b 100644 --- a/test/unit/test_xmpp_transports_nb.py +++ b/test/unit/test_xmpp_transports_nb.py @@ -40,38 +40,38 @@ class TestModuleLevelFunctions(unittest.TestCase): self.assertEqual(_user, user) self.assertEqual(_passwd, passwd) - bosh_dict = {'bosh_content': u'text/xml; charset=utf-8', + bosh_dict = {'bosh_content': 'text/xml; charset=utf-8', 'bosh_hold': 2, 'bosh_http_pipelining': False, - 'bosh_uri': u'http://gajim.org:5280/http-bind', + 'bosh_uri': 'http://gajim.org:5280/http-bind', 'bosh_useproxy': False, 'bosh_wait': 30, 'bosh_wait_for_restart_response': False, - 'host': u'172.16.99.11', - 'pass': u'pass', + 'host': '172.16.99.11', + 'pass': 'pass', 'port': 3128, - 'type': u'bosh', + 'type': 'bosh', 'useauth': True, - 'user': u'user'} - check_dict(bosh_dict, host=u'gajim.org', port=5280, user=u'user', - passwd=u'pass') + 'user': 'user'} + check_dict(bosh_dict, host='gajim.org', port=5280, user='user', + passwd='pass') - proxy_dict = {'bosh_content': u'text/xml; charset=utf-8', + proxy_dict = {'bosh_content': 'text/xml; charset=utf-8', 'bosh_hold': 2, 'bosh_http_pipelining': False, 'bosh_port': 5280, - 'bosh_uri': u'', + 'bosh_uri': '', 'bosh_useproxy': True, 'bosh_wait': 30, 'bosh_wait_for_restart_response': False, - 'host': u'172.16.99.11', - 'pass': u'pass', + 'host': '172.16.99.11', + 'pass': 'pass', 'port': 3128, 'type': 'socks5', 'useauth': True, - 'user': u'user'} - check_dict(proxy_dict, host=u'172.16.99.11', port=3128, user=u'user', - passwd=u'pass') + 'user': 'user'} + check_dict(proxy_dict, host='172.16.99.11', port=3128, user='user', + passwd='pass') if __name__ == '__main__':