<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/18035" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2010-10-07T02:51:23-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/18035</id>

		<entry>
		<author><name><![CDATA[pogue]]></name></author>
		<updated>2010-10-07T02:51:23-04:00</updated>

		<published>2010-10-07T02:51:23-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=94662#p94662</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=94662#p94662"/>
		<title type="html"><![CDATA[Need Help with ourTube 1.0.2]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=94662#p94662"><![CDATA[
I had the same problem w/ Ourtube, so I went to the eggdrop channel on efnet and asked speechless and the author of Ourtube, HackeMate, about the problems.<br><br>Apparently it has to do with Youtube giving localized outputs for results.  So, for example, HackeMate lives in Spain, so when his bot queries Spanish Youtube which has a totally different code structure than other parts of the world.  I showed HackeMate and speechless this erronous outputs from the script, but they didn't really have anything to contribute because it appears the entire script would need to be started from scratch and localized for different Youtube regions.<br><br>Here's another thread on the same issue:<br><a href="http://forum.egghelp.org/viewtopic.php?t=17168&amp;highlight=" class="postlink">http://forum.egghelp.org/viewtopic.php? ... highlight=</a><br><br>After waiting a very long time trying to get some help with this, I finally just gave up and switched to <a href="http://www.mediafire.com/?t368nev6hqjhtv8" class="postlink">urltitle</a> (I had to search for this because apparently perplexa's site is down).  Although it doesn't have all the bells and whistles of ourtube (displaying views, ratings, &amp; comments).<br><br>There are also some good alternate scripts here you can try as well.<br><br><a href="http://www.egghelp.org/tclhtml/3478-4-0-0-1-youtube.htm" class="postlink">Youtube title &amp; Youtube searching script</a> would both be suitable alternatives.<br><br>Hope that helps,<br>pogue<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10663">pogue</a> — Thu Oct 07, 2010 2:51 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fraud]]></name></author>
		<updated>2010-10-04T13:33:28-04:00</updated>

		<published>2010-10-04T13:33:28-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=94642#p94642</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=94642#p94642"/>
		<title type="html"><![CDATA[Need Help with ourTube 1.0.2]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=94642#p94642"><![CDATA[
Thank you.. But.. hell.... where is the Download Link <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_biggrin.gif" width="15" height="15" alt=":D" title="Very Happy"><br><br>Ah found it.<br><br>btw. is there a way to get the whole output in  lines?<br><br>like<br><br>bot: Title: &lt;title&gt; - By: &lt;author&gt; - Category: &lt;category&gt;<br>bot: Views: &lt;views&gt; - Rating: &lt;rating&gt; - Last comment: &lt;comment&gt;<br><br>Right now its all behind... Thanks<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=9931">Fraud</a> — Mon Oct 04, 2010 1:33 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[username]]></name></author>
		<updated>2010-09-28T14:05:03-04:00</updated>

		<published>2010-09-28T14:05:03-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=94554#p94554</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=94554#p94554"/>
		<title type="html"><![CDATA[Need Help with ourTube 1.0.2]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=94554#p94554"><![CDATA[
I use version 1.0 with my little modifications.<blockquote class="uncited"><div> &lt;@tvrsh&gt; <a href="http://www.youtube.com/watch?v=Fhkeil3li5Y" class="postlink">http://www.youtube.com/watch?v=Fhkeil3li5Y</a><br> &lt;@lamestbot&gt; YouTube :: FOOD BATTLE 2060?! (Lunchtime w/ Smosh) - NEWEST EPISODE: <a href="http://bit.ly/FourArms" class="postlink">http://bit.ly/FourArms</a> ------------------------------------- Today we eat Tex-Mex food (Wannabe Mexican food)! Every Thursday you guys are invi.... К: Люди и блоги/В: 04:28/А: IanH/П: 149939. Последний комментарий: &lt;jack032001 1 час назад&gt;  tpir loser horn? </div></blockquote>You can download it from <a href="http://www.egghelp.ru/files/405" class="postlink">this</a> page.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=6813">username</a> — Tue Sep 28, 2010 2:05 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Fraud]]></name></author>
		<updated>2010-09-25T11:24:12-04:00</updated>

		<published>2010-09-25T11:24:12-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=94514#p94514</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=94514#p94514"/>
		<title type="html"><![CDATA[Need Help with ourTube 1.0.2]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=94514#p94514"><![CDATA[
Well just got the 1.0.2 VErsion, but its still buggy<br><br>The outout is not workking well. If u want to output a Video with views and comments u dont get them.<br><br>If i want get infos from, e.g.:  <a href="http://www.youtube.com/watch?v=Fhkeil3li5Y" class="postlink">http://www.youtube.com/watch?v=Fhkeil3li5Y</a><br>the output is: <div class="codebox"><p>Code: </p><pre><code>( MyBOT ) - FOOD BATTLE 2060?! (Lunchtime w/ Smosh) - - Views: no - Rating: no - Last comment:</code></pre></div>There are comments, ratings and quit a lot views to.<br>Here is what i am using <div class="codebox"><p>Code: </p><pre><code>set ourtube(output) "&lt;title&gt; - &lt;category&gt; - Views: &lt;views&gt; - Rating: &lt;rating&gt; - Last comment: &lt;comment&gt;"</code></pre></div>and thats the whole code of the Script<br><div class="codebox"><p>Code: </p><pre><code>## ourTube.tcl 1.0.2 --# This file search the web target and show relevant information about.# Is posible define a YouTube account and the bot will log in. Useful# when the link are for adult people i.e. It will show the first link# that finds in a whole phrase.## Copyright (c) 2007-2009 Eggdrop Spain 15-november-2009#   HackeMate (Sentencia) Sentencia@eggdrop.es#   Andoidsk (Redrum) sincorreo@en@eggdrop.es## This program is free software; you can redistribute it and/or# modify it _only for your own use_## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  ## Please, use the email to contact with the author for let him know about all# what you could do. Everyone wants develop his software as well.##                   Thank you for feed my empiric life.## If you like, you can contact with the author to suggest him features. By the# way, do not ask him to make Login, he is working on that.# This is what you need to get this script work:# Type in partyline: .chanset #channel +ourtube# Changelog 1.0.2:# (RedRrum)#   Fixes:#Resolved Tcl error [otPub]: wrong # args: should be "otLog target string"#Resolved broken line in the actual youtube html title format (new regsub)##   Changes:#Changed description Youtube match.#Modify otPub function(minor cost):#- Regular expresion by exact uri.#- Break before nothing else if not youtube link.#   Added features:#Add category Youtube match.#AntiSpam on Results: spliting URIs on points.##   TODO:#Add related links match.#Move HTTP errors to logs only or disable them.#Delete ourtubecolors flag. If want colors write them on ourtube(output)#AÃadir opciÃn para detectar links sucios.#Permitir a los ops del canal decidir que opciones mostrar (registrar usuarios)# Changelog 1.0.1:# (HackeMate)#   Fixes:#       Resolved Tcl error [otPub]: can't read "views": no such variable#       Resolved eternal ignore-protection  issue##   Added features:#       Now will forward to new location 302 http code received when pasting#       http://youtube. links#       Explicit message when 404 error (not found)#       All non 200, 302, 303, 404 errors will stop the procedure showing proper reason##       -*- IMPORTANT -*-#       Auto Update checker: You can verify if your ourTube copy is the lastest#       version available typing .ourtube update in partyline##       FeedBack feature. Type in partyline .ourtube feedback [your email] &lt;message&gt;#       to send the author any suggestion or comment. Insults are not welcome.##       Added seacher, !youtube string and it will return matches#       it is customizable (configure ourtube(outputsearch))# initializes a user defined channel flagsetudef flag ourtubesetudef flag ourtubecolorsglobal ourtube tcl_platform## START EDITALE ZONE ###################### Configuration for bot admins## Module Record user links## Configuration for channel operators## Configuration for users# Busqueda suciaset ourtube(dirtysearch) 1# (1) Enable or (0) disable logs.set ourtube(logs) 1# (1-8) Level log.set ourtube(levellog) 1# (1) Enable or (0) disable colorsset ourtube(colors) 0# Flood Protection: after show a link, will ignore all links few seconds# This means 1 link per 10 seconds.set ourtube(flood) 10# What language you can receive the youTube data? (if works heh)set ourtube(lang) es# Limit of links at same timeset ourtube(max) 5# Do you want see all matches at one line? (0) Yes (1) Noset ourtube(multiline) 1# This is the final output message what you will read in your channel.#       -*- This is not for search command (only when someone pasted link)# You can configure all fields that your eggdrop will show.# &lt;title&gt;       will return the title of the video# &lt;author&gt;      It was the author himself who had uploaded the video# &lt;views&gt;       How many views the video has# &lt;rating&gt;      His rating# &lt;description&gt; Information by author - This may be disabled because it can#               contain spam# &lt;comment&gt;     Will show the last comment if exists - Same as description, take care#               with spam.# &lt;category&gt;# &lt;link&gt;link clean#set ourtube(output) "\002&lt;title&gt;\002. (by &lt;author&gt;) &lt;views&gt; views, &lt;rating&gt; rating. Last comment: &lt;comment&gt;"set ourtube(output) "&lt;title&gt; - &lt;category&gt; - Views: &lt;views&gt; - Rating: &lt;rating&gt; - Last comment: &lt;comment&gt;"# - &lt;description&gt;"# This is the output message of search engine#       -*- This is only for search engine# You can configure all fields that your eggdrop will show.# &lt;link&gt;        URL video link# &lt;time&gt;        video's duration# &lt;added&gt;       since when it is on line# &lt;title&gt;       will return the title of the video# &lt;author&gt;      It was the author himself who had uploaded the video# &lt;views&gt;       How many views the video has# &lt;rating&gt;      His rating# &lt;description&gt; Information by author - This may be disabled because it can#               contain spamset ourtube(outputsearch) "\00312\037&lt;link&gt;\003\037 \00315\(&lt;time&gt; rating: &lt;rating&gt;\)\003 \"\0036&lt;title&gt; \0031&lt;author&gt; said\0036: &lt;description&gt;\003\" &lt;views&gt;,  added &lt;added&gt;"# Do you want auto update this file when it is possible?# (1) Yes (0) No - It is recommended, if youtube changes his tags probably this script will brokeset ourtube(autoupdate) 0## END EDITABLE ZONE ################################################ This is not required to edit, or yes.set ourtube(author) "HackeMate"set ourtube(contact) "HackeMate &lt;Sentencia@eggdrop.es&gt;"set ourtube(name) "ourTube"set ourtube(fileName) [info script]set ourtube(projectName) "ourTube"set ourtube(version) "1.0.2"set ourtube(package.http) [package require http]## No inicializar (uso interno)set ourtube(protection) ""if {$tcl_platform(os) eq "Linux"} {    set platfrm "X11"} else {    set platfrm $tcl_platform(os)}http::config -useragent "Mozilla/5.0 ($platfrm; U; $tcl_platform(os) $tcl_platform(machine); $ourtube(lang); rv:1.9.0.3) ourTube 1.0" -accept "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"bind pubm - * otPubproc otPub {nick uhost hand chan text} {    #putloglev 1 * "lalala: $text"#putserv "PRIVMSG #p :$hand   [countusers]"#adduser $nick#if {[validuser hand]} {#putserv "PRIVMSG #p :$nick $uhost "#}if {![channel get $chan ourtube]} { return }global ourtube# Clean all colour marksregsub -all -- {\017|\002|\037|\026|\003(\d{1,2})?(,\d{1,2})?} $text "" textif {$ourtube(dirtysearch)} {set id [regexp -inline -nocase -- {youtube.*watch\?v=.{11}} $text]regsub -nocase -- {.*watch\?v=} $id "" idif {$id eq ""} { return }set uri "http://www.youtube.com/watch?v=$id"} else {set uri [regexp -inline -nocase -- {http://www\.youtube\.com/watch\?v=.{11}} $text]if {$uri eq ""} { return }}if {[string is digit -strict $ourtube(protection)]} {set flood [expr [clock seconds]-$ourtube(protection)]if {$flood &gt;= $ourtube(flood)} {set ourtube(protection) ""} else {otLog log "Resting... (flood protection) [duration [expr ($ourtube(flood) - [expr ([clock seconds]-$ourtube(protection))])]] left"return}} set ourtube(protection) [clock seconds]otLog log "Getting $uri ... from $nick on $chan"set data [otGet $uri]##pasar a otGetif {![string length $data]} {set data "I was not able to reach $uri. Probably I get a timeout. Try again."} if {!$ourtube(colors)} {regsub -all -- {\017|\002|\037|\026|\003(\d{1,2})?(,\d{1,2})?} $data "" data}# Este formato de log facilita el paso a xml para posterior posible procesado.otLog log "$chan:$nick:$uri:$data"putserv "PRIVMSG $chan :$data"utimer $ourtube(flood) [list set ourtube(protection) ""]}proc otGet {web {relocation ""}} {global ourtubeset token [http::geturl $web -timeout 4000]upvar #0 $token stateset lastcode $state(http)#set ncode ""set ncode [regexp -inline -- {[0-9]{3}} $lastcode]#regexp {[0-9]{3}} $lastcode ncode#if {$ncode eq ""} {#set ncode $lastcode#}switch -- $ncode {"200" { }"302" {foreach {flag value} $state(meta) {if {$flag eq "Location"} {# Due to invalid youtube link but valid url syntax we can# receive an url forward. this handles thathttp::cleanup $tokenotLog log "$web forwards us to $value"return [otGet $value "(Relocated)"]}}}"303" {otLog log "This video does not exists."http::cleanup $tokenreturn "That video does not exists. Server responded: $lastcode"}"404" {otLog log "$web - No such webpage."http::cleanup $tokenreturn "$web - No such webpage"}default {http::cleanup $tokenotLog log "unforeseen circumstances. Server responded: $lastcode"return "unforeseen circumstances. Server responded: $lastcode"}}set data [string map {"&amp;quot\;" "\"" "&amp;amp\;quot\;" "\"" "&amp;" "&amp;"} $state(body)] http::cleanup $tokenset author ""set description ""set views ""set rating ""set comment ""set category ""set desc ""regexp {&lt;title&gt;(.*?)&lt;/title&gt;} $data "" titleregexp {class="hLink fn n contributor"&gt;(.*?)&lt;/a&gt;&lt;br&gt;} $data "" author#regexp {&lt;meta name=\"description\" content=\"(.*?)\"&gt;.*} $data "" description#regexp {&lt;div([:blank:]+)class="watch-video-desc description"&gt;(.*?)&lt;/div&gt;} $data "" desc# Descriptionregexp {class="watch-video-desc description"&gt;(.*?)&lt;/div&gt;} $data "" descriptionregsub -all -- {&lt;a href=(.*?)&lt;/a&gt;} $description "" descriptionregsub -all -- {\&lt;(.*?)\&gt;} $description "" descriptionregsub -all -- {\n|\t} $description "" descriptionregsub -all -- {\. *} $description ". " descriptionregsub -all -- {  +} $description " " descriptionregsub -all -- {^(- *)} $description "" descriptionregsub -all -- {\.*( *)$} $description "" descriptionset description ${description}.#if {[string length $description] &gt; 300} {##} else {##}regexp {VideoCategoryLink'\);\"&gt;(.*?)&lt;/a&gt;} $data "" categoryregexp {&lt;span id=\"watch-view-count\"&gt;(.*?)&lt;/span&gt;} $data "" viewsregexp {&lt;div id=\"defaultRatingMessage\"&gt;(.*?)&lt;/span&gt;.*} $data "" rating# This is not so smart way. I know, sorry about :)#set comments ""#set description ""#regexp {&lt;div id="recent_comments" class="comments"&gt;(.*?)&lt;div id="div_comment_form_id} $data "" comments#if {$comments ne ""} {#regexp { rel="nofollow"&gt;(.*?)&lt;/a&gt;} $comments "" user#regexp {&lt;span class="watch-comment-time"&gt;(.*?)&lt;/span&gt;} $comments "" timeago#regexp {&lt;div class="watch-comment-body"&gt;(.*?)&lt;/div&gt;} $comments "" comment#set comment [string map {\n " " "&lt;br&gt;" ""} $comment]#regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $comment "" comment#regsub -all {\s+} $comment " " comment#set comment "\&lt;$user [string trim $timeago]\&gt; [string trim $comment]"#} else {#set comment ""#}regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t|\n|YouTube} $title "" titleregsub -all -- {^- } $title "" titleregsub -all -- {( *)\.( *)} $title ". " title#regsub -all -- {http://[^ ]* } $description "" description#regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $description "" descriptionregsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $views "" viewsregsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $rating "" rating#regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t|\&gt;} $category "" categoryset rating [lindex [split $rating] 0]set title "$relocation $title"set title [string trim $title]if {![string is digit -strict $views]} {set views "no"}if {![string is digit -strict $rating]} {set rating "no"}#if {$comment eq ""} {#set comment "This video doesn't have any comments until now"#}#if {$description eq ""} {#set description "This video doesn't have any description"#}set output [string map [list "&lt;title&gt;" $title "&lt;author&gt;" $author "&lt;description&gt;" $description "&lt;views&gt;" $views "&lt;rating&gt;" $rating "&lt;comment&gt;" $comment "&lt;category&gt;" $category &lt;link&gt; $web] $ourtube(output)]return $output}# upvar #0 $token stateproc otLog {target string} {    global ourtube    if {![validchan $target]} {if {$ourtube(logs) == "1"} {putloglev $ourtube(levellog) * "$ourtube(name)\: $string"}    } else {        putserv "PRIVMSG $target :$ourtube(name)\: $string"    }}bind pubm - !youtube otYoutubeproc otYoutube {nick uhost hand chan text} {    if {![channel get $chan ourtube]} {if {$text eq "enable"} {channel set $chan +ourtube            channel set $chan +ourtubecolorsotLog $chan "Usage: !youtube &lt;search string&gt; To see a list of matches."putserv "NOTICE $nick :You also can use .ourtube update and .ourtube feedback in partyline to upgrade your script or send a feedback to author of this script."return} else {putserv "NOTICE $nick :$chan has this command disabled."}if {[matchattr $hand n]} {putserv "NOTICE $nick :You can enable it directly typing: /msg $chan !youtube enable"}        return    }putserv "NOTICE k4rma :in"putserv "PRIVMSG k4rma :$text"otLog log $text    regsub -all -- {\017|\002|\037|\026|\003(\d{1,2})?(,\d{1,2})?} $text "" argglobal ourtube# This is a generic protection to prevent flood ourtube.com        # No utimer required#putserv "NOTICE k4rma :in"if {![info exists ourtube(protection)]} {set ourtube(protection) [clock seconds]} else {if {![string is digit -strict $ourtube(protection)]} {set ourtube(protection) [clock seconds]} else {set time [expr [clock seconds]-$ourtube(protection)]if {$time &gt;= $ourtube(flood)} {set ourtube(protection) [clock seconds]} else {otLog log "Flood protection in $chan from $nick\."return}}}putserv "NOTICE k4rma :in"if {$arg eq ""} {putserv "NOTICE $nick :Tell me what to search."return}putserv "NOTICE k4rma :in"set data [ourtubeGet $arg]    if {![channel get $chan ourtubecolors]} {regsub -all -- {\017|\002|\037|\026|\003(\d{1,2})?(,\d{1,2})?} $data "" data}if {[string length $data] == 0} {set data "I was unable to connect to that website. Probably I get timeout."        return}if {$ourtube(multiline) != "1"} {putserv "PRIVMSG $chan :$data"} else {foreach line $data {putserv "PRIVMSG $chan :$line"}}    }proc ourtubeGet {ask} {    global ourtuberegsub -all -- {\s+} $ask " " searchset search [http::formatQuery $search]http::config -useragent "Mozilla/5.0 (Windows NT; U; Windows NT x86; en-ES; rv:1.9.0.3) Firefox 3.0.7" -accept "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"set token [http::geturl http://www.youtube.com/results?search_query=$search -timeout 10000]upvar #0 $token stateset data $state(body)regsub -all {\n|\t} $data "" dataset ncode ""regexp {[0-9]{3}} $state(http) ncodeif {$ncode eq ""} {        set ncode $state(http)}    set list {}    switch -- $ncode {        "200" {set videos [regexp -all -inline {&lt;div class="video-entry"&gt;(.*?)&lt;div class="video-clear-list-left"&gt;&lt;/div&gt;} $data]set total [expr [llength $videos] /2]if {$total &gt; $ourtube(max)} {set list [list "Showing $ourtube(max) of $total."]}set i 2set title ""set description ""set rating ""set added ""set views ""set author ""set link ""foreach {id line} $videos {set map {}foreach {entity number} [regexp -all -inline {&amp;#(\d+);} $line] {lappend map $entity [format \\u%04x [scan $number %d]]}                set line [string map [subst -nocomm -novar $map] $line]                                regexp {&lt;img title="(.*?)"} $line "" title                regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $title "" title                regexp {&lt;div class="video-time"&gt;(.*?)&lt;/span&gt;} $line "" time                regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $time "" time                regexp {class="video-description"&gt;(.*?)&lt;/div&gt;} $line "" description                regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $description "" description                regexp {&lt;button class="master-sprite ratingVS ratingVS-(.*?)"} $line "" rating                regexp {class="video-date-added"&gt;(.*?)&lt;/span&gt;} $line "" added                regexp {class="video-view-count"&gt;(.*?)&lt;/span&gt;} $line "" views                regexp {&lt;span class="video-username"&gt;(.*?)&lt;/a&gt;} $line "" author                regsub -all -- {\&lt;[^\&gt;]*\&gt;|\t} $author "" author                regexp {&lt;a id="video-url-(.*?)"} $line "" link                set link "http://youtube.com/watch?v=$link"                set output [string map [list "&lt;link&gt;" $link "&lt;time&gt;" $time "&lt;added&gt;" $added "&lt;title&gt;" $title "&lt;author&gt;" $author "&lt;description&gt;" $description "&lt;views&gt;" $views "&lt;rating&gt;" $rating] $ourtube(outputsearch)]                lappend list $output                if {$i &gt; $ourtube(max)} {                    break                }                incr i}            return $list        }        "404" {            otLog log "No such file or webpage."            http::cleanup $token            return [list "No such file or webpage."]        }        default {            otLog log "unforeseen circumstance. Server responded: $ncode"            http::cleanup $token            return [list "unforeseen circumstance. Server responded: $ncode"]        }    }    }bind dcc n ourtube communication::welcomenamespace eval communication {# communication.tcl --# This is a little library for eggdrop as internal use# It is done to portablility - You cannot use it without a file.cgi in your# http server. If you really want that, contact me.variable version 1.0variable feedback {http://www.eggdrop.es/cgi-bin/feedback.cgi}variable update {http://www.eggdrop.es/cgi-bin/update.cgi}proc welcome {hand ipx text} {global ourtubeset arg [lindex [split $text] 0]switch -- $arg {"feedback" {set contact [lindex [split $text] 1]set message [join [lrange [split $text] 1 end]]if {($contact eq "") || ($message eq "")} {putdcc $ipx "$ourtube(projectName) - FeedBack"putdcc $ipx "Thank you for tell what you think."putdcc $ipx "This command sends to author an message with your suggestion, you are able to send one feedback per day (aprox)"putdcc $ipx "Usage: .webfeedback &lt;your email (put it if you may want a reply or conversation with author, if not, put anything)&gt; &lt;tell me in english or spanish what you want say&gt;"} else {set result [[namespace current]::Feedback $contact $ourtube(projectName) $message]if {$result eq ""} {putdcc $ipx "The server responded nothing. Did you sent a previous feedback already?"return}putdcc $ipx "The server responded:"foreach line [split $result \n] {putdcc $ipx $line}}}"update" {set download [lindex [split $text] 1]putdcc $ipx [join [lrange [split [[namespace current]::Update $ourtube(fileName) $ourtube(projectName) $ourtube(version) $download]] 1 end]]}default {putdcc $ipx "You can use '.ourtube update' to verify the last version and '.ourtube feedback' to send to author a suggestion"}}}proc Feedback {reporter projectName message} {variable feedbackhttp::config -useragent "$reporter $projectName"set token [http::geturl "$feedback\?suggest=[http::formatQuery $message]" -timeout 4000]set data [http::data $token]http::cleanup $tokenreturn $data}proc Update {fileName projectName version {download ""}} {variable updateset fs [open $fileName]set data [read $fs]close $fsset md5 [md5 $data]set query [http::formatQuery project $projectName version $version md5 $md5 download $download]set token [http::geturl "$update\?$query" -timeout 4000]set data [http::data $token]http::cleanup $token        set result ""        set info ""        set url ""regexp {&lt;!-- result --&gt;(.*?)&lt;!-- /result --&gt;} $data "" resultregexp {&lt;!-- info --&gt;(.*?)&lt;!-- /info --&gt;} $data "" infoif {($download ne "") &amp;&amp; ($download ne "no") &amp;&amp; ($result == 1)} {regexp {&lt;!-- data --&gt;(.*?)&lt;!-- /data --&gt;} $data "" urlif {![regexp -nocase {^(http://)?([^/:]+)(:([0-9]+))?(/.*)?$} $url]} {return "0 Invalid URL target file link."}set token [http::geturl $url -binary 1 -timeout 4000]set fileData [http::data $token]            file rename -force -- $fileName $fileName\.bakset fs [open $fileName w]puts -nonewline $fs $fileDataclose $fs            catch {source $fileName}set info "$projectName was (purged) downloaded and sourced succesfully, now you are using the lastest version available. There is a backup in $fileName\.bak"        }return "$result $info"}}if {![info exists ourtube(loaded)]} {    if {$ourtube(autoupdate) == "1"} {        set ourtube(status) [communication::Update $ourtube(fileName) $ourtube(projectName) $ourtube(version) $ourtube(autoupdate)]        set ourtube(result) [lindex [split $ourtube(status)] 0]        set ourtube(info) [join [lrange [split $ourtube(status)] 1 end]]        otLog log $ourtube(info)    }} otLog log "[file tail $ourtube(fileName)] $ourtube(version) Loaded - by $ourtube(author) (Feedback and update commands available, type .ourtube in partyline)"set ourtube(loaded) 1</code></pre></div>Appreciate any help<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=9931">Fraud</a> — Sat Sep 25, 2010 11:24 am</p><hr />
]]></content>
	</entry>
	</feed>
