Forum Programmation.autre Amélioration d'un plugin pour aMSN

Posté par  .
Étiquettes : aucune
0
19
juil.
2006
Bonjour,



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  . Évalué à 1.

    En gros ca sert à quoi de bloquer qqun quand il est offline ?

    A quoi sert ce plugin ???
    • [^] # Re: Ca sert à quoi

      Posté par  (site web personnel) . Évalué à 3.

      J'imagine que cela sert seulement à être invisible des personnes qui ne sont pas vraiment déconnectées mais juste en mode "invisible".
      • [^] # Re: Ca sert à quoi

        Posté par  . Évalué à 1.

        Ouaouh : je me rend invisible des gens invisibles !
        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  . Évalué à 1.

        Bonne réponse Benoit. La dernière version de MSN Messenger permet de discuter avec quelqu'un tout en gardant le statut "apparaitre déconnecté". Grace à ce plugin tu oblige les gens qui veulent venir te parler à se mettre "en ligne", et comme ca, niqué la gueule à Billou !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.