Communauté sur les Eggdrops - Community about Eggdrops
Titre des urls diffusées - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Thread: Titre des urls diffusées (/showthread.php?tid=1331)



Titre des urls diffusées - CrazyCat - 10/04/2013

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




RE: Titre des urls diffusées - aliasangelius - 16/04/2013

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..


RE: Titre des urls diffusées - CrazyCat - 17/04/2013

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.


RE: Titre des urls diffusées - JazZ - 18/02/2014

Salut,

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

Merci pour le partage.

--
JazZ


RE: Titre des urls diffusées - CrazyCat - 21/02/2014

Tu sais que tu peux aussi le soumettre sur http://scripts.eggdrop.fr qui est là pour ça.