From e63752db768ae771ffc70eec7f04dc941d34adf7 Mon Sep 17 00:00:00 2001 From: souliane Date: Wed, 12 Feb 2014 21:46:48 +0100 Subject: [PATCH] memory (sqlite): the result of pickle.dumps in addToHistory must be encoded for the special characters to be stored. --- src/memory/sqlite.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/memory/sqlite.py b/src/memory/sqlite.py index 21068b4f..ff2a9d39 100644 --- a/src/memory/sqlite.py +++ b/src/memory/sqlite.py @@ -190,9 +190,10 @@ class SqliteStorage(object): assert(profile) if extra is None: extra = {} + extra_ = pickle.dumps({k: v.encode('utf-8') for k, v in extra.items()}, 0).decode('utf-8') d = self.dbpool.runQuery("INSERT INTO history(source, source_res, dest, dest_res, timestamp, message, type, extra, profile_id) VALUES (?,?,?,?,?,?,?,?,?)", (from_jid.userhost(), from_jid.resource, to_jid.userhost(), to_jid.resource, timestamp or time(), - message, _type, pickle.dumps(extra, 0), self.profiles[profile])) + message, _type, extra_, self.profiles[profile])) d.addErrback(lambda ignore: error(_("Can't save following message in history: from [%(from_jid)s] to [%(to_jid)s] ==> [%(message)s]" % {"from_jid": from_jid.full(), "to_jid": to_jid.full(), "message": message}))) return d