2003-11-30 17:02:00 +01:00
|
|
|
#!/usr/bin/env python
|
|
|
|
## plugins/logger.py
|
|
|
|
##
|
|
|
|
## Gajim Team:
|
|
|
|
## - Yann Le Boulanger <asterix@crans.org>
|
|
|
|
## - Vincent Hanquez <tab@tuxfamily.org>
|
|
|
|
## - David Ferlier <david@yazzy.org>
|
|
|
|
##
|
|
|
|
## Copyright (C) 2003 Gajim Team
|
|
|
|
##
|
|
|
|
## This program is free software; you can redistribute it and/or modify
|
|
|
|
## it under the terms of the GNU General Public License as published
|
|
|
|
## by the Free Software Foundation; version 2 only.
|
|
|
|
##
|
|
|
|
## This program is distributed in the hope that it will be useful,
|
|
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
## GNU General Public License for more details.
|
|
|
|
##
|
|
|
|
|
|
|
|
import os
|
|
|
|
import string
|
|
|
|
import time
|
|
|
|
import common.optparser
|
|
|
|
CONFPATH = "~/.gajimrc"
|
|
|
|
LOGPATH = os.path.expanduser("~/.gajim/logs/")
|
|
|
|
|
|
|
|
class plugin:
|
|
|
|
def read_queue(self):
|
|
|
|
while 1:
|
|
|
|
while self.queueIN.empty() == 0:
|
|
|
|
lognotsep = self.cfgParser.Logger_lognotsep
|
|
|
|
if lognotsep:
|
|
|
|
lognotsep = string.atoi(lognotsep)
|
|
|
|
else:
|
|
|
|
#default
|
|
|
|
lognotsep = 1
|
|
|
|
lognotusr = self.cfgParser.Logger_lognotusr
|
|
|
|
if lognotusr:
|
|
|
|
lognotusr = string.atoi(lognotusr)
|
|
|
|
else:
|
|
|
|
#default
|
|
|
|
lognotusr = 1
|
|
|
|
# tim = time.strftime("%d%m%y%H%M%S")
|
2003-12-04 20:57:06 +01:00
|
|
|
tim = "%d" % time.time()
|
2003-11-30 17:02:00 +01:00
|
|
|
|
|
|
|
ev = self.queueIN.get()
|
|
|
|
if ev[0] == 'QUIT':
|
|
|
|
return
|
|
|
|
elif ev[0] == 'NOTIFY':
|
|
|
|
status = ev[1][2]
|
2003-12-20 14:22:37 +01:00
|
|
|
jid = string.split(ev[1][0], '/')[0]
|
2003-11-30 17:02:00 +01:00
|
|
|
if not status:
|
|
|
|
status = ""
|
|
|
|
if lognotsep == 1:
|
|
|
|
fic = open(LOGPATH + "notify.log", "a")
|
|
|
|
fic.write("%s:%s:%s:%s\n" % (tim, ev[1][0], \
|
|
|
|
ev[1][1], status))
|
|
|
|
fic.close()
|
|
|
|
if lognotusr == 1:
|
2003-12-20 14:22:37 +01:00
|
|
|
fic = open(LOGPATH + jid, "a")
|
|
|
|
fic.write("%s:%s:%s:%s\n" % (tim, jid, \
|
2003-11-30 17:02:00 +01:00
|
|
|
ev[1][1], status))
|
|
|
|
fic.close()
|
|
|
|
elif ev[0] == 'MSG':
|
2003-12-20 14:22:37 +01:00
|
|
|
jid = string.split(ev[1][0], '/')[0]
|
|
|
|
fic = open(LOGPATH + jid, "a")
|
2003-11-30 17:02:00 +01:00
|
|
|
fic.write("%s:recv:%s\n" % (tim, ev[1][1]))
|
|
|
|
fic.close()
|
|
|
|
elif ev[0] == 'MSGSENT':
|
2003-12-20 14:22:37 +01:00
|
|
|
jid = string.split(ev[1][0], '/')[0]
|
|
|
|
fic = open(LOGPATH + jid, "a")
|
2003-11-30 17:02:00 +01:00
|
|
|
fic.write("%s:sent:%s\n" % (tim, ev[1][1]))
|
|
|
|
fic.close()
|
|
|
|
time.sleep(0.5)
|
|
|
|
|
|
|
|
def __init__(self, quIN, quOUT):
|
|
|
|
self.cfgParser = common.optparser.OptionsParser(CONFPATH)
|
|
|
|
self.cfgParser.parseCfgFile()
|
|
|
|
self.queueIN = quIN
|
|
|
|
self.queueOUT = quOUT
|
|
|
|
#create ~/.gajim/logs if it doesn't exist
|
|
|
|
try:
|
|
|
|
os.stat(os.path.expanduser("~/.gajim"))
|
|
|
|
except OSError:
|
|
|
|
os.mkdir(os.path.expanduser("~/.gajim"))
|
|
|
|
print "creating ~/.gajim/"
|
|
|
|
try:
|
|
|
|
os.stat(LOGPATH)
|
|
|
|
except OSError:
|
|
|
|
os.mkdir(LOGPATH)
|
|
|
|
print "creating ~/.gajim/logs/"
|
|
|
|
self.read_queue()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
plugin(None, None)
|
|
|
|
|
|
|
|
print "plugin logger loaded"
|