Titre des urls diffusées
#1
On m'avait demandé il y a quelques temps, sur IRC, un code pour annoncer sur un canal le titre d'une page web citée, pour faire comme l'excellent robot de MenzAgitat.

J'avais pondu un petit code qui malheureusement ne suivait pas les redirections de pages, donc lorsqu'on mettait une URL raccourcie, on ne voyait que "Moved permanently".

Voici mon petit code, modifié:

TCL
package require http
package require uri
 
bind pubm - "* *http*" check_url
 
proc check_url {nick uhost handle chan text} {
   if {[regexp -- {(https?://[a-z0-9\-]+\.[a-z0-9\-\.]+(?:/|(?:/[a-zA-Z0-9!#\$%&'\*\+,\-\.:;=\?@\[\]_~]+)*))} $text match url]} {
	set url [string map -nocase { "&" "&" } $url]
		set token [geturl $url]
		set html_data [::http::data $token]
		::http::cleanup $token
		regexp -all -nocase -- "<title>(.*)</title>" $html_data match title
		putserv "PRIVMSG $chan :Titre de l'url de $nick : $title"
	}
	return 0
}
 
proc geturl {url args} {
    array set URI [::uri::split $url];
    while {1} {
        set token [eval [list http::geturl $url] $args]
        if {![string match {30[1237]} [::http::ncode $token]]} {return $token}
        array set meta [set ${token}(meta)]
        if {![info exist meta(Location)]} {
            return $token
        }
        array set uri [::uri::split $meta(Location)]
        unset meta
        if {$uri(host) == ""} { set uri(host) $URI(host) }
        set url [eval ::uri::join [array get uri]]
    }
}


Répondre
#2
Salut CC,

Normal ceci : #\$%&'\*\+,\-\.:;=\?@\[\]_~]+)*))} $text match url]} {
Ou c'est le site qui ne prend pas en charge quelque chose ? Par exemple un retour de chariot..
Répondre Avertir
#3
C'est normal, c'est juste que le # (qui est dans la regexp) est pris comme un début de commentaire alors qu'il ne faudrait pas.
Mais ça ne peut pas être modifié.
Le code est tout à fait valide.
Répondre
#4
Salut,

J'me suis servi de ce script pour coder un petit truc sympa: http://forum.eggdrop.fr/youtube-script-t...l#pid10678
Il utilise plusieurs sources dans ce forum alors je fais les liens. = P

Merci pour le partage.

--
JazZ
Répondre Avertir
#5
Tu sais que tu peux aussi le soumettre sur http://scripts.eggdrop.fr qui est là pour ça.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté