begin process at 2010 02 09 16:39:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

AddOns

 > MODULE DE BAN À VUE

MODULE DE BAN À VUE


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :AddOns Classé sous :blackliste, banlist, banliste Niveau :Débutant Date de création :12/11/2007 Vu :4 248

Auteur : Anatolei

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce module est utile (certains vont grincer des dents) pour les salons officiels du server voila/orange. En effet les robots unban systématiquement au bout de 10 ou 20 minutes.
Ce code permet de gérer une blacklist:
- Il peut reposer les bans de la blacklist dès qu'ils sont retirés
- Il pose les bans dès qu'on est opé
- Il kb les masks blacklistés dès le join

C'est configurable, on peut cocher l'option pour que les bans soient tjrs présents dans la banlist, ou bien se servir du module comme simple system de blacklist. Il y a une option pour les personnes ayant un accès IRCop (pour ne pas prendre en compte le fait qu'il soit @ sur un salon ou pas).
Enfin je vous laisse voir et surtout.. critiquer pour voir les ameliorations possibles.
Oui oui nsh j'utilise un peu de regexp :o)
Akira]

Source

  • alias bav dialog -m bav bav
  • dialog BAV {
  • title "Module de Bàv"
  • size -1 -1 197 113
  • option dbu
  • combo 2, 95 35 45 61, size drop
  • combo 1, 95 20 45 43, size drop
  • button "Add", 3, 145 20 22 12
  • button "Del", 4, 170 20 22 12
  • button "Add", 5, 145 35 22 12
  • button "Del", 6, 170 35 22 12
  • check "On", 7, 80 4 19 10
  • check "Off", 8, 100 4 24 10
  • text "Salons ou le module bàv est actif:", 9, 5 20 85 8, center
  • text "Activation du module bàv:", 10, 5 5 67 8, center
  • text "Liste des masks à bàv:", 11, 5 35 59 8, center
  • text "Module inactif si le pseudo qui unban fait partie de la liste:", 12, 5 50 76 14, center
  • combo 13, 95 50 45 61, size drop
  • button "Add", 14, 145 50 22 12
  • button "Del", 15, 170 50 22 12
  • text "Oper:", 16, 5 70 18 8, center
  • check "Oui", 17, 30 69 21 10
  • check "Non", 18, 52 69 24 10
  • button "Close", 19, 151 70 37 12, ok
  • text "Mise à jour de la banlist auto:", 20, 5 85 76 8, center
  • check "Oui", 21, 89 84 21 10
  • check "Non", 22, 111 84 22 10
  • text "Message de kick on join:", 23, 5 100 62 8, center
  • edit "", 24, 75 100 118 10
  • }
  • on *:start: {
  • if !$hget(bav) { hmake bav 100 } | if !$hget(pseudos) { hmake pseudos 100 } | if !$hget(masks) { hmake masks 100 }
  • if $isfile(system/bav.ini) { hload bav system/bav.ini }
  • if $isfile(system/masks.ini) { hload masks system/masks.ini }
  • if $isfile(system/pseudos.ini) { hload pseudos system/pseudos.ini }
  • }
  • on *:dialog:BAV:*:*: {
  • if $devent == init {
  • if !$hget(bav) { hmake bav 100 } | if !$hget(pseudos) { hmake pseudos 100 } | if !$hget(masks) { hmake masks 100 }
  • if $isfile(system/bav.ini) { hload bav system/bav.ini }
  • if $isfile(system/masks.ini) { hload masks system/masks.ini }
  • if $isfile(system/pseudos.ini) { hload pseudos system/pseudos.ini }
  • if !$hget(bav,state) { hadd -m bav state 0 | did -c $dname 8 }
  • elseif $hget(bav,state) { did -c $dname 7 }
  • if !$hget(oper,state) { hadd -m oper state 0 | did -c $dname 18 }
  • elseif $hget(oper,state) { did -c $dname 17 }
  • if $hget(bav,maj) { did -c $dname 21 }
  • elseif !$hget(bav,maj) { hadd -m bav maj 0 | did -c $dname 22 }
  • if $hget(bav,msg) { did -a $dname 24 $v1 }
  • if $hget(bav,salon) { didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1 }
  • if $hget(masks,$gettok($hget(bav,salon),1,59)) { didtok $dname 2 59 $hget(masks,$gettok($hget(bav,salon),1,59)) | did -c $dname 2 1 }
  • if $hget(pseudos,$gettok($hget(bav,salon),1,59)) { didtok $dname 13 59 $hget(pseudos,$gettok($hget(bav,salon),1,59)) | did -c $dname 13 1 }
  • }
  • elseif $devent == sclick {
  • if $did == 3 {
  • hadd -m bav salon $addtok($hget(bav,salon),$?="Salons de détection:",59) | did -r $dname 1 | didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1
  • }
  • elseif $did == 4 {
  • hdel masks $did(1)
  • hdel pseudos $did(1)
  • hadd -m bav salon $remtok($hget(bav,salon),$did(1),59) | did -r $dname 1 | didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1
  • }
  • elseif $did == 5 {
  • hadd -m masks $did(1) $addtok($hget(masks,$did(1)),$?="Liste des masks bàv ex: coollavie*!*@* *ciji*!guest@*",59) | did -r $dname 2 | didtok $dname 2 59 $hget(masks,$did($dname,1))
  • did -c $dname 2 1
  • }
  • elseif $did == 6 {
  • hadd -m masks $did(1) $remtok($hget(masks,$did(1)),$did(2),59) | did -r $dname 2 | didtok $dname 2 59 $hget(masks,$did($dname,1))
  • did -c $dname 2 1
  • }
  • elseif $did == 7 {
  • did -u $dname 8 | hadd -m bav state 1
  • }
  • elseif $did == 8 {
  • did -u $dname 7 | hadd -m bav state 0
  • }
  • elseif $did == 14 {
  • hadd -m pseudos $did(1) $addtok($hget(pseudos,$did(1)),$?="Liste des pseudos autorisés à unban ex: unreal Platine",59) | did -r $dname 13 | didtok $dname 13 59 $hget(pseudos,$did($dname,1))
  • did -c $dname 13 1
  • }
  • elseif $did == 15 {
  • hadd -m pseudos $did(1) $remtok($hget(pseudos,$did(1)),$did(13),59) | did -r $dname 13 | didtok $dname 13 59 $hget(pseudos,$did($dname,1))
  • did -c $dname 13 1
  • }
  • elseif $did == 17 {
  • hadd -m oper state 1 | did -u $dname 18
  • }
  • elseif $did == 18 {
  • hadd -m oper state 0 | did -u $dname 17
  • }
  • elseif $did == 21 {
  • did -u $dname 22
  • hadd -m bav maj 1
  • }
  • elseif $did == 22 {
  • did -u $dname 21
  • hadd -m bav maj 0
  • }
  • elseif $did == 1 {
  • did -r $dname 2,13
  • if $hget(masks,$did(1)) { didtok $dname 2 59 $hget(masks,$did(1)) | did -c $dname 2 1 }
  • if $hget(pseudos,$did(1)) { didtok $dname 13 59 $hget(pseudos,$did(1)) | did -c $dname 13 1 }
  • }
  • if !$isdir(system) { mkdir system }
  • hsave bav system/bav.ini
  • hsave masks system/masks.ini
  • hsave pseudos system/pseudos.ini
  • }
  • elseif $devent == edit && $did == 24 { hadd -m bav msg $did(24) }
  • elseif $devent == close {
  • if $hget(bav,state) && $status != disconnected && $hget(bav,maj) {
  • var %a = 1
  • while $gettok($hget(bav,salon),%a,59) {
  • ban_a_vue $v1
  • inc %a
  • }
  • }
  • }
  • }
  • alias ban_a_vue {
  • var %a = 1, %h = $1
  • if $me !isop %h && !$hget(oper,state) { return }
  • while $ibl(%h,%a) {
  • var %w = $addtok(%w,$v1,59)
  • inc %a
  • }
  • var %a = 1
  • while $gettok($hget(masks,%h),%a,59) {
  • if !$istok(%w,$v1,59) { var %d = $addtok(%d,$gettok($hget(masks,%h),%a,59),32) }
  • if $numtok(%d,32) == 3 {
  • mode %h +bbb %d
  • var %d = $null
  • }
  • inc %a
  • }
  • if %d {
  • mode %h $+(+,$str(b,$numtok(%d,32))) %d
  • }
  • }
  • on *:op:*: {
  • if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) || !$hget(bav,maj) { return }
  • if $istok($hget(bav,salon),$chan,59) {
  • var %a = 1
  • while $ibl($chan,%a) {
  • var %w = $addtok(%w,$v1,59)
  • inc %a
  • }
  • var %a = 1
  • while $gettok($hget(masks,$chan),%a,59) {
  • if !$istok(%w,$v1,59) { var %d = $addtok(%d,$gettok($hget(masks,$chan),%a,59),32) }
  • if $numtok(%d,32) == 3 {
  • mode $chan +bbb %d
  • var %d = $null
  • }
  • inc %a
  • }
  • if %d {
  • mode $chan $+(+,$str(b,$numtok(%d,32))) %d
  • }
  • }
  • }
  • on *:rawmode:*: {
  • if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) || !$istok($hget(bav,salon),$chan,59) || !$hget(bav,maj) { return }
  • if -b isin $1 && !$istok($hget(pseudos,$chan),$nick,59) {
  • var %a = 1, %d = /
  • while $gettok($hget(masks,$chan),%a,59) {
  • var %d = $+(%d,$chr(40),$replace($v1,*,\*,|,\|,?,\?),$chr(41),$chr(124))
  • inc %a
  • }
  • var %d = $+(%d,/ig)
  • if $regex($1-,%d) {
  • if $regml(1) { mode $chan $+(+,$iif($regml(3),bbb,$iif(regml(2),bb,b))) $regml(1) $regml(2) $regml(3) }
  • }
  • }
  • }
  • on *:join:#: {
  • if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) { return }
  • var %a = 1
  • while $gettok($hget(masks,$chan),%a,59) {
  • if $v1 iswm $+($nick,!,$address) { mode $chan +b $gettok($hget(masks,$chan),%a,59) | kick $chan $nick $hget(bav,msg) | break }
  • inc %a
  • }
  • }
alias bav dialog -m bav bav
dialog BAV {
  title "Module de Bàv"
  size -1 -1 197 113
  option dbu
  combo 2, 95 35 45 61, size drop
  combo 1, 95 20 45 43, size drop
  button "Add", 3, 145 20 22 12
  button "Del", 4, 170 20 22 12
  button "Add", 5, 145 35 22 12
  button "Del", 6, 170 35 22 12
  check "On", 7, 80 4 19 10
  check "Off", 8, 100 4 24 10
  text "Salons ou le module bàv est actif:", 9, 5 20 85 8, center
  text "Activation du module bàv:", 10, 5 5 67 8, center
  text "Liste des masks à bàv:", 11, 5 35 59 8, center
  text "Module inactif si le pseudo qui unban fait partie de la liste:", 12, 5 50 76 14, center
  combo 13, 95 50 45 61, size drop
  button "Add", 14, 145 50 22 12
  button "Del", 15, 170 50 22 12
  text "Oper:", 16, 5 70 18 8, center
  check "Oui", 17, 30 69 21 10
  check "Non", 18, 52 69 24 10
  button "Close", 19, 151 70 37 12, ok
  text "Mise à jour de la banlist auto:", 20, 5 85 76 8, center
  check "Oui", 21, 89 84 21 10
  check "Non", 22, 111 84 22 10
  text "Message de kick on join:", 23, 5 100 62 8, center
  edit "", 24, 75 100 118 10
}

on *:start: {
  if !$hget(bav) { hmake bav 100 } | if !$hget(pseudos) { hmake pseudos 100 } | if !$hget(masks) { hmake masks 100 }
  if $isfile(system/bav.ini) { hload bav system/bav.ini }
  if $isfile(system/masks.ini) { hload masks system/masks.ini }
  if $isfile(system/pseudos.ini) { hload pseudos system/pseudos.ini }
}
on *:dialog:BAV:*:*: {
  if $devent == init {
    if !$hget(bav) { hmake bav 100 } | if !$hget(pseudos) { hmake pseudos 100 } | if !$hget(masks) { hmake masks 100 }
    if $isfile(system/bav.ini) { hload bav system/bav.ini }
    if $isfile(system/masks.ini) { hload masks system/masks.ini }
    if $isfile(system/pseudos.ini) { hload pseudos system/pseudos.ini }
    if !$hget(bav,state) { hadd -m bav state 0 | did -c $dname 8 }
    elseif $hget(bav,state) { did -c $dname 7 }
    if !$hget(oper,state) { hadd -m oper state 0 | did -c $dname 18 }
    elseif $hget(oper,state) { did -c $dname 17 }
    if $hget(bav,maj) { did -c $dname 21 }
    elseif !$hget(bav,maj) { hadd -m bav maj 0 | did -c $dname 22 }
    if $hget(bav,msg) { did -a $dname 24 $v1 }
    if $hget(bav,salon) { didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1 }
    if $hget(masks,$gettok($hget(bav,salon),1,59)) { didtok $dname 2 59 $hget(masks,$gettok($hget(bav,salon),1,59)) | did -c $dname 2 1 }
    if $hget(pseudos,$gettok($hget(bav,salon),1,59)) { didtok $dname 13 59 $hget(pseudos,$gettok($hget(bav,salon),1,59)) | did -c $dname 13 1 }
  }
  elseif $devent == sclick {
    if $did == 3 {
      hadd -m bav salon $addtok($hget(bav,salon),$?="Salons de détection:",59) | did -r $dname 1 | didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1
    }
    elseif $did == 4 {
      hdel masks $did(1)
      hdel pseudos $did(1)
      hadd -m bav salon $remtok($hget(bav,salon),$did(1),59) | did -r $dname 1 | didtok $dname 1 59 $hget(bav,salon) | did -c $dname 1 1
    }
    elseif $did == 5 {
      hadd -m masks $did(1) $addtok($hget(masks,$did(1)),$?="Liste des masks bàv ex: coollavie*!*@* *ciji*!guest@*",59) | did -r $dname 2 | didtok $dname 2 59 $hget(masks,$did($dname,1))
      did -c $dname 2 1
    }
    elseif $did == 6 {
      hadd -m masks $did(1) $remtok($hget(masks,$did(1)),$did(2),59) | did -r $dname 2 | didtok $dname 2 59 $hget(masks,$did($dname,1))
      did -c $dname 2 1
    }
    elseif $did == 7 {
      did -u $dname 8 | hadd -m bav state 1
    }
    elseif $did == 8 {
      did -u $dname 7 | hadd -m bav state 0
    }
    elseif $did == 14 {
      hadd -m pseudos $did(1) $addtok($hget(pseudos,$did(1)),$?="Liste des pseudos autorisés à unban ex: unreal Platine",59) | did -r $dname 13 | didtok $dname 13 59 $hget(pseudos,$did($dname,1))
      did -c $dname 13 1
    }
    elseif $did == 15 {
      hadd -m pseudos $did(1) $remtok($hget(pseudos,$did(1)),$did(13),59) | did -r $dname 13 | didtok $dname 13 59 $hget(pseudos,$did($dname,1))
      did -c $dname 13 1
    }
    elseif $did == 17 {
      hadd -m oper state 1 | did -u $dname 18
    }
    elseif $did == 18 {
      hadd -m oper state 0 | did -u $dname 17
    }
    elseif $did == 21 {
      did -u $dname 22
      hadd -m bav maj 1
    }
    elseif $did == 22 {
      did -u $dname 21
      hadd -m bav maj 0
    }
    elseif $did == 1 {
      did -r $dname 2,13
      if $hget(masks,$did(1)) { didtok $dname 2 59 $hget(masks,$did(1)) | did -c $dname 2 1 }
      if $hget(pseudos,$did(1)) { didtok $dname 13 59 $hget(pseudos,$did(1)) | did -c $dname 13 1 }
    }
    if !$isdir(system) { mkdir system }
    hsave bav system/bav.ini
    hsave masks system/masks.ini
    hsave pseudos system/pseudos.ini
  }
  elseif $devent == edit && $did == 24 { hadd -m bav msg $did(24) }
  elseif $devent == close {
    if $hget(bav,state) && $status != disconnected && $hget(bav,maj) {
      var %a = 1 
      while $gettok($hget(bav,salon),%a,59) {
        ban_a_vue $v1
        inc %a
      }
    }
  }
}

alias ban_a_vue {
  var %a = 1, %h = $1
  if $me !isop %h && !$hget(oper,state) { return }
  while $ibl(%h,%a) {
    var %w = $addtok(%w,$v1,59)
    inc %a
  }
  var %a = 1
  while $gettok($hget(masks,%h),%a,59) {
    if !$istok(%w,$v1,59) { var %d = $addtok(%d,$gettok($hget(masks,%h),%a,59),32) }
    if $numtok(%d,32) == 3 {
      mode %h +bbb %d
      var %d = $null
    }
    inc %a
  }
  if %d {
    mode %h $+(+,$str(b,$numtok(%d,32))) %d
  }
}

on *:op:*: {
  if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) || !$hget(bav,maj) { return }
  if $istok($hget(bav,salon),$chan,59) {
    var %a = 1
    while $ibl($chan,%a) {
      var %w = $addtok(%w,$v1,59)
      inc %a
    }
    var %a = 1
    while $gettok($hget(masks,$chan),%a,59) {
      if !$istok(%w,$v1,59) { var %d = $addtok(%d,$gettok($hget(masks,$chan),%a,59),32) }
      if $numtok(%d,32) == 3 {
        mode $chan +bbb %d
        var %d = $null
      }
      inc %a
    }
    if %d {
      mode $chan $+(+,$str(b,$numtok(%d,32))) %d
    }
  }
}

on *:rawmode:*: {
  if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) || !$istok($hget(bav,salon),$chan,59) || !$hget(bav,maj) { return }
  if -b isin $1 && !$istok($hget(pseudos,$chan),$nick,59) {
    var %a = 1, %d = /
    while $gettok($hget(masks,$chan),%a,59) {
      var %d = $+(%d,$chr(40),$replace($v1,*,\*,|,\|,?,\?),$chr(41),$chr(124))
      inc %a
    }
    var %d = $+(%d,/ig)
    if $regex($1-,%d) {
      if $regml(1) { mode $chan $+(+,$iif($regml(3),bbb,$iif(regml(2),bb,b))) $regml(1) $regml(2) $regml(3) }
    }
  }
}

on *:join:#: {
  if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) { return }
  var %a = 1
  while $gettok($hget(masks,$chan),%a,59) {
    if $v1 iswm $+($nick,!,$address) { mode $chan +b $gettok($hget(masks,$chan),%a,59) | kick $chan $nick $hget(bav,msg) | break }
    inc %a
  }
}

 Conclusion

J'ai déjà tout dit plus haud je pense :s


 Sources du même auteur

SYSTÈME DE TRI DE DONNÉE AVEC @WINDOW AFIN D'ÉTABLIR UN CLAS...

 Sources de la même categorie

BLACKLIST PSEUDOS/MASKS par usurpateur
Source avec une capture [XCHAT] ANTI KICK / AWAY C++ par GeroXXXX
JEU DU CODE par alanpersonproject
SERVEUR FTP par hisoka2501
BANNIR LES AGES, LES HOMMES, LES FEMMES ET PSEUDO AVEC CHIFF... par cougar_du_havre

 Sources en rapport avec celle ci

Source avec une capture AUTOVOICE AVEC POSSIBILITÉ DE BLACK-LISTER par Patou_175

Commentaires et avis

Commentaire de RCA ArKanis le 12/11/2007 12:45:06

c'est toujours mieux que les dernières sources qui ont été déposées ...
plutôt bien codé, quoi qu'encore optimisable

pour l'utilité ça reste à voir. Perso, n'étant pas sur voila et n'ayant pas besoin de reban quand quelqu'un unban, je ne pense pas l'utiliser

la syntaxe utilisée est parfois assez floue. Exemple :
  if !$hget(oper,state) && $me !isop $chan || !$hget(bav,state) { return }
j'aurai plutôt préféré ce genre :
  if (((!$hget(oper,state)) && ($me !isop $chan)) || (!$hget(bav,state))) return
même si c'est plus long, voire à la limite :
  if ((!$hget(oper,state) && $me !isop $chan) || !$hget(bav,state)) return

il me semble que la syntaxe la plus rapide est d'utiliser des ( ) et peu de { }, même si ça se joue sur des centièmes (de centièmes) de secondes ...
par exemple :
  if (%a == %b) return
au lieu de
  if %a == %b { return }

je ne sais plus qui l'a dit (la source a été effacée), mais on a effectivement toute une suite de blacklists qui sont déposées ici
l'away system a donné tout ce qu'il pouvait, maintenant c'est au tour des blacklists :(

Commentaire de wims le 12/11/2007 19:36:12

Les parenthèses suplémentaire doivent être utilisé uniquement pour la priorité (a condition que les {} soit obligatoirement présente) :

if (a && b || c) { }
littéralement, mirc traduit ça par si a et b sont différent de $null $false ou 0 ou si c est différent de 0 $false ou $null.Donc mettre :
if ((a && b) || c) { }
ici est inutile.

En ce moment ça discute partout de cette fichu syntaxe des condition, ça sert a rien de reprendre qqun la dessus (sauf si ce qu'il fait ne marchera pas) parce que ça ne changera pas sa façon de faire, il y en a qui préfere les (), d'autre les {}, d'autres les deux, chacun son truc :)

Je ne critiquerai pas la source parce que quoique que mieux que ce que l'on est pu voir, ça reste du déja vu, et pour moi ce genre de source n'a rien a faire là :

Résultats 1 - 10 sur un total d'environ 1 660 000 pour blacklist mirc (0,13 secondes)

Commentaire de Anatolei le 12/11/2007 23:10:28

del ;-)

Commentaire de ISoKa le 13/11/2007 14:00:25

pour le principe oué c'est du déja vu. le codage est assez propre ce qui est deja une bonne chose :).
ensuite pour le truc de orange il me semblait que c'etait pas aux op de gerer les BAV non ? c'est pas directement gére par nesquick sur demande motivé par mail du CM du chan ? et alors ils mettent les masks concernés dans le bot. fin il me semblait que ca se passait comme ca.

Commentaire de modserv le 18/01/2008 16:14:17

j'aime bien se code moi etan de voila/orange il me sert assé bien mais le probleme c'est que j'ai bo blasklistée plusieur mask apres le unban il en remet qu'un seul ( beugue de la remote ou du robot ? )

Commentaire de MoUeRf le 11/04/2009 18:48:46 6/10

Bonjour,

J'ai testé, sympa mais dommage que ça unban un par un parce que ça flood assez vite un salon.
Une petite aide ne serait pas de trop pour bien comprendre comment ça fonctionne.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Aide sur une black liste :o) [ par Azerty10100 ] Bonjour a vous ... Je voudrais faire une blackliste sur les nickspar exemples dans ma blackliste je mais *tur*!*@* et qu il y en a un qui se connecte Blackliste on join [ par Soprano71 ] bonsoir , je souhaiterai savoir comment kickban un host caché qui ce trouve dans ma blist je m'explique je voudrai en faite le meme genre que ma blac


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,747 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales