Communauté Eggdrop

Version complète : Pb: TCL Kick PL
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,
J'aimerais ajouter une fonctionnalité sur mon Bot pour pouvoir Kicker la Playlist Shoutcast par une commande "!kicksrc", j'ai essayé plusieurs codes TCL, mais je n'ai eu aucun résultat. Quand je tape la commande "!kicksrc" la requête n'arrive au Serveur pour réaliser le Kick, je vous poste le code afin de voir s'il s'agit d'une erreur de codage, ou un problème de flags avec le Bot.

NB: Je n'ai aucune erreur en Party-Line, le script TCL se charge correctement.

Merci de votre aide par avance.

Cordialement.
Code :
TCL:

bind pub n !kicksrc kicksource

proc kicksource {nick host handle chan text} {
#ip:
set server "l'adresse de mon serveur"
#port:
set port "le port du serveur"
set login "mot de passe du streaming"

######Config######

set sock [socket $server $port]
puts $sock "GET http://IP:Port/admin.cgi?mode=kicksrc HTTP/1.1"
puts $sock "User-Agent:Mozilla"
puts $sock "Host: $server"
puts $sock "Authorization: Basic $login"
puts $sock ""
flush $sock
}
putlog "Kicksource loaded"
Salut,

Modifie
Code :
puts $sock "GET http://IP:Port/admin.cgi?mode=kicksrc HTTP/1.1"

par

Code :
puts $sock "GET /admin.cgi?admin=admin&pass=$login&mode=kicksrc HTTP/1.1"

Cordialement,
tcl
# Configuration #
# Pass admin de la stream
set streampass "LEPASS"
# l'ip de la stream:
set streamip "IP STREAM"
# Le port de la stream:
set streamport "8000"
 
bind pub n .kicksrc kickshout
proc kickshout {nick host handle chan text} {
global kickshout streamip streamport streampass
set login ""
set sock [socket $streamip $streamport]
puts $sock "GET /admin.cgi?admin=admin&pass=$::streampass&mode=kicksrc HTTP/1.1"
puts $sock "User-Agent:Mozilla"
puts $sock "Host: $streamip"
puts $sock "Authorization: Basic $login"
puts $sock ""
flush $sock
 }



Cordialement
salut,

tu ne refermes pas le sock?
Code :
namespace eval ::sc {
    package require http
    variable sc
    array set sc [list\
        adminpass ***** \
        ip ******* \
        port ***** \
    ]
    bind pub n .kicksrc [namespace current]::kickshout
    proc kickshout {nick host handle chan text} {
        variable sc
        set url "http://[set sc(ip)]:[set sc(port)]/admin.cgi?pass=[set sc(adminpass)]&mode=kicksrc"
        set httpconfig [::http::config -useragent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"]
        set marque [http::geturl $url -timeout 30000]
        http::cleanup $marque
    }
}

édite: je posterais le tcl shoutcast, que j ai entièrement re-codé, dans la journée (j'ai quelques modifications a apporter dessus)
voici la nouvelle version:

shoutcast.tcl
Bonsoir,

Merci pour votre aide, le code TCL a fonctionné, il s'agissait juste d'une mauvaise Flags.

NB: Tous les codes que vous avez posté fonctionnent.

Cordialement.

Aristide