Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


un wget simplifié
#1
Si vous avez besoin de l'équivalent de wget en tcl, voici un bout de script qui vous aidera:

tcl
namespace eval utils {
 
	variable store "databases/"
	package require http
	package require tls
 
	proc wget {url {output ""}} {
		if {$output == ""} {
			set output [file tail $url]
		}
		::http::register https 443 [list ::tls::socket -tls1 1 -autoservername 1]
		if {[catch {set tok [::http::geturl $url -binary 1]}]} {
			return "error..."
		}
		set fo [open ${::utils::store}${output} w]
		fconfigure $fo -translation binary
		puts -nonewline $fo [::http::data $tok]
		close $fo
		::http::cleanup $tok
		::http::unregister https
		return $output
	}
}


Si vous appelez ::utils::wget avec une simple url en paramètre, le nommage du fichier peut être variable: Vous pouvez donc passer en second paramètre le nom du fichier résultant.

Ce bout de code ne suit pas les redirections, il est fait à la base pour récupérer des fichiers dont on connait exactement l'emplacement
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)