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


[script] Eggdrop RSS Syndication
#61
personne une idée ?

jai essayer avec d'autre lien rss sa fait pareil ?
#62
As-tu essayé sans les \037 dans ton output ?
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#63
Salut,

Essaye de mettre cela :

PHP Code:
    set rss(lemonde) {
        
"url"            "http://www.lemonde.fr/rss/une.xml"
        "channels"        "#newz"
        "database"        "./TCL/feeds/lemonde.db"
        "output"        "[\002LeMonde - Actu\002] \002@@item!title@@ \037@@item!link@@\037"
        "trigger"        "!@@feedid@@"
                "max-output"             
10
        
"announce-output"    10
        
"trigger-output"    10 
    


Et vois si ça fonctionne, ça peut venir de tes rss...
Tiens nous au courant ! :)
#64
effectivement avec le monde sa marche ....

merci a tous
#65
J'aurais voulu savoir si dans la prochaine version il sera possible d’intégrer le raccourcissement d'url, car il y en a... elles sont longues !

J'ai vu ce bloc qui est dans le script de youtube.

PHP Code:
proc make_tinyurl {url} {
 if {[
info exists url] && [string length $url]} {
  if {[
regexp {http://tinyurl\.com/\w+} $url]} {
   
set http [::http::geturl $url -timeout 9000]
   
upvar #0 $http state ; array set meta $state(meta)
   
::http::cleanup $http ; return $meta(Location)
  } else {
   
set http [::http::geturl "http://tinyurl.com/create.php" \
     -
query [::http::formatQuery "url" $url] -timeout 9000]
   
set data [split [::http::data $http] \n] ; ::http::cleanup $http
   
for {set index [llength $data]} {$index >= 0} {incr index -1} {
    if {[
regexp {href="http://tinyurl\.com/\w+"} [lindex $data $indexurl]} {
     return [
string map { {href=} "" \" "" } $url]
 }}}}
 error "
failed to get tiny url."


Je pense que cela ça interesse du monde... j'ai vu ce système sur le salon #eggdrop @ epiknet.
Code:
(•- 20:17 -•) * @Boole - news : [Forum eggdrop.fr] scritp tcl !bombe - http://tinyurl.com/37mhjvc
#66
Le script rss-synd n'est pas d'une personne du forum, mais je pense que quelqu'un se fera un plaisir d'adapter le script. Pourquoi pas toi ?
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#67
Bonsoir, j'aimerai que pour tous les rss (de manière globale), il n'affiche que les flux contenant un mot donné dans le titre, par exemple le mot "projet".

Merci d'avance si quelqu'un veut bien me donner la modification.
J'imagine qu'il faut introduire cette condition au moment d'écrire dans le fichier database
#68
Petit update de ce fil, pour un problème que je rencontre et une solution que j'apporte pour alanfollow.
Solution pour le raccourcissement d'url
J'ai utilisé mon système oqp.me (décrit sur cette page) de la manière suivante:
tcl
namespace eval oqpme {
    variable url "http://oqp.me/?q="
 
    proc short { args } {
        set long "$::oqpme::url[lindex [split $args] 0]"
        set ckey [::http::geturl $long]
        return [::http::data $ckey]
    }
 
}


Et dans le réglage des flux:
tcl
set rss(sport) {
                "url"                   "http://www.2424actu.fr/rss/sportive"
                "channels"              "#actu"
                "database"              "./databases/actu.sport.db"
                "output"                "\\\[\002Sport\002\\\] @@item!title@@ : [::oqpme::short @@item!link@@]"
                "trigger"               "!@@feedid@@"
                "evaluate-tcl"       1
        }



Mon problème
Avec le flux donné ci-dessus, j'ai un rendu des accents aléatoire. J'ai tenté de mettre "charset" "utf-8", c'est encore pire (ça ré-encode).
Le flux est:
Code:
<?xml version="1.0" encoding="UTF-8" ?>
...
<item>
            <title>JO-2018: le CIO plébiscite les nouveaux horizons de Pyeongchang</title>
            <description>AFP&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.2424actu.fr/cache/MEDIA/normal/AFP/20110706/20110706Nfa6292135ff6b8843185dd7d75ad7d57.jpg" /&gt; &amp;copy;AFP - photo : Alexander Joe&lt;br /&gt;&lt;br /&gt;Les &quot;nouveaux horizons&quot; promis par le slogan de la ville sud-coréenne de Pyeongchang ont conquis les membres du CIO qui l'ont plébiscitée dès le premier tour de l'élection de la ville hôte des jeux Olympiques d'hiver 2018, mercredi à Durban.</description>
            <pubDate>Wed, 06 Jul 2011 23:48:56 +0200</pubDate>
            <link>http://www.2424actu.fr/actualite-sportive/jo-2018-le-cio-plebiscite-les-nouveaux-horizons-de-pyeongchang-2764679/</link>
            <guid>http://www.2424actu.fr/actualite-sportive/jo-2018-le-cio-plebiscite-les-nouveaux-horizons-de-pyeongchang-2764679/</guid>
        </item><item>
            <title>Tour de France: duo norvégien en tête, la 7e étape met le cap sur Châteauroux</title>
            <description>AFP&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.2424actu.fr/cache/MEDIA/normal/AFP/20110708/20110708Ne041187218f7dc240d78f0530f0b25f3.jpg" /&gt; &amp;copy;AFP&lt;br /&gt;&lt;br /&gt;Les Norvégiens se sont partagé les lauriers jeudi, à l'arrivée du Tour de France à Lisieux, où Edvald Boasson Hagen (Sky) a remporté la 6e étape et son aîné Thor Hushovd a gardé le maillot jaune.</description>
            <pubDate>Fri, 08 Jul 2011 07:40:10 +0200</pubDate>
            <link>http://www.2424actu.fr/actualite-sportive/tour-de-france-duo-norvegien-en-tete-la-7e-etape-met-le-cap-sur-chateauroux-2772033/</link>
            <guid>http://www.2424actu.fr/actualite-sportive/tour-de-france-duo-norvegien-en-tete-la-7e-etape-met-le-cap-sur-chateauroux-2772033/</guid>
        </item><item>
            <title>Coupe Davis: une opportunité à ne pas gâcher pour la France en Allemagne</title>
            <description>AFP&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.2424actu.fr/cache/MEDIA/normal/AFP/20110707/20110707N61faaf233c57a5b09d821c37071aea0d.jpg" /&gt; &amp;copy;AFP - photo : Marijan Murat&lt;br /&gt;&lt;br /&gt; Une équipe de France pour une fois en pleine possession de ses moyens a une belle opportunité de retourner pour la deuxième année de suite en demi-finale de la Coupe Davis, à condition de ne pas négliger l'Allemagne en quarts à Stuttgart, de vendredi à dimanche.</description>
            <pubDate>Thu, 07 Jul 2011 17:32:15 +0200</pubDate>
            <link>http://www.2424actu.fr/actualite-sportive/coupe-davis-une-opportunite-a-ne-pas-gacher-pour-la-france-en-allemagne-2769839/</link>
            <guid>http://www.2424actu.fr/actualite-sportive/coupe-davis-une-opportunite-a-ne-pas-gacher-pour-la-france-en-allemagne-2769839/</guid>
        </item>
(volontairement coupé par moi)
Et voila ce que j'obtiens:
Quote:12:10:37 < Myrddin> [Sport] Coupe Davis: une opportunité àne pas gâcher pour la France en Allemagne : http://oqp.me/19
12:10:38 < Myrddin> [Sport] Tour de France: duo norvégien en tête, la 7e étape met le cap sur Châteauroux : http://oqp.me/18
12:10:39 < Myrddin> [Sport] JO-2018: le CIO plébiscite les nouveaux horizons de Pyeongchang : http://oqp.me/17
Est-ce que quelqu'un a une idée sur ce qui peut provoquer cette différence d'affichage de caractères qui semblent être les mêmes ?
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#69
salut,

essais avec
tcl
set tavar [encoding convertfrom utf-8 $tavar]


bien sur le format peut être changer, cf le man de encoding pour les différents formats

edite: si ca ne fonctionne pas tu peux ajouter cette ligne juste avant
tcl
encoding system iso8859-1



le problème viens de la différence de charset entre le serveur et ton script
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#70
donc voila le code exact
tcl
proc ::rss-synd::feed_callback {feedlist args} {
	set token [lindex $args end]
	array set feed $feedlist
	upvar 0 $token state
 
	if {$state(status) != "ok"} {
		putlog "\002RSS HTTP Error\002: $state(url) (State: $state(status))"
		return 1
	}
 
	array set meta $state(meta)
 
	if {([::http::ncode $token] == 302) || ([::http::ncode $token] == 301)} {
		set feed(depth) [expr {$feed(depth) + 1 }]
 
		if {$feed(depth) < $feed(max-depth)} {
			catch {::http::geturl "$meta(Location)" -command "[namespace current]::feed_callback {$feedlist}" -timeout $feed(timeout) -headers $feed(headers)}
		} else {
			putlog "\002RSS HTTP Error\002: $state(url) (State: timeout, max refer limit reached)"
		}
 
		return 1
	} elseif {[::http::ncode $token] != 200} {
		putlog "\002RSS HTTP Error\002: $state(url) ($state(http))"
		return 1
	}
 
	set data [::http::data $token]
	encoding system iso8859-1
	set data [encoding convertfrom utf-8 $data]
 
......



il faudra aussi supprimer les fichiers .db présent dans ./databases
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#71
Merci djkenny, ça marche impec.
Je fournirai ce soir la version modifiée qui intègre ta modif et mon système de raccourcissement d'url.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
#72
dans un souci de compatibilité avec d'autres scripts (surtout les quizz) il serait peu etre judicieux d'ajouter ça
tcl
set def [encoding system]
   set data [::http::data $token]
   encoding system iso8859-1
   set data [encoding convertfrom utf-8 $data]
   encoding system $def


C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#73
Hello :)

Moi j'ai un problème bizarre, le script fonctionne une fois automatiquement dès que je connecte le bot et après plus rien.

Quand je tape !rss bah... rien ne se passe :s

voilà mon code :

Code:
#
# Start of Settings
#

namespace eval ::rss-synd {
    variable rss
    variable default

    set rss(Bavardages) {
        "announce-output"    1
        "trigger-output"    3
        "remove-empty"        1
        "trigger-type"        0:2
        "announce-type"        0
        "max-depth"            5
        "evaluate-tcl"        1
        "update-interval"    30
        "output-order"        0
        "timeout"            60000
        "max-output"        10
        "url"                "http://www.bavardages.org/rss/flux_news.xml"
        "channels"            "#bavardages"
        "database"            "flux_news.db"
        "output"            "\00301.: Flux RSS ::\00302 @@item!title@@ \00301::\00302 \037@@item!link@@\037 \00301:."
        "trigger"            "!rss"
    }
#74
Une version plus récente est disponible ici ==> http://code.google.com/p/rss-synd/source...nd.tcl?r=6
#75
@CrazyCat
J'ai essayé d'integrer le tcl oqpme.tcl que tu avais donné :
tcl
package require http
 
namespace eval oqpme {
    variable url "http://oqp.me/?q="
 
    bind pub - "!oqp" oqpme::short
    proc short { nick uhost handle chan args} {
        set long "$oqpme::url[lindex [split $args] 0]"
        set ckey [::http::geturl $long]
        putserv "PRIVMSG $chan :[::http::data $ckey]"
    }
 
}



Ca donne le résultat suivant :
Quote:<@BakaBoT> \[Sport\] Ligue 1: Montpellier étrille Rennes et s'installe en tête : [::oqpme::short http://www.2424actu.fr/actualite-sportiv...e-2918087/]
et en PL la ligne suivante : RSS Eval Error: wrong # args: should be "::oqpme::short nick uhost handle chan ..."

Une idée ?


Forum Jump:


Users browsing this thread: 1 Guest(s)