Avant toute chose je tiens à signaler que je ne connais rien en langage de programmation, en dehors du VBA et du HTML. C'est pour cela que j'ai posté dans le forum programmation/autre.
J'ai téléchargé le plugin Invisibility pour aMSN, disponible ici : http://amsn.sourceforge.net/plugins.php
Ce plugin ne m'a pas apporté entière satisfaction et j'ai décidé de le modifier. A la base, quand un contact passe du statut "connecté" au statut "déconnecté", le plugin bloque le contact, et inversement, quand le contact passe du statut "déconnecté" au statut "connecté", le plugin le débloque.
Le problème était que ce plugin ne prenait pas en charge les statuts "parti déjeuner", "occupé", "au téléphone", "absent"... J'ai donc réussit à faire en sorte que quand un contact passe de n'importe quel statut au statut "déconnecté" il soit bloqué et que quand il passe du statut "déconnecté" à n'importe quel autre statut, il soit débloqué. Voila ce que donne le plugin tel que je l'ai modifié (cadeau) :
############################################
# ::Invisibility by Anto Cvitic #
# ::modified by Renald
# ==========================================
# Invisibility will block contacts when they go offline
# and unblock them when they change their state to online
############################################
namespace eval ::Invisibility {
proc Init { dir } {
::plugins::RegisterPlugin "Invisibility"
plugins_log "Invisibility" "Registered plugin"
::plugins::RegisterEvent "Invisibility" ChangeState blockContact
# ::plugins::RegisterEvent "Invisibility" UserConnect unBlockContact
plugins_log "Invisibility" "Registered events"
}
proc blockContact { event evpar } {
upvar 2 user user
upvar 2 substate substate
plugins_log "Invisibility" "user is: $user and substate is: $substate"
#puts "user: $user and substate: $substate"
if {$substate == "FLN"} {
set name [::abook::getNick ${user}]
::MSN::blockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "blocked $user"
}
if {$substate == "NLN"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "BSY"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "IDL"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "AWY"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "LUN"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "PHN"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
if {$substate == "BRB"} {
after 1000
set name [::abook::getNick ${user}]
::MSN::unblockUser ${user} [urlencode $name]
after 500 ::Event::fireEvent contactStateChange protocol $user
plugins_log "Invisibility" "unblocked $user"
}
}
proc deInit { } {
::plugins::UnRegisterEvents "Invisibility"
plugins_log "Invisibility" "plugin unregistered"
}
}
Mais il reste un problème : quand je ferme aMSN et que je me reconnecte, les contacts qui étaient connectés à la fermeture de aMSN et qui ne sont plus connectés au moment ou je me reconnecte ne sont pas bloqués. J'ai pensé à deux parades pour palier à ce manquement :
La première consiste à bloquer TOUS mes contacts à la fermeture de aMSN et de ne débloquer que ceux qui ne sont pas "déconnecté" au lancement de aMSN.
La deuxième consiste à bloquer les contacts "déconnecté" et débloquer les autres au démarrage de aMSN.
Je ne vous cache pas que la première me parrait plus appropriée à l'utilisation commune.
Seulement voila : ca je ne sais pas faire. Donc si quelqu'un pouvait se pencher sur le problème et le publier sur le forum, ce serait intéressant pour toute la communauté, et s'il y a besoin de plus d'informations sur l'usage du plugin, je suis là. Merci.
Rénald.
# Ca sert à quoi
Posté par Pol . Évalué à 1.
A quoi sert ce plugin ???
[^] # Re: Ca sert à quoi
Posté par Dr BG . Évalué à 3.
[^] # Re: Ca sert à quoi
Posté par account . Évalué à 1.
Ou bien ça sert à détecter les gens en mode "invisible" ? Comme quand on jette de l'eau sur l'homme invisible ;-)
[^] # Re: Ca sert à quoi
Posté par mc_arnaud . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.