helga
25.02.2005, 20:39
Hallo,
ich komme nicht so recht weiter, da ich von TCL-Scripting nicht so den Plan habe.
Was habe ich vor?
Also ich habe eine URL als RSS, dies wird per url/file.rss?s=blablabla erzeugt, jenachdem, was für ein wert für s übergeben wird, danach richtet sich die Ausgabe.
Nun möcht ich, daß man im Channel dieses abfragt "!trigger blablabla" und dann soll das blablabla übergeben werden, sodaß dann die demantsprechenden Daten gelesen werden können und dann im Chan erscheint.
Hier mal mein Anfang, was aber leider noch nicht funzt:
bind pub -|- !trigger dupe_proc
proc dupe_proc { nick uhost handle chan arg }
{
if {[llength $arg]==0}
{
putserv "PRIVMSG $channel :hey $nick ! gib an was Du suchst!"
} else
{
set query "http://www.URL.de/file.php?s="
for { set index 0 } { $index<[llength $arg] } { incr index }
{
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then
{
set query "$query+"
}
}
}
set rssoutput "\00304\002\037 .::-::. \017\00307 \[postingdate: <date> \] \017\00307 \[ <title>\]"
global rsschans rssnewspost rssnewspostlimit rsslimit rsslayout2
set counter 0
if {$rssnewspost == 1 }
{
regsub -all -- {(http://)+} $query "" query
regexp {[A-z|0-9|\-|\.|\_]*\.[A-z]{2,3}} $query rssurl
regexp {[/]+(.)*} $query rssfeed
putlog "rss: searching for dupe on $query"
set rsslastnews "none"
if {[catch {set sock [socket $rssurl $rssport]} sockerror]}
{
putlog "error: $sockerror"
return 0
} else
{
puts $sock "GET $rssfeed HTTP/1.1"
puts $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
puts $sock "Host: $rssurl"
puts $sock ""
flush $sock
set counter 0 ; set getfeed 0
while {(![eof $sock])}
{
if {($counter == $rsslimit)} {break}
set bl [gets $sock]
if {([string first "<item " $bl] != -1) || ([string first "<item>" $bl] != -1)} {set getfeed 1}
if {$getfeed == 0}
{
if {[string first "<title>" $bl] != -1} { set publisher [cleanstring $bl 1]}
}
elseif {$getfeed == 1}
{
if {[string first "<title>" $bl] != -1} {set newsline [cleanstring $bl 1]}
if {[string first "<date>" $bl] != -1} {set newsdate [cleanstring $bl 1]}
if {[string first "</item>" $bl] != -1}
{
regsub -all -- {<date>} $rssoutput $newsdate rssoutput
regsub -all -- {<title>} $rssoutput $newsline rssoutput
#puts $temp "$rssoutput"
putserv "privmsg $chan :$newrssline"
set getfeed 0 ; incr counter
}
}
}
}
close $sock ; close $temp ; set counter 0
}
putlog "RSS-TCL is now loaded..."
Wer kann mir da helfen ???
Danke schonmal im vorraus
ich komme nicht so recht weiter, da ich von TCL-Scripting nicht so den Plan habe.
Was habe ich vor?
Also ich habe eine URL als RSS, dies wird per url/file.rss?s=blablabla erzeugt, jenachdem, was für ein wert für s übergeben wird, danach richtet sich die Ausgabe.
Nun möcht ich, daß man im Channel dieses abfragt "!trigger blablabla" und dann soll das blablabla übergeben werden, sodaß dann die demantsprechenden Daten gelesen werden können und dann im Chan erscheint.
Hier mal mein Anfang, was aber leider noch nicht funzt:
bind pub -|- !trigger dupe_proc
proc dupe_proc { nick uhost handle chan arg }
{
if {[llength $arg]==0}
{
putserv "PRIVMSG $channel :hey $nick ! gib an was Du suchst!"
} else
{
set query "http://www.URL.de/file.php?s="
for { set index 0 } { $index<[llength $arg] } { incr index }
{
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then
{
set query "$query+"
}
}
}
set rssoutput "\00304\002\037 .::-::. \017\00307 \[postingdate: <date> \] \017\00307 \[ <title>\]"
global rsschans rssnewspost rssnewspostlimit rsslimit rsslayout2
set counter 0
if {$rssnewspost == 1 }
{
regsub -all -- {(http://)+} $query "" query
regexp {[A-z|0-9|\-|\.|\_]*\.[A-z]{2,3}} $query rssurl
regexp {[/]+(.)*} $query rssfeed
putlog "rss: searching for dupe on $query"
set rsslastnews "none"
if {[catch {set sock [socket $rssurl $rssport]} sockerror]}
{
putlog "error: $sockerror"
return 0
} else
{
puts $sock "GET $rssfeed HTTP/1.1"
puts $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
puts $sock "Host: $rssurl"
puts $sock ""
flush $sock
set counter 0 ; set getfeed 0
while {(![eof $sock])}
{
if {($counter == $rsslimit)} {break}
set bl [gets $sock]
if {([string first "<item " $bl] != -1) || ([string first "<item>" $bl] != -1)} {set getfeed 1}
if {$getfeed == 0}
{
if {[string first "<title>" $bl] != -1} { set publisher [cleanstring $bl 1]}
}
elseif {$getfeed == 1}
{
if {[string first "<title>" $bl] != -1} {set newsline [cleanstring $bl 1]}
if {[string first "<date>" $bl] != -1} {set newsdate [cleanstring $bl 1]}
if {[string first "</item>" $bl] != -1}
{
regsub -all -- {<date>} $rssoutput $newsdate rssoutput
regsub -all -- {<title>} $rssoutput $newsline rssoutput
#puts $temp "$rssoutput"
putserv "privmsg $chan :$newrssline"
set getfeed 0 ; incr counter
}
}
}
}
close $sock ; close $temp ; set counter 0
}
putlog "RSS-TCL is now loaded..."
Wer kann mir da helfen ???
Danke schonmal im vorraus