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


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]]
    }
}

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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..
#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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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
#5
Tu sais que tu peux aussi le soumettre sur http://scripts.eggdrop.fr qui est là pour ça.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Demande] Recherche titre d'url hades_48 5 3,166 06/09/2013, 09:17
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)