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
jplyon1, tu confonds Nosy et YoYoAbso :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
Pour ce qui et du dossier il et vrai qu'il se créer pas.
Faut le faire manuellement sinon faire un code pour en créer un.

Voici un exemple :


tcl
if {![file isdirectory database]} {
        file mkdir database
        putlog "\002Je créer le dossier database."
    }


Suffit de modifié database par le dossier que vous désirez.
Pour en revenir au sujet du soucis.

Tente de commenter les 26 Flux RSS qui fonctionne supprime les db.
Ensuite rehash/restart et regarde si les autres se créer.
Si tout se créer pas fait pareil commente ceux qui se créer.

Rehash/Restart.
Voir ce que sa donne si cela fonctionne avec cette manière c'est qui ya trop de Flux RSS qui se charge d'un coup.
Ou alors que l'eggdrop charge trop de choses d'un seul coup en comptant les autres TCL.
(26/08/2011, 14:27)aliasangelius Wrote: Bonjour,

Voilà suite à une discutions avec MenzAgitat j'ai voulus avoir son système de tinyurl pour ceux qui ne Save pas ce que c'est :

Tinyurl et le raccourcissement d'url exemple :

Quote:( @Talk-Me ) [ Deux-Sèvres ] Pourquoi pas la chèvre pour nous identifier ? [http://www.lanouvellerepublique.fr/ACTUA...identifier]

Donc ceci et ce que ont obtient lorsqu'on à le TCL rss-synd.. À la base.
Ensuite lorsque nous mettons la procédure de tinyurl ça donne ceci :

Quote:( @Talk-Me ) [ Deux-Sèvres ] Vacances pour agriculteurs : moins rares, plus chères [http://tinyurl.com/3jhz92v]

Donc le système de procédure de tinyurl ma été donnais par MenzAgitat qui ma tout de même demander de préciser une chose :

La proc tinyurl vient du script TkTiny de Tomekk.

Maintenant ont va expliquer ou mettre cette procédure et aussi la donnais serait pas mal :).

Voici la procédure :


tcl
proc ::rss-synd::grab_data { url } {
  set get_url_timeout "10"
	set uagent "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"
  set url [string map -nocase {
	  "&"		"&"
  } $url]
	set tiny_query "http://tinyurl.com/create.php?[::http::formatQuery url ${url}]"
	set tiny_token [http::config -useragent $uagent]
	set tiny_token [http::geturl $tiny_query -timeout [expr $get_url_timeout * 1000]]
	set html_data [http::data $tiny_token]
	::http::cleanup $tiny_token
	set all_n [split $html_data \n]
  set tiny_link ""
	foreach tiny_lines $all_n {
		if {[regexp -all -nocase "<blockquote>(.*)</b><br>(.*)</blockquote>" $tiny_lines]} {
			regsub -all -nocase "<blockquote><b>" $tiny_lines "" tiny_link
			regsub -all -nocase "</b><br><small>(.*)</small></blockquote>" $tiny_link "" tiny_link
		}
	}
	if {($tiny_link != 0) && ($tiny_link ne "")} {
		return $tiny_link
	} {
		return "\00307(problème avec tinyurl.com)\00314 ${url}"
	}
}


Mettre la procédure dans le tcl.

Ensuite mettre ceci aussi :


tcl
if { ([string last "title" $cookie] == 25) || ([string last "title" $cookie] == 19) } {
				set tmp [encoding convertfrom utf-8 $tmp]
 			} elseif { ([string last "link" $cookie] == 25) || ([string last "link" $cookie] == 19) } {
				set tmp [::rss-synd::grab_data $tmp]
			}


Une fois ceci fait supprimer ce que vous avez dans le dossier "rss" ou sont stockait tout vos rss une fois le tout supprimé faite un rehash/restart de votre eggdrop.

Et lorsque votre eggdrop fera une annonce d'un flux rss il affichera avec tynurl !

PS : je ferais une version traduite en français avec un rss-synd.tcl
Qui bien sur sera avec le système de tynurl :).

Voila have fun =)

Bonjour,

Je suis très intéressé par ta procédure tinyurl.

Toutefois j'ai deux questions :

1. La "proc ::rss-synd::grab_data" on la mets n'importe où dans le script ?
2. Où mettre le "if" de la 2ème partie ? N'importe quel endroit ?
3. Quand tu parles de supprimer le dossier "rss" parles tu du dossier où sont stockés les fichiers ".db" des différents flux ? Car de mon côté je n'ai aucun dossier "rss".

Merci par avance de l'aide que tu pourras m'apporter.

@+
coucou,

<pas trop dans l'aide>
Attention neamoins avec les liens tinyurl , sur certains serveurs ils spnt ajouté au spamfilter suite a des utilisations de redirection vers des sites pour adultes .
</pas trop dans l'aide>

Cordialement.
Bonsoir,

@ conscience, Je vais te répondre à t'es questions.
Pour commencer en ce qui concerne la création du dossier rss tu peut rajouter tout en haut du code tcl cette procédure :


tcl
if {![file isdirectory rss]} {
       file mkdir rss
       putlog "\002Je créer le dossier rss.\002"
    }


Cette procédure va te crée le fichier "rss" seul.

Ensuite pour les autres questions.
La "proc ::rss-synd::grab_data" on la mets n'importe où dans le script ?
Oui tu la met ou tu veut c'est ce qui permets de traduire ton "url" avec le tinurl plus ou moins.

Où mettre le "if" de la 2ème partie ? N'importe quel endroit ?
La partie de "if" tu la mets en dessous de l'autre procédure en sautant une ou 2 lignes.

Quand tu parles de supprimer le dossier "rss" parles tu du dossier où sont stockés les fichiers ".db" des différents flux ? Car de mon côté je n'ai aucun dossier "rss".
Je parle que tu peut supprimer les fichier .db stocker dans le dossier rss ou même supprimer complêtement le dossier rss.
Car je t'es mis un code qui te permet de re créer un dossier nommer "rss" donc tu peut le supprimer tout simplement si tu le désire.

Voilà en espérant avoir répondu à t'es questions.
J'ajouterai un script que j'utiliser que CrazyCat avez fait quelques temps après cette conversations qui et assez pas mal qui je pense te conviendrez aussi bien.

Le TCL se nomme oqpme c'est plus ou moins la même fonction que le rss avec le tinyurl mais en plus simple pour ma part.

Je te donne le lien ci dessous en espérant que tu pourras avoir les solutions en utilisant les deux scripts enfin en regardant les deux ensuite tu vois avec quoi tu veut faire.
Si tu rencontre d'autres soucis ou autres surtout n'hésite pas a poster je me ferais un plaisirs de te répondre des que je pourrais même si en ce moment je suis assez absent je suis l'actualité des notifications :).

Voici le lien du code TCL de CrazyCat : http://scripts.eggdrop.fr/details-Rss-Sy...-s135.html
Merci beaucoup de ta réponse Aliasangelius.
Dès que je peux je test et je reviens dire si cela fonctionne.

Merci encore.
bonjour,

je fait un peut remonter le sujet mais j'ai un probléme avec ce script soit j'ai " RSS Warning: couldn't open "./scripts/feeds/machin.db": no such file or directory."

soit aprés avoir fait un touch ./scripts/feeds/machin.db
j'ai RSS Error: Invalid feed database file format (./scripts/feeds/machin.db)!

vous avez une idée ?
Salut,

Laisses tu le temps à ton eggdrop de créer les db ? Le temp de création varie suivant la durée que tu tu indiques pour aller chercher les infos sur les "sites". ici "update-interval" XX
(verifies aussi que tes sites pour les RSS ne soient pas en https/loggin /pass)

As-tu un dossier dans scripts qui s'appele "feeds" ? Auquel cas, créé le; kill ton eggdrop, relance le.

Cordialement.
ok, merci.
j'ai un dossier feed oui.
je vais rm le fichier que j'ai créer et faire un .restart sur mon eggdrop, j'ai mit 5min d'intervalle , je vais en attendre 10et je repost ici pour vous dire si ça a marché ou pas :)

( désolé pour le double post )
ça marche pas :s
Salut,

Je pense que ton soucis interviens au niveau des fichier .db
Alors faudrait que tu regarde dans ton dossier "feeds", Si tu as bien les fichier ".db"

Si tu les as et que tu retrouve encore t'es erreurs lorsque tu regarde la pl de ton eggdrop, Alors supprimes les fichier ".db"
Rehash/Restart ton eggdrop.

Il devrait les re créer seul normalment.

PS : Si celà ne suffit pas, Et que l'erreur persiste.
Pourrais tu joindre ton code tcl ici s'il te plaît merci d'avance
coucou à tous voilà j'ai tenté d'utilisé le rss-synd.

ça a fonctionné un peu avec la version "beta" mais, j'ai voulu utliser la version avec le raccouci URL de crazy et ça ne fonctionne pas j'ai une erreur !

De plus dans la version Beta j'avais une erreur dès que je rajoutait des liens

Voici mon erreur :

[13:44:01] wrong # args: should be "set varName ?newValue?"
while executing
"set rss(recette du jour) {
"url" "http://www.unjourunerecette.fr/rss.xml"
"channels" "#cuisine"
"database" "./databases/jourrecette.db"
"o..."
(in namespace eval "::rss-synd" script line 5)
invoked from within
"namespace eval ::rss-synd {
variable rss
variable default

set rss(recette du jour) {
"url" "http://www.unjourunerecette.fr/rss.xml"
"channel..."
(file "scripts/rss-synd.tcl" line 64)
invoked from within
"source scripts/rss-synd.tcl"
(file "baboune.conf" line 114)
[13:44:01] * FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)


Je n'ai fais que changer les URL pourtant donc rien de méchant ! et le nom du salon. Donc je vois pas ce que ça pourrait être.
Voici la partie que j'ai modifié :


namespace eval oqpme {
variable url "http://oqp.me/?q="
}
proc short { args } {
set long "$oqpme::url[oqpme::urlencode [lindex [split $args] 0]]"
set ckey [::http::geturl $long]
return [::http::data $ckey]
}

proc urlencode {string} {
set umap {"?" "%3f" "&" "%26" "/" "%2f" "=" "%3d"}

regsub -all -- {\&amp;} $string {\$} string
set string [string map -nocase $umap $string]
return $string
}



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

set rss(recette du jour) {
"url" "http://www.unjourunerecette.fr/rss.xml"
"channels" "#cuisine"
"database" "./databases/jourrecette.db"
"output" "\\\[\002recette du jour\002\\\] @@item!title@@ : [::oqpme::short @@item!link@@]"
"trigger" "!@@feedid@@"
"update-interval" 5

}

set rss(politique) {
"url" "http://www.saveurs-et-papilles.com/rss/flux-dossiers.xml"
"channels" "#cuisine"
"database" "./databases/saveurspapille.db"
"output" "\\\[\002saveurs et papilles\002\\\] @@item!title@@ : [::oqpme::short @@item!link@@]"
"trigger" "!@@feedid@@"
}
Je ne suis pas bien certain que "recette du jour" comme id du flux soit la meilleure idée.
Mets plutôt "rdj" ou "recette_du_jour", mais pas d'espaces.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
yes j'ai modif tout ça c'est tout bon j'allais faire un post en résolu.

En revanche un autre souci, j'ai mis à 15 minutes d'intervalle pour répéter le flux mais... rien !

En fait peut importe le temps même en laissant 30 minutes par défaut, le tirage du flux ne se fait pas. Sais-tu d'où cela peut venir ?
Est-ce que le répertoire databases existe ? Et est-ce que l'eggdrop peut y écrire ?
Et surtout, est-ce qu'il y a de nouvelles entrées dans le flux pendant l'intervalle d'attente ?
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Forum Jump:


Users browsing this thread: 1 Guest(s)