[Tkabber-dev] r285 - in trunk/plugins/bldjid: . msgs

tkabber-svn at jabber.ru tkabber-svn at jabber.ru
Fri Feb 5 07:00:02 MSK 2010


Author: bigote
Date: 2010-02-05 07:00:01 +0300 (Fri, 05 Feb 2010)
New Revision: 285

Modified:
   trunk/plugins/bldjid/ChangeLog
   trunk/plugins/bldjid/README
   trunk/plugins/bldjid/README.ru
   trunk/plugins/bldjid/TODO
   trunk/plugins/bldjid/bldjid.tcl
   trunk/plugins/bldjid/msgs/ru.msg
Log:
Command /visited is enhanced. It is possible to search for
jids, role, affiliation and version now. Keywords jid, role, aff, ver
are reserved for such searches. Please read README or README.ru
for more details.


Modified: trunk/plugins/bldjid/ChangeLog
===================================================================
--- trunk/plugins/bldjid/ChangeLog	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/ChangeLog	2010-02-05 04:00:01 UTC (rev 285)
@@ -1,3 +1,16 @@
+2010-02-05  Serge Yudin  <xmpp:bigote at jabber.ru> <mailto:bigote at gmail.com>
+
+--- Version 0.8 of the plugin.
+
+--- Files modified:
+    bldjid.tcl, TODO, README, README.ru, ChangeLog, msgs/ru.msg.
+
+--- Changes:
+	Command /visited is enhanced. It is possible to search for
+	jids, role, affiliation, version now. Keywords jid, role, aff, ver
+	are reserved for such searches. Please read README or README.ru
+	for more details.
+
 2010-02-04  Serge Yudin  <xmpp:bigote at jabber.ru> <mailto:bigote at gmail.com>
 
 --- Version 0.7 of the plugin.

Modified: trunk/plugins/bldjid/README
===================================================================
--- trunk/plugins/bldjid/README	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/README	2010-02-05 04:00:01 UTC (rev 285)
@@ -51,6 +51,21 @@
 /visited nick
 room
 
+---	/visited command is enhanced. It's possible to search not only for nicks
+	but also for jids, role, affiliation and version. The following keywords
+	are reserved for such searches: jid, role, aff, ver. Search query must not
+	contain spaces (if it does, the whole construction is treated as a nick).
+	You don't need any keyword for nicks--just type it after the command.
+	If you want to search for a nick that contains a keyword, cut it.
+	For example, we look for the nick "jid revealer". The command should look
+	like this: /visited id revealer
+	Strict rules are not applied to terms searched with keywords, i.e. the command
+/visited jid john
+	will find john at jabber.org, johnson at jabber.org and bob at johnatan.info.
+	Only nicks can be searched with strict rules.
+	Unfortunately it's not possible (at least now) to make a separate search
+	for client, client version and OS version.
+
 --- An enumerated list styled as 'info' will be shown in the current chat window.
 	In order to choose a line from it use commands explained above:
 /banjid ?n?

Modified: trunk/plugins/bldjid/README.ru
===================================================================
--- trunk/plugins/bldjid/README.ru	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/README.ru	2010-02-05 04:00:01 UTC (rev 285)
@@ -52,6 +52,20 @@
 /visited nick
 room
 
+---	Команда /visited обогатилась новыми возможностями. Можно искать не только ники,
+	но и джиды, роли, ранги и версии. Для этого зарезервированы следующие
+	ключевые слова: jid, role, aff, ver. Поисковый запрос не может содержать
+	пробелы (если содержит, вся конструкция считается ником). Для задания ника
+	нет нужды использовать ключевые слова. Если вам нужно сделать поиск по нику,
+	включающему в себя ключевое слово, обрежьте его. Например, ник "jid revealer"
+	ищите командой /visited id revealer
+	Строгие правила к подобным поискам не применяются, например, команда
+/visited jid pupkin
+	найдёт джиды pupkin1 at jabber.ru, pupkin2 at jabber.org и vassily at pupkin.ru.
+	По строгим правилам можно искать только ники.
+	К сожалению, нет возможности (по крайней мере, сейчас) искать по отдельности
+	имя клиента, версию клиента и версию ОС.
+
 --- В результате выполнения этих команд в окне текущего чата выведется
 	нумерованный список. Из него можно выбрать кандидата на бан для команд,
 	описанных выше, таким образом:

Modified: trunk/plugins/bldjid/TODO
===================================================================
--- trunk/plugins/bldjid/TODO	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/TODO	2010-02-05 04:00:01 UTC (rev 285)
@@ -21,6 +21,11 @@
 ===	Since a possibility added to log client version, it would be cool
 	to use /visited command to filter out visitors by different parameters:
 	nick (already implemented), jid, role or affiliation, Client version, OS.
+---	Filtering by jid, role, affiliation and version/OS works now,
+	but there is a problem: it would be good if header messages indicate us
+	what kind of information is found (well, it's quite obvious but nevertheless).
+	For example, if we look for version matching Debian, the header should say:
+	"Show visits of users whose _version_ is matching *Debian*"
 ---	Due to extreme length of Version/OS text it could be uncomfortable
 	to have it always displayed. I'd prefer to add an option that would allow
 	to turn displaying such information ON or OFF (it would be independent from

Modified: trunk/plugins/bldjid/bldjid.tcl
===================================================================
--- trunk/plugins/bldjid/bldjid.tcl	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/bldjid.tcl	2010-02-05 04:00:01 UTC (rev 285)
@@ -1,4 +1,4 @@
-# "Bldjid" plugin for Tkabber. 2010-02-04 v. 0.7
+# "Bldjid" plugin for Tkabber. 2010-02-05 v. 0.8
 # Written by Serge Yudin xmpp:bigote at jabber.ru
 # See README or README.ru file for usage.
 
@@ -733,6 +733,13 @@
 	\n\nShows visits made by *nick*, to the rooms that match *room*:\
 	\n/visited nick\
 	\nroom\
+	\n\nThe same fashion as previous, but looking for\
+	\njids, roles, affiliations and versions:\
+	\n/visited jid john\
+	\n/visited role moder\
+	\n/visited aff none\
+	\n/visited ver Tkabber\
+	\n/visited ver Debian\
 	\n\nBan in all rooms where you have admin privileges:\
 	\n?n? means an item number from a list given by a /visit* command.\
 	\n/bldjid ?n?\
@@ -778,21 +785,46 @@
 		return "\n$n:\t$timestamp $s $nick $s $jid $s $r_aff $s $v_os$myroom"
 }
 
-proc bldjid::prepare_user_list {grpjds nick} {
+proc bldjid::prepare_user_list {grpjds par} {
 	variable options
 	variable user_list
 	global jids_by_chats
 
+# Parameter parsing
+	set par_list [split $par \ ]
+	set pll [llength $par_list]
+	set key [lindex $par_list 0]
+	if {$key == "jid" && $pll == 2} {
+		set i 2
+		set par [lindex $par_list 1]
+	} elseif {$key == "role" && $pll == 2} {
+		set i 3
+		set j 0
+		set par [lindex $par_list 1]
+	} elseif {$key == "aff" && $pll == 2} {
+		set i 3
+		set j 1
+		set par [lindex $par_list 1]
+	} elseif {$key == "ver" && $pll == 2} {
+		set i 4
+		set par [lindex $par_list 1]
+	} else {
+		set i 1
+# Keyword absense means we search for nick.
+# If a nick contains a keyword separated with a space at the beginning,
+# the user should take another significant part of it to avoid confusion.
+# An example. nick: "jid revealer" -> /visited id revealer
+	}
 	foreach grp $grpjds {
 		if {[info exists jids_by_chats($grp)]} {
 			foreach item $jids_by_chats($grp) {
 				if {$options(matching_rules) == "exact"} {
-					if {[string equal [lindex $item 1] $nick]} {
+					if {$i == 1 && [string equal [lindex $item $i] $par]} {
 						lappend item $grp
 						lappend user_list $item
 					}
 				} else {
-					if {[string match -nocase *$nick* [lindex $item 1]]} {
+					if {[string match -nocase *$par* [lindex $item $i]]} {
 						lappend item $grp
 						lappend user_list $item
 					}

Modified: trunk/plugins/bldjid/msgs/ru.msg
===================================================================
--- trunk/plugins/bldjid/msgs/ru.msg	2010-02-04 03:51:42 UTC (rev 284)
+++ trunk/plugins/bldjid/msgs/ru.msg	2010-02-05 04:00:01 UTC (rev 285)
@@ -54,8 +54,8 @@
 ::msgcat::mcset ru "The list is empty." "Список пуст."
 ::msgcat::mcset ru "You turned off showing results in the rooms where you don't have admin privileges." \
 "Вы отключили показ результатов в комнатах, где у вас нет админских прав."
-::msgcat::mcset ru "\nBan in all rooms where you have admin privileges: \n/bldjid JID \nSome reason for banning (optional). \n\nUnban a banned person in these rooms: \n/unbldjid JID \n\nBan a user in the current room by his/her JID: \n/banjid JID \nSome reason for banning (optional). \n\nUnban all people banned in the current room: \n/amnesty \n\nShow all visitors of the current room: \n/visitors \n\nShow all visitors of rooms that match *room*: \n/visitors room \n\nShow visits made by someone whose nick matches *nick*: \n/visited nick \n\nShows visits made by *nick*, to the rooms that match *room*: \n/visited nick \nroom \n\nBan in all rooms where you have admin privileges: \n?n? means an item number from a list given by a /visit* command. \n/bldjid ?n? \nSome reason for banning (optional). \n\nBan in the current room by a number from a list given by a /visit* command. \n/banjid ?n? \nSome reason for banning (optional). \n\nClear the current monitor window: \n/clearmon \n\nTo toggle between Show and Close monitor states use <Control-m> shortcut. \n\nSee README file for more information. \nVisit Tkabber -> Customize -> Plugins -> Bldjid \nto tune the plugin for your needs." \
-"\nЗабанить во всех комнатах, где у вас есть админские права: \n/bldjid JID \nПричина бана (необязательна). \n\nРазбанить забаненного пользователя в таких комнатах: \n/unbldjid JID \n\nЗабанить в текущей комнате пользователя по его/её джиду: \n/banjid JID \nПричина бана (необязательна). \n\nРазбанить всех забаненных в текущей комнате: \n/amnesty \n\nПоказать всех посетителей в текущей комнате: \n/visitors \n\nПоказать всех посетителей комнаты, название которой подходит к *room*: \n/visitors room \n\nПоказать визиты пользователя, чей ник подходит к *nick*: \n/visited nick \n\nПоказать визиты, сделанные *nick*, в комнаты, подходящие к *room*: \n/visited nick \nroom \n\nЗабанить во всех комнатах, где у вас есть админские права: \n?n? означает номер в списке, выведенном по команде /visit*. \n/bldjid ?n? \nПричина бана (необязательна). \n\nЗабанить в текущей комнате по номеру в списке, выведенном командой /visit*. \n/banjid ?n? \nПричина бана (необязательна). \n\nОчистить текущее окно монитора: \n/clearmon \n\nЧтобы показать/скрыть монитор, воспользуйтесь сочетанием клавиш <Control-m>. \n\nПодробное описание команд читайте в файле README.ru. \nЗайдите в Tkabber -> Настройки -> Plugins -> Bldjid, \nчтобы настроить плагин под ваши нужды."
+::msgcat::mcset ru "\nBan in all rooms where you have admin privileges: \n/bldjid JID \nSome reason for banning (optional). \n\nUnban a banned person in these rooms: \n/unbldjid JID \n\nBan a user in the current room by his/her JID: \n/banjid JID \nSome reason for banning (optional). \n\nUnban all people banned in the current room: \n/amnesty \n\nShow all visitors of the current room: \n/visitors \n\nShow all visitors of rooms that match *room*: \n/visitors room \n\nShow visits made by someone whose nick matches *nick*: \n/visited nick \n\nShows visits made by *nick*, to the rooms that match *room*: \n/visited nick \nroom \n\nThe same fashion as previous, but looking for\ \njids, roles, affiliations and versions:\ \n/visited jid john\ \n/visited role moder\ \n/visited aff none\ \n/visited ver Tkabber\ \n/visited ver Debian\ \n\nBan in all rooms where you have admin privileges: \n?n? means an item number from a list given by a /visit* command. \n/bldjid ?n? \nSome reason for banning (optional). \n\nBan in the current room by a number from a list given by a /visit* command. \n/banjid ?n? \nSome reason for banning (optional). \n\nClear the current monitor window: \n/clearmon \n\nTo toggle between Show and Close monitor states use <Control-m> shortcut. \n\nSee README file for more information. \nVisit Tkabber -> Customize -> Plugins -> Bldjid \nto tune the plugin for your needs." \
+"\nЗабанить во всех комнатах, где у вас есть админские права: \n/bldjid JID \nПричина бана (необязательна). \n\nРазбанить забаненного пользователя в таких комнатах: \n/unbldjid JID \n\nЗабанить в текущей комнате пользователя по его/её джиду: \n/banjid JID \nПричина бана (необязательна). \n\nРазбанить всех забаненных в текущей комнате: \n/amnesty \n\nПоказать всех посетителей в текущей комнате: \n/visitors \n\nПоказать всех посетителей комнаты, название которой подходит к *room*: \n/visitors room \n\nПоказать визиты пользователя, чей ник подходит к *nick*: \n/visited nick \n\nПоказать визиты, сделанные *nick*, в комнаты, подходящие к *room*: \n/visited nick \nroom \n\nКак и в предыдущих двух случаях, но ищем джиды, роли, ранги и версии:\ \n/visited jid pupkin\ \n/visited role moder\ \n/visited aff none\ \n/visited ver Tkabber\ \n/visited ver Debian\ \n\nЗабанить во всех комнатах, где у вас есть админские права: \n?n? означает номер в списке, выведенном по команде /visit*. \n/bldjid ?n? \nПричина бана (необязательна). \n\nЗабанить в текущей комнате по номеру в списке, выведенном командой /visit*. \n/banjid ?n? \nПричина бана (необязательна). \n\nОчистить текущее окно монитора: \n/clearmon \n\nЧтобы показать/скрыть монитор, воспользуйтесь сочетанием клавиш <Control-m>. \n\nПодробное описание команд читайте в файле README.ru. \nЗайдите в Tkabber -> Настройки -> Plugins -> Bldjid, \nчтобы настроить плагин под ваши нужды."
 ::msgcat::mcset ru "current room:" "текущую комнату:"
 ::msgcat::mcset ru "room %s:" "комнату %s:"
 ::msgcat::mcset ru "rooms that match *%s*:" "комнаты, названия которых подходят к *%s*:"



More information about the Tkabber-dev mailing list