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


erreur script youtube
#1
voilà,j'ai trouvé ce script, mais y'a un beug

commande : !youtube un titre et ca renvoi le lien youtube

le script :


tcl
### YouTube Searching script. v0.1
### Made by Mookie		
### Contact me at Efnet for more information or suggestions
### V0.3 Fixed + added spam protection
 
package require http
 
### Settings ###
 
set youtube(timeout) "600000"		;# Youtube geturl timeout. (better leave this default)
set youtube(results) "5"		;# Results to display
set youtube(trigger) "!youtube"		;# Search trigger
set youtube(spam) "10"			;# Spam protection in seconds
 
#########################################################
## Don't edit below unless you know what you're doing. ##
#########################################################
 
 
bind pub - $::youtube(trigger) youtube
 
proc youtube {nick uhost hand chan arg} {
	if {[info exists ::checks($nick)] && ([clock seconds] - $::checks($nick)) < $::youtube(spam)} { sendmsg $chan "Fk off spammer.."; return }
	set ::checks($nick) [clock seconds]
	if {$arg == ""} { putmsg $nick "Please use: $::youtube(trigger) KEYWORD"; return }
	set form [http::formatQuery search_query $arg search search]
	set tok [http::geturl http://www.youtube.com/results?search_type=&$form -timeout $::youtube(timeout)]
	set data [http::data $tok]
	http::cleanup $tok
	set a "0"
	while {[regexp -- {<a id="video-short-title.*?" href="(.*?)"  title="(.*?)" rel="nofollow">(.*)$} $data -> number title data]} {
		if {$a == $::youtube(results)} { break }
		sendmsg $chan "\[Title: $title Link:http://youtube.com$number\]"
		incr a
	}
	if {![info exists title]} { sendmsg $chan "\002Error:\002 Nothing found for '$arg'" }
}
proc "sendmsg" { target message } {
	sputraw "PRIVMSG [string tolower $target] :$message"
}
proc "sputraw" { text } {
	set text [string trim $text]
	putdccraw 0 [string length $text\n] $text\n
}



En Erreur , j'ai :

Quote:.set errorInfo
[08:16:46] ‹YouTube› [08:17] #Zyrte# set errorInfo
[08:16:47] ‹YouTube› Currently: can't read "state(after)": no such element in array
[08:16:47] ‹YouTube› Currently: while executing
[08:16:47] ‹YouTube› Currently: "after cancel $state(after)"


merci d'avance
#2
bonjour,

est tu sur que ton erreur vienne du script youtube ? a tu bien le package require http comme indiquer dans le tcl ?


tcl
package require http


j'ai tester le TCL est je n'ai pas d'erreur.
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#3
ba j'ai un http.tcl d'installer oui ....
#4
salut,

zyrte Wrote:En Erreur , j'ai :

Quote:.set errorInfo
[08:16:46] ‹YouTube› [08:17] #Zyrte# set errorInfo
[08:16:47] ‹YouTube› Currently: can't read "state(after)": no such element in array
[08:16:47] ‹YouTube› Currently: while executing
[08:16:47] ‹YouTube› Currently: "after cancel $state(after)"

c est une erreur dans le package http, mais elle n'influe en rien sien sur le fonctionnement du tcl.
je dirais que le problème vient de cette ligne la:

tcl
set tok [http::geturl <a href="http://www.youtube.com/results?search_type=&$form" target="_blank">http://www.youtube.com/results?search_type=&$form</a> -timeout $::youtube(timeout)]

essais de la remplacer par

Code:
set tok [http::geturl http://www.youtube.com/results?search_type=&$form -timeout $::youtube(timeout)]
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#5
j'ai remplacer, mais, j'ai une erreur :

Quote:[09:44:06] ‹YouTube› [09:44] Tcl error [youtube]: wrong # args: should be "http::geturl url ..."

Quote:.set errorInfo
[09:46:02] ‹YouTube› [09:46] #Zyrte# set errorInfo
[09:46:02] ‹YouTube› Currently: wrong # args: should be "http::geturl url ..."
[09:46:02] ‹YouTube› Currently: while executing
[09:46:02] ‹YouTube› Currently: "http::geturl"
[09:46:02] ‹YouTube› Currently: (procedure "youtube" line 6)
[09:46:02] ‹YouTube› Currently: invoked from within
[09:46:02] ‹YouTube› Currently: "youtube $_pub1 $_pub2 $_pub3 $_pub4 $_pub5"
#6
djkenny Wrote:étrange, la modification ne passe pas et le site affiche 2 fois la même ligne :x

essais de la remplacer par
Code:
set tok [http::geturl http://www.youtube.com/results?search_type=&$form -timeout $::youtube(timeout)]

J'ai remplacé, mais, ca ne marche pâs non plus, ca me donne sur le canal irc :

Quote:[09:48:05] ‹@Zyrte› !youtube chat
[09:48:06] ‹@YouTube› Error: Nothing found for 'chat'

avec :

Quote:[09:48:26] ‹Zyrte› .set errorInfo
[09:48:26] ‹YouTube› [09:48] #Zyrte# set errorInfo
[09:48:26] ‹YouTube› Currently: can't read "state(after)": no such element in array
[09:48:26] ‹YouTube› Currently: while executing
[09:48:26] ‹YouTube› Currently: "after cancel $state(after)"
#7

Code:
proc youtube {nick uhost hand chan arg} {
   if {[info exists ::checks($nick)] && ([clock seconds] - $::checks($nick)) < $::youtube(spam)} { sendmsg $chan "Fk off spammer.."; return }
   set ::checks($nick) [clock seconds]
   if {$arg == ""} { putmsg $nick "Please use: $::youtube(trigger) KEYWORD"; return }
   set form [http::formatQuery search_query $arg search search]
   set tok [http::geturl http://www.youtube.com/results?search_type=&$form -timeout $::youtube(timeout)]
   set data [http::data $tok]
   http::cleanup $tok
   set a "0"
   while {[regexp -- {<h3><a href="(.*?)" dir="ltr" title="(.*?)" >(.*)$} $data -> number title]} {
      if {$a == $::youtube(results)} { break }
      sendmsg $chan "\[Title: $title Link:http://youtube.com$number\]"
      incr a
   }
   if {![info exists title]} { sendmsg $chan "\002Error:\002 Nothing found for '$arg'" }
}
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#8
voila le script complet et complétement débogué
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#9
que dois je modifier pour avoir qu'un titre a la place de 5 titres ? et aussi j'ai des erreur d'accent :

[15:21:06] ‹+Zyrte› !youtube diams
[15:21:08] ‹Youtube› [ Diam's ( Diam's Dieze#39;s)- Enfants Du Désert Link: http://youtube.com/watch?v=YXdfgKjvl4c" class="yt-uix-tile-link]
#10
Tu fais de l'humour ou tu te fous de nous ?
Dans ton premier post, je vois:

tcl
set youtube(results) "5"      ;# Results to display


Pour les accents, il y a une solution dans http://www.eggdrop.fr/board/tcl-pour-rad...-1111.html
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#11
non, j'ai trouvé mais j'ai ce beug là, quand j'tape la commande :

‹+Youtube|Youtube› [ Merzhin-Les Nains de Jardins Link: http://youtube.com/watch?v=kmmWUEq4c3I" class="yt-uix-tile-link]
#12
Il faut remplacer la regexp:

tcl
if {[regexp -- {<h3 id="video-long-title-(.*?)"><a href="(.*?)" class="yt-uix-tile-link" dir="ltr" title="(.*?)" >.*$} $d -> longtitle number title]} {

zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#13
merci Crazycat, ca marche mieux comme ca.
#14
bonjour ,le script ne marche plus :(

-14:44:08- ‹(Zyrte)› !y benabar
-14:44:09- ‹(+Youtube)› Error: Nothing found for 'benabar'
#15
Le code html de youtube a changé:

tcl
if {[regexp -- {<div class="yt-lockup-content"><h3 ><a yt-uix-contextlink yt-uix-sessionlink yt-uix-tile-link result-item-translation-title"dir="ltr"title="(.*?)"data-sessionlink="(.*?)"href="(.*?)">(.*)</a>} $d -> longtitle number title]} {


A tester
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Résolu]Youtube-link bouba89 9 1,165 27/05/2021, 16:41
Last Post: ZarTek
  Youtube pheeric 19 7,962 17/08/2020, 22:34
Last Post: pheeric
  [Résolu] Youtube pheeric 1 1,961 11/01/2020, 00:10
Last Post: pheeric
Smile Youtube.tcl par aliasangelius pheeric 8 6,987 02/01/2018, 17:25
Last Post: cestlemien
  [Résolu] Youtube tcl (Zurl.tcl) ne fonctionne plus Krypte 23 14,604 28/04/2017, 18:22
Last Post: Alucard`68
  youtube script zyrte 31 24,872 18/01/2016, 17:17
Last Post: MisterS
  erreur script et connection bdd zorrax 2 4,497 06/11/2010, 20:38
Last Post: zorrax

Forum Jump:


Users browsing this thread: 1 Guest(s)