[Tkabber-dev] r235 - in trunk/plugins/antispam: . msgs

tkabber-svn at jabber.ru tkabber-svn at jabber.ru
Sat Nov 7 12:22:24 MSK 2009


Author: gebb
Date: 2009-11-07 12:22:24 +0300 (Sat, 07 Nov 2009)
New Revision: 235

Modified:
   trunk/plugins/antispam/TODO
   trunk/plugins/antispam/antispam.tcl
   trunk/plugins/antispam/msgs/ru.msg
Log:
Added logging of blocked messages and password request messages to a file.

Modified: trunk/plugins/antispam/TODO
===================================================================
--- trunk/plugins/antispam/TODO	2009-11-07 07:06:04 UTC (rev 234)
+++ trunk/plugins/antispam/TODO	2009-11-07 09:22:24 UTC (rev 235)
@@ -1,2 +1 @@
-* Log the hidden messages to a file.
 * When we request subscriptuin from a JID, put that JID on the white list.

Modified: trunk/plugins/antispam/antispam.tcl
===================================================================
--- trunk/plugins/antispam/antispam.tcl	2009-11-07 07:06:04 UTC (rev 234)
+++ trunk/plugins/antispam/antispam.tcl	2009-11-07 09:22:24 UTC (rev 235)
@@ -73,6 +73,11 @@
 		-group $group \
 		-type string
 
+	custom::defvar options(log_file) [file join $::configdir antispam.log] \
+		[::msgcat::mc "Antispam log file."] \
+		-group $group \
+		-type file
+
 	unset group
 }
 
@@ -83,9 +88,11 @@
 	if {$options(message) ne ""} {
 		debugmsg antispam \
 			"REQUEST_PASSWORD: sending request to $to."
-		message::send_msg $xlib $to -type chat -body [string map [list \
+		set msg [string map [list \
 			%% % \
 			%p $options(password)] $options(message)]
+		log_msg $xlib antispam $msg
+		message::send_msg $xlib $to -type chat -body $msg
 	}
 }
 
@@ -159,6 +166,15 @@
 	expr {[info exists el] && $el}
 }
 
+# Logs the specified message.
+#
+proc antispam::log_msg {xlib from msg} {
+	variable options
+	set fd [open $options(log_file) a]
+	puts $fd "[clock format [clock seconds]]\t([connection_jid $xlib])\t$from:\t$msg"
+	close $fd
+}
+
 # Blocks messages from unknown JIDs
 # and requests the password (sending $options(message)).
 #
@@ -296,13 +312,14 @@
 	} else {
 		incr answ
 	}
+	# Log the blocked message.
+	log_msg $xlib $from $body
 	# Stop sending the request after doing it 1 time
 	# (should we make this number customizable?),
 	# but still prevent messages from being shown to the user.
 	if { $answ > 1 } {
 		return stop
 	}
-	# TODO: Log spam messages and bot replies to a file.
 	# Send a password request without opening a chat window.
 	notify $xlib $from
 	return stop

Modified: trunk/plugins/antispam/msgs/ru.msg
===================================================================
--- trunk/plugins/antispam/msgs/ru.msg	2009-11-07 07:06:04 UTC (rev 234)
+++ trunk/plugins/antispam/msgs/ru.msg	2009-11-07 09:22:24 UTC (rev 235)
@@ -1,4 +1,4 @@
-# vim:enc=utf-8
+# vim:fenc=utf-8
 
 ::msgcat::mcset ru "Antispam plugin discards incoming subscription requests and chat messages from JIDs that are not in the roster, optionally requesting a password that enables the showing of messages." \
 	"Antispam блокирует входящие запросы на подписку и сообщения типа \"чат\", посланные с адресов, отсутствующих в ростере, и запрашивает при этом пароль для отмены блокировки."
@@ -16,4 +16,5 @@
 	"Пароль, который нужно указать отправителю, чтобы его сообщения не блокировались. Фактически представляет собой регулярное выражение, которому должно соответствовать входящее сообщение."
 ::msgcat::mcset ru "Regular expression to match JIDs from which empty error messages will be ignored. This setting is intended to suppress occasional error messages from transports. A (default) value of \"^$\" means no JIDs." \
 	"Регулярное выражение, задающее JID'ы, сообщения об ошибках от которых будут игнорироваться, если их тело пусто. Настройка нужна для блокировки ошибок от транспортов, рапортующих о невозможности доставить запрос пароля.  Значение по умолчанию \"^$\" не соответствует никакому JID'у."
-
+::msgcat::mcset ru "Antispam log file." \
+   "Файл истории заблокированных сообщений."



More information about the Tkabber-dev mailing list