improvements, status messages in chat window

This commit is contained in:
Yann Leboulanger 2003-12-02 12:39:28 +00:00
parent fd9c01fc4f
commit 11f74c9e30
3 changed files with 35 additions and 12 deletions

View File

@ -78,11 +78,11 @@ class GajimCore:
log.debug("unsubscribe request from %s" % who)
elif type == 'unsubscribed':
log.debug("we are now unsubscribed to %s" % who)
# END presenceCB
def disconnectedCB(self, con):
log.debug("disconnectedCB")
self.con.disconnect()
# END disconenctedCB
def connect(self, account):
@ -95,14 +95,15 @@ class GajimCore:
try:
self.con.connect()
except IOError, e:
log.debug("Couldn't connect to %s" % e)
sys.exit(0)
log.debug("Couldn't connect to %s %s" % (hostname, e))
return 0
else:
log.debug("Connected to server")
self.con.setMessageHandler(self.messageCB)
self.con.setPresenceHandler(self.presenceCB)
self.con.setDisconnectHandler(self.disconnectedCB)
#BUG in jabberpy library : if hostname is wrong : "boucle"
if self.con.auth(name, password, ressource):
self.con.requestRoster()
roster = self.con.getRoster().getRaw()
@ -112,7 +113,8 @@ class GajimCore:
self.con.sendInitPresence()
self.connected = 1
else:
sys.exit(1)
log.debug("Couldn't authentificate to %s" % hostname)
return 0
# END connect
def mainLoop(self):

View File

@ -1,9 +1,10 @@
[Server]
hostname = SERVER HOSTNAME
[Profile]
accounts = Account1
[Account1]
hostname = SERVER HOSTNAME
name = LOGIN NAME
password = PASSWORD
ressource = gajim
@ -20,6 +21,7 @@ modules = sock
showoffline = 0
inmsgcolor = red
outmsgcolor = blue
statusmsgcolor = green
iconstyle = sun
autopopup = 0

View File

@ -233,10 +233,15 @@ class message:
def print_conversation(self, txt, contact = None):
end_iter = self.convTxtBuffer.get_end_iter()
if contact:
self.convTxtBuffer.insert_with_tags_by_name(end_iter, '<moi> ', 'outgoing')
if contact == 'status':
self.convTxtBuffer.insert_with_tags_by_name(end_iter, txt+'\n', \
'status')
else:
self.convTxtBuffer.insert_with_tags_by_name(end_iter, '<moi> ', 'outgoing')
self.convTxtBuffer.insert(end_iter, txt+'\n')
else:
self.convTxtBuffer.insert_with_tags_by_name(end_iter, '<' + self.user.name + '> ', 'incoming')
self.convTxtBuffer.insert(end_iter, txt+'\n')
self.convTxtBuffer.insert(end_iter, txt+'\n')
self.conversation.scroll_to_mark(\
self.convTxtBuffer.get_mark('end'), 0.1, 0, 0, 0)
@ -287,12 +292,17 @@ class message:
self.tag = self.convTxtBuffer.create_tag("incoming")
color = self.cfgParser.GtkGui_inmsgcolor
if not color:
color = red
color = 'red'
self.tag.set_property("foreground", color)
self.tag = self.convTxtBuffer.create_tag("outgoing")
color = self.cfgParser.GtkGui_outmsgcolor
if not color:
color = blue
color = 'blue'
self.tag.set_property("foreground", color)
self.tag = self.convTxtBuffer.create_tag("status")
color = self.cfgParser.GtkGui_statusmsgcolor
if not color:
color = 'green'
self.tag.set_property("foreground", color)
class roster:
@ -570,6 +580,15 @@ class plugin:
self.r.mkroster(ev[1])
elif ev[0] == 'NOTIFY':
jid = string.split(ev[1][0], '/')[0]
#Update user
if self.r.l_contact.has_key(jid):
u = self.r.l_contact[jid]['user']
u.show = ev[1][1]
u.status = ev[1][2]
#Print status in chat window
if self.r.tab_messages.has_key(jid):
self.r.tab_messages[jid].print_conversation(\
"%s is now %s (%s)" % (u.name, ev[1][1], ev[1][2]), 'status')
if string.find(jid, "@") <= 0:
#It must be an agent
jid = string.replace(jid, '@', '')