use getTimestamp function to know the time the message has been sent (especially in case it hase been stored on the jabber server when user is offline)
This commit is contained in:
parent
59ac801bc2
commit
8e2a95f46c
4 changed files with 27 additions and 20 deletions
|
@ -977,7 +977,7 @@ class Message(Protocol):
|
||||||
|
|
||||||
def setTimestamp(self,val=None):
|
def setTimestamp(self,val=None):
|
||||||
if not val:
|
if not val:
|
||||||
val = time.strftime( '%Y%m%dT%H:%M:%S', time.gmtime( time.time()))
|
val = time.strftime( '%Y%m%dT%H:%M:%S', time.localtime(time.time()))
|
||||||
self.time_stamp = val
|
self.time_stamp = val
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -177,16 +177,18 @@ class GajimCore:
|
||||||
def messageCB(self, con, msg):
|
def messageCB(self, con, msg):
|
||||||
"""Called when we recieve a message"""
|
"""Called when we recieve a message"""
|
||||||
typ = msg.getType()
|
typ = msg.getType()
|
||||||
|
tim = msg.getTimestamp()
|
||||||
|
tim = time.strptime(tim, "%Y%m%dT%H:%M:%S")
|
||||||
if typ == 'error':
|
if typ == 'error':
|
||||||
self.hub.sendPlugin('MSGERROR', self.connexions[con], \
|
self.hub.sendPlugin('MSGERROR', self.connexions[con], \
|
||||||
(str(msg.getFrom()), msg.getErrorCode(), msg.getError(), \
|
(str(msg.getFrom()), msg.getErrorCode(), msg.getError(), \
|
||||||
msg.getBody()))
|
msg.getBody(), tim))
|
||||||
elif typ == 'groupchat':
|
elif typ == 'groupchat':
|
||||||
self.hub.sendPlugin('GC_MSG', self.connexions[con], \
|
self.hub.sendPlugin('GC_MSG', self.connexions[con], \
|
||||||
(str(msg.getFrom()), msg.getBody()))
|
(str(msg.getFrom()), msg.getBody(), tim))
|
||||||
else:
|
else:
|
||||||
self.hub.sendPlugin('MSG', self.connexions[con], \
|
self.hub.sendPlugin('MSG', self.connexions[con], \
|
||||||
(str(msg.getFrom()), msg.getBody()))
|
(str(msg.getFrom()), msg.getBody(), tim))
|
||||||
# END messageCB
|
# END messageCB
|
||||||
|
|
||||||
def presenceCB(self, con, prs):
|
def presenceCB(self, con, prs):
|
||||||
|
|
|
@ -192,8 +192,9 @@ class message_Window:
|
||||||
txt = ""
|
txt = ""
|
||||||
end_iter = buffer.get_end_iter()
|
end_iter = buffer.get_end_iter()
|
||||||
if not tim:
|
if not tim:
|
||||||
tim = time.strftime("[%H:%M:%S]")
|
tim = time.localtime()
|
||||||
buffer.insert(end_iter, tim)
|
tims = time.strftime("[%H:%M:%S]", tim)
|
||||||
|
buffer.insert(end_iter, tims)
|
||||||
if contact:
|
if contact:
|
||||||
if contact == 'status':
|
if contact == 'status':
|
||||||
buffer.insert_with_tags_by_name(end_iter, txt+'\n', \
|
buffer.insert_with_tags_by_name(end_iter, txt+'\n', \
|
||||||
|
@ -423,8 +424,9 @@ class gc:
|
||||||
txt = ""
|
txt = ""
|
||||||
end_iter = buffer.get_end_iter()
|
end_iter = buffer.get_end_iter()
|
||||||
if not tim:
|
if not tim:
|
||||||
tim = time.strftime("[%H:%M:%S]")
|
tim = time.localtime()
|
||||||
buffer.insert(end_iter, tim)
|
tims = time.strftime("[%H:%M:%S]", tim)
|
||||||
|
buffer.insert(end_iter, tims)
|
||||||
if contact:
|
if contact:
|
||||||
if contact == self.nick:
|
if contact == self.nick:
|
||||||
buffer.insert_with_tags_by_name(end_iter, '<'+contact+'> ', \
|
buffer.insert_with_tags_by_name(end_iter, '<'+contact+'> ', \
|
||||||
|
@ -1404,7 +1406,7 @@ class roster_Window:
|
||||||
self.plugin.connected[account] = statuss.index(status)
|
self.plugin.connected[account] = statuss.index(status)
|
||||||
self.set_optionmenu()
|
self.set_optionmenu()
|
||||||
|
|
||||||
def on_message(self, jid, msg, account):
|
def on_message(self, jid, msg, tim, account):
|
||||||
"""when we receive a message"""
|
"""when we receive a message"""
|
||||||
if not self.contacts[account].has_key(jid):
|
if not self.contacts[account].has_key(jid):
|
||||||
user1 = user(jid, jid, ['not in list'], \
|
user1 = user(jid, jid, ['not in list'], \
|
||||||
|
@ -1427,7 +1429,7 @@ class roster_Window:
|
||||||
self.plugin.queues[account][jid] = Queue.Queue(50)
|
self.plugin.queues[account][jid] = Queue.Queue(50)
|
||||||
self.redraw_jid(jid, account)
|
self.redraw_jid(jid, account)
|
||||||
self.plugin.systray.add_jid(jid, account)
|
self.plugin.systray.add_jid(jid, account)
|
||||||
tim = time.strftime("[%H:%M:%S]")
|
# tim = time.strftime("[%H:%M:%S]")
|
||||||
self.plugin.queues[account][jid].put((msg, tim))
|
self.plugin.queues[account][jid].put((msg, tim))
|
||||||
if not path:
|
if not path:
|
||||||
self.add_user_to_roster(jid, account)
|
self.add_user_to_roster(jid, account)
|
||||||
|
@ -1447,7 +1449,8 @@ class roster_Window:
|
||||||
self.tree.expand_row(path[0:2], FALSE)
|
self.tree.expand_row(path[0:2], FALSE)
|
||||||
self.tree.scroll_to_cell(path)
|
self.tree.scroll_to_cell(path)
|
||||||
self.tree.set_cursor(path)
|
self.tree.set_cursor(path)
|
||||||
self.plugin.windows[account]['chats'][jid].print_conversation(msg)
|
self.plugin.windows[account]['chats'][jid].print_conversation(msg, \
|
||||||
|
tim = tim)
|
||||||
if not self.plugin.windows[account]['chats'][jid].window.\
|
if not self.plugin.windows[account]['chats'][jid].window.\
|
||||||
get_property('is-active'):
|
get_property('is-active'):
|
||||||
self.plugin.systray.add_jid(jid, account)
|
self.plugin.systray.add_jid(jid, account)
|
||||||
|
@ -1494,7 +1497,7 @@ class roster_Window:
|
||||||
tell that to the core and exit gtk"""
|
tell that to the core and exit gtk"""
|
||||||
self.plugin.config['hiddenlines'] = string.join(self.hidden_lines, '\t')
|
self.plugin.config['hiddenlines'] = string.join(self.hidden_lines, '\t')
|
||||||
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config))
|
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config))
|
||||||
self.plugin.send('QUIT', None, ('gtkgui', 0))
|
self.plugin.send('QUIT', None, ('gtkgui', 1))
|
||||||
print _("plugin gtkgui stopped")
|
print _("plugin gtkgui stopped")
|
||||||
self.close_all(self.plugin.windows)
|
self.close_all(self.plugin.windows)
|
||||||
self.plugin.systray.t.destroy()
|
self.plugin.systray.t.destroy()
|
||||||
|
@ -2093,19 +2096,19 @@ class plugin:
|
||||||
array[10], account)
|
array[10], account)
|
||||||
|
|
||||||
def handle_event_msg(self, account, array):
|
def handle_event_msg(self, account, array):
|
||||||
#('MSG', account, (user, msg))
|
#('MSG', account, (user, msg, time))
|
||||||
jid = string.split(array[0], '/')[0]
|
jid = string.split(array[0], '/')[0]
|
||||||
if string.find(jid, "@") <= 0:
|
if string.find(jid, "@") <= 0:
|
||||||
jid = string.replace(jid, '@', '')
|
jid = string.replace(jid, '@', '')
|
||||||
self.roster.on_message(jid, array[1], account)
|
self.roster.on_message(jid, array[1], array[2], account)
|
||||||
|
|
||||||
def handle_event_msgerror(self, account, array):
|
def handle_event_msgerror(self, account, array):
|
||||||
#('MSGERROR', account, (user, error_code, error_msg, msg))
|
#('MSGERROR', account, (user, error_code, error_msg, msg, time))
|
||||||
jid = string.split(array[0], '/')[0]
|
jid = string.split(array[0], '/')[0]
|
||||||
if string.find(jid, "@") <= 0:
|
if string.find(jid, "@") <= 0:
|
||||||
jid = string.replace(jid, '@', '')
|
jid = string.replace(jid, '@', '')
|
||||||
self.roster.on_message(jid, _("error while sending") + " \"%s\" ( %s )"%\
|
self.roster.on_message(jid, _("error while sending") + " \"%s\" ( %s )"%\
|
||||||
(array[3], array[2]), account)
|
(array[3], array[2]), array[4], account)
|
||||||
|
|
||||||
def handle_event_subscribe(self, account, array):
|
def handle_event_subscribe(self, account, array):
|
||||||
#('SUBSCRIBE', account, (jid, text))
|
#('SUBSCRIBE', account, (jid, text))
|
||||||
|
@ -2205,18 +2208,19 @@ class plugin:
|
||||||
self.windows['logs'][array[0]].new_line(array[1:])
|
self.windows['logs'][array[0]].new_line(array[1:])
|
||||||
|
|
||||||
def handle_event_gc_msg(self, account, array):
|
def handle_event_gc_msg(self, account, array):
|
||||||
#('GC_MSG', account, (jid, msg))
|
#('GC_MSG', account, (jid, msg, time))
|
||||||
jids = string.split(array[0], '/')
|
jids = string.split(array[0], '/')
|
||||||
jid = jids[0]
|
jid = jids[0]
|
||||||
if not self.windows[account]['gc'].has_key(jid):
|
if not self.windows[account]['gc'].has_key(jid):
|
||||||
return
|
return
|
||||||
if len(jids) == 1:
|
if len(jids) == 1:
|
||||||
#message from server
|
#message from server
|
||||||
self.windows[account]['gc'][jid].print_conversation(array[1])
|
self.windows[account]['gc'][jid].print_conversation(array[1], \
|
||||||
|
tim = array[2])
|
||||||
else:
|
else:
|
||||||
#message from someone
|
#message from someone
|
||||||
self.windows[account]['gc'][jid].print_conversation(array[1], \
|
self.windows[account]['gc'][jid].print_conversation(array[1], \
|
||||||
jids[1])
|
jids[1], array[2])
|
||||||
if not self.windows[account]['gc'][jid].window.\
|
if not self.windows[account]['gc'][jid].window.\
|
||||||
get_property('is-active'):
|
get_property('is-active'):
|
||||||
self.systray.add_jid(jid, account)
|
self.systray.add_jid(jid, account)
|
||||||
|
|
|
@ -96,7 +96,8 @@ class plugin:
|
||||||
msg = string.replace(ev[2][1], '\n', '\\n')
|
msg = string.replace(ev[2][1], '\n', '\\n')
|
||||||
jid = string.split(ev[2][0], '/')[0]
|
jid = string.split(ev[2][0], '/')[0]
|
||||||
fic = open(LOGPATH + jid, "a")
|
fic = open(LOGPATH + jid, "a")
|
||||||
fic.write("%s:recv:%s\n" % (tim, msg))
|
t = time.mktime(ev[2][2])
|
||||||
|
fic.write("%s:recv:%s\n" % (t, msg))
|
||||||
fic.close()
|
fic.close()
|
||||||
elif ev[0] == 'MSGSENT':
|
elif ev[0] == 'MSGSENT':
|
||||||
msg = string.replace(ev[2][1], '\n', '\\n')
|
msg = string.replace(ev[2][1], '\n', '\\n')
|
||||||
|
|
Loading…
Add table
Reference in a new issue