Hello.
This is my aMSNLogPlus plugin, version 1.
What does it do?
It logs:
- short nicks instead of long nicks
- nick changing
- psm changing
- status changing
- music changing

I have others ideas but for the moment i want to know if my diffs will
accepted, then i want to fix some possible bugs.

In diffs.txt there is the code relative to event plugins.

I have tried to make my plugin translatable but it's not work, please can
someone check the reason?

Thanks.
Square87
Index: protocol.tcl
===================================================================
--- protocol.tcl        (revision 8074)
+++ protocol.tcl        (working copy)
@@ -1174,6 +1174,7 @@
                                save_config
                                ::abook::saveToDisk
 #                              ::Event::fireEvent myPSMChange protocol 
$userlogin
+                               ::plugins::PostEvent myPSMChange evPar
                        }
                } else {
                        #Do nothing
@@ -1192,6 +1193,7 @@
 
                if {$enabled == 1} {
                        set currentMedia "aMSN\\0$type\\01\\0$format\\0[join 
$args \\0]\\0"
+                       ::plugins::PostEvent changeCurrentMedia evPar
                } else {
                        set currentMedia ""
                }
@@ -3744,6 +3746,8 @@
                                        send_dock STATUS [::MSN::myStatusIs]
                                        #an event used by guicontactlist to 
know when we changed our nick
                                        ::Event::fireEvent myNickChange protocol
+                                       #an event plugin used by amsnlogplus
+                                       ::plugins::PostEvent myNickChanged evPar
                                }
                                ::abook::saveToDisk
                        }
@@ -3771,9 +3775,19 @@
                        set psm ""
                        set currentMedia ""
                }
-               ::abook::setVolatileData $contact PSM [::sxml::replacexml 
[encoding convertfrom utf-8 $psm]]
-               ::abook::setVolatileData $contact currentMedia 
[::sxml::replacexml [encoding convertfrom utf-8 $currentMedia]]
 
+               if {$psm != [::abook::getVolatileData $contact PSM]} { ;#it 
means: if newpsm != oldpsm
+                       ::abook::setVolatileData $contact PSM 
[::sxml::replacexml [encoding convertfrom utf-8 $psm]]
+               }
+
+               set mediachanged 0
+               set old_media [::abook::getVolatileData $contact currentMedia]
+               set currentMedia [encoding convertfrom utf-8 $currentMedia]
+               if {$currentMedia != $old_media} {
+                       ::abook::setVolatileData $contact currentMedia 
[::sxml::replacexml $currentMedia]
+                       set mediachanged 1
+               }
+
                foreach chat_id [::ChatWindow::getAllChatIds] {
                        if { $chat_id == $contact } {
                                ::ChatWindow::TopUpdate $chat_id
@@ -3787,6 +3801,9 @@
                        }
                 }
                ::Event::fireEvent contactPSMChange protocol $contact
+               set evPar(mediachanged) mediachanged
+               set evPar(contact) contact
+               ::plugins::PostEvent contactPSMChanged evPar
        }
        
        method handleNOT { command payload } {
Index: loging.tcl
===================================================================
--- loging.tcl  (revision 8074)
+++ loging.tcl  (working copy)
@@ -250,6 +250,10 @@
                                puts -nonewline [LogArray $email get] 
"\|\"LRED\[[trans luclosedwin [clock format [clock seconds] -format "%d %b %Y 
%T"]]\]\n\n"
                        }
                        close [LogArray $email get]
+
+                       set evPar(who) who
+                       set evPar(email) email
+                       ::plugins::PostEvent stoplog evPar
                }
                LogArray $email unset
                ConfArray $email unset
@@ -277,6 +281,15 @@
                        set user [trans deliverfail]
                } 
 
+               set evPar(chatid) chatid
+               set evPar(user) user
+               set evPar(msg) msg
+               set evPar(fontformat) fontformat
+               set evPar(failed) failed
+               set evPar(color) color
+               set evPar(OIMStamp) OIMStamp
+               ::plugins::PostEvent put_log evPar
+
                if {[::OIM_GUI::IsOIM $chatid] || $OIMStamp != 0 } {
                        ::log::WriteLog $chatid "\|\"LITA$user :\|\"L$color 
$msg\n" 0 $chatid $OIMStamp
                } else  {
@@ -341,10 +354,13 @@
                        if { $fileid != 0 } {
                                if {[::OIM_GUI::IsOIM $email] || $OIMStamp != 
0} {
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans lconvstartedOIM [clock format [clock seconds] -format "%d %b 
%Y %T"]]\]\n"
+                                       startlog_plus $email $fileid
                                } elseif { $conf == 0 } {
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans lconvstarted [clock format [clock seconds] -format "%d %b %Y 
%T"]]\]\n"
+                                       startlog_plus $email $fileid
                                } else {
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans lenteredconf $email [clock format [clock seconds] -format "%d 
%b %Y %T"]] \(${users}\) \]\n"
+                                       startlog_plus $user_list $fileid
                                }
                                if {$OIMStamp == 0 } {
                                        puts -nonewline $fileid 
"\|\"LGRA[timestamp] $txt"
@@ -355,6 +371,12 @@
                }
        }
 
+       #this proc is used for amsnlogplus plugin
+       proc startlog_plus {email fileid} {
+               set evPar(email) email
+               set evPar(fileid) fileid
+               ::plugins::PostEvent start_log evPar
+       }
 
        
#///////////////////////////////////////////////////////////////////////////////
        # LeavesConf (usr_name user_list)
@@ -368,7 +390,10 @@
                        foreach user_info $user_list {
                                set fileid [LogArray [lindex $user_info 0] get]
                                if { $fileid != 0 } {
+                                       set usr_name2 $usr_name ;#because 
amsnlogplus changes the usr_name value
+                                       set evPar(usr_name) usr_name
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans lleftconf $usr_name]\]\n"
+                                       set usr_name $usr_name2
                                }
                                if { [llength $user_list] == 1 } {
                                        ConfArray [lindex $user_info 0] set 3
@@ -393,7 +418,11 @@
                                set login [lindex $user_info 0]
                                set fileid [LogArray $login get]
                                if { $login != $usr_name && $fileid != 0} {
+                                       set usr_name2 $usr_name ;#because 
amsnlogplus changes the usr_name value
+                                       set evPar(usr_name) usr_name
+                                       ::plugins::PostEvent joins_conf evPar
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans ljoinedconf $usr_name]\]\n"
+                                       set usr_name $usr_name2
                                }
                        }
                }
@@ -1559,6 +1588,7 @@
                                set fileid [LogArray $email get]
                                if { $fileid != 0 } {
                                        puts -nonewline $fileid 
"\|\"LRED\[[trans lconvstarted [clock format [clock seconds] -format "%d %b %Y 
%T"]]\]\n"
+                                       startlog_plus $email $fileid
                                        puts -nonewline $fileid 
"\|\"LGRA[timestamp]\|\"LGRE $txt\n"
                                }
                        } else {
Index: gui.tcl
===================================================================
--- gui.tcl     (revision 8074)
+++ gui.tcl     (working copy)
@@ -5330,7 +5330,7 @@
 #///////////////////////////////////////////////////////////////////////
 proc change_name_ok {} {
        set new_name [.change_name.f.nick_entry get]
-       if {$new_name != ""} {
+       if {$new_name != "" && [::abook::getContactData myself MFN] != 
$new_name} {
                if { [string length $new_name] > 130} {
                        set answer [::amsn::messageBox [trans longnick] yesno 
question [trans confirm]]
                        if { $answer == "no" } {
Index: abook.tcl
===================================================================
--- abook.tcl   (revision 8074)
+++ abook.tcl   (working copy)
@@ -431,6 +431,7 @@
                                set user_data(raw_nick) $data
                                #post event for amsnplus
                                set evPar(data) data
+                               set evPar(user_login) user_login
                                ::plugins::PostEvent parse_nick evPar
 
                                set user_data(nick) $data

Attachment: amsnlogplus.tar.gz
Description: GNU Zip compressed data

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to