Iceman
09.11.2004, 13:11
Hallo ich habe ein Addon für Mirc und möchte das auf ein Eggdrop laufen lassen. Hat jemand eine Idee wie man das umbauen kann?
Das ist das Script vom Addon. Link wurde verkürzt :-)
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
;GNS Release Catcher
;
;v 1.0
;
;© Duplex 2003
;
;contact: irc.liquidirc #scripting
;or: irc.solidirc.de #paradise
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
;LOAD/UNLOAD
;**************
on 1:LOAD:{
set %gns.channels $$?="Channel(s) Eingeben, getrennt mit Komma (,)"
set %gns.int 60
set %gns.mode 1
set %gns.count 0
echo -a ***********************************
echo a- 3Successfully loaded GNS Release Catcher v 1.0
echo -a Channels set to: %gns.channels, Sitecheck Intervall set to: 60 seconds
echo -a You can configure the Script via the Channel or status menu
echo -a ***********************************
}
on 1:UNLOAD:{
unload %gns.*
echo -a ***********************************
Unloaded GNS Release Catcher v 1.0
echo -a ***********************************
}
on *:START:{
set %gns.mode 4
gns-con
}
;ALIASES
***************
alias gns-con {
if ($sock(gns).status == active ) {
sockclose gns
;aline 4 @gns Socket closed
}
else {
;window -e @GNS
sockopen gns butterfly-kisses.de 80
;aline 3 @gns Opening Socket ....
}
}
alias gns-eval {
if ( %gns.mode == 1) {
msg %gns.nick 9,1 Found $+ %gns.count $+ matching Releases (max 7 shown)
$iif($read(gns.txt,2),play -l2 %gns.nick gns.txt 1500 )
$iif($read(gns.txt,3),play -l3 %gns.nick gns.txt 2000 )
$iif($read(gns.txt,4),play -l4 %gns.nick gns.txt 2500 )
$iif($read(gns.txt,5),play -l5 %gns.nick gns.txt 3000 )
$iif($read(gns.txt,6),play -l6 %gns.nick gns.txt 3500 )
$iif($read(gns.txt,7),play -l7 %gns.nick gns.txt 4000 )
}
elseif ( %gns.mode == 2) {
if (%gns.nick == $me ) {
echo -a Latest 10 NFO's :
}
else {
.msg %gns.nick Latest 10 NFO's :
}
var %i = 1
while ( %i <= %gns.count) {
if (%gns.nick == $me ) {
echo -a $read(gns.txt,%i)
}
else {
.msg %gns.nick $read(gns.txt,%i)
}
inc %i 1
}
}
elseif (%gns.mode == 3) {
if ( $read(gns.txt,1) != $read(gns-alt.txt,1) ) {
msg %gns.channels New Release(s) just added:
var %i = 1
while ( ($read(gns.txt, %i)) && ( $read(gns.txt, %i) != $read(gns-alt.txt, 1))) {
msg %gns.channels $read(gns.txt, %i)
inc %i 1
}
var %i = 1
write -c gns-alt.txt
while ( $read(gns.txt, %i ) ) {
write gns-alt.txt $read(gns.txt, %i)
inc %i 1
}
}
}
elseif ( %gns.mode == 4 ) {
var %i = 1
write -c gns-alt.txt
while ( $read(gns.txt, %i ) ) {
write gns-alt.txt $read(gns.txt, %i )
inc %i 1 }
write -dl1 gns-alt.txt
}
elseif ( %gns.mode == 5 ) {
msg %gns.nick Latest Release: $read(gns.txt,1)
}
$iif(($timer(gns)), .timergns -r)
}
alias gns-help {
$1- 4,1 #################################################################################
$1- 7,1 Die Trigger des Release Info Bots:
$1- 7,1 Um ein Release zu suchen: 9,1 !rel <suchbegriffe>
$1- 7,1 Zum anzeigen des letzten Releases: 9,1!pred
$1- 7,1 Um die letzten 10 Releases zu sehen (im Query): 9,1!latest10
$1- 7,1 Ausserdem postet der Bot jeden Release in den Channel sobald er auf geadded wird.
if ( $2- == echo -a ) {
für dich (den script-betreiber) gelten analog die aliases /pred, /rel und /latest10
}
$1- 7,1 greets & © Duplex :)
$1- 4,1 #################################################################################
}
alias gns-autocheck {
set %gns.mode 3
gns-con
}
alias rel {
if ( $2- ) {
set %gns.mode 1
set %gns.nick $active
set %gns.searchterm $replace($2-,$chr(32),$chr(37) $+ 20)
.timergns -p
gns-con
}
else {
echo -a Bitte gib einen Suchbegriff ein...
}
}
alias pred {
set %gns.mode 5
.timergns -p
set %gns.nick %gns.channels
gns-con
}
alias latest10 {
set %gns.mode 2
set %gns.nick $me
.timergns -p
gns-con
}
;SOCKEVENTS
;***************
on 1:SOCKOPEN:gns:{
write -c gns.txt
set %gns.count 0
if ( %gns.mode == 1) {
sockwrite -n $sockname GET /gns/irc_bot.php?----Gekürzt ---- [ $+ [ %gns.searchterm ] ] HTTP/1.1
}
elseif ( %gns.mode >= 2 ) {
sockwrite -n $sockname GET /gns/irc_bot.php?-----Gekürzt --- HTTP/1.1
}
sockwrite -n $sockname Host: butterfly-kisses.de $+ $crlf $+ $crlf
;aline 3 @gns Fetching last10 files
}
on 1:SOCKCLOSE:gns: {
;aline 4 @gns Connetion was terminated...
gns-eval
}
on 1:SOCKREAD:gns:{
if ($sockerr) { echo -a 4GNS: Error while reading file | echo connection failed | return }
var %gns.content
sockread %gns.content
;aline @gns > %gns.content
if ( $numtok(%gns.content,124) == 6 ) {
var %gns.date = $gettok(%gns.content,2,124), %gns.time = $gettok(%gns.content,3,124), %gns.section = $gettok(%gns.content,4,124), %gns.group = $gettok(%gns.content,5,124), %gns.release = $gettok(%gns.content,6,124)
write gns.txt $chr(35) $+ $gettok(%gns.content,1,124) $+ : 8,1 $chr(91) $+ %gns.section $+ $chr(93) 9,1 $chr(91) $+ %gns.group $+ $chr(93) $+ : 4,1 $chr(91) %gns.release $chr(93) $+ 15,1 $chr(91) $+ %gns.date %gns.time $+ $chr(93)
inc %gns.count 1
}
}
;TRIGGERS
;************
on *:TEXT:!pred:%gns.channels:{
set %gns.mode 5
.timergns -p
set %gns.nick $chan
gns-con
}
on *:TEXT:!rel*:%gns.channels:{
if ( $2- ) {
set %gns.mode 1
set %gns.nick %gns.channels
set %gns.searchterm $replace($2-,$chr(32),$chr(37) $+ 20)
.timergns -p
gns-con
}
else {
.notice $nick Bitte gib einen Suchbegriff ein...
}
}
on *:TEXT:!latest10:%gns.channels:{
set %gns.mode 2
set %gns.nick $nick
.timergns -p
gns-con
}
on *:TEXT:!help:%gns.channels:{
gns-help .notice $nick
}
;MENU
;********
menu channel,status {
GNS Bot
.Autocheck
..Turn $iif($timer(gns),off,on) : { .timergns $iif(($timer(gns)),off, 0 %gns.int gns-autocheck) | echo -a Autocheck $iif(($timer(gns)),active,off) }
.-
.Set Channel(s): set %gns.channels $$?="Channel(s) Eingeben, getrennt mit Komma (,)"
.Set Sitecheck Intervall: set %gns.int $$?="Intervall in Sekunden"
.echo Current Settings: echo -a [GNS Bot Settings] ::Channels:: %gns.channels ::Sitecheck-Intervall:: %gns.int sec.
.-
.Help: gns-help echo -a
.Uninstall: unload -rs $script
}
--------------------------------------------------------------------------
Schön wäre es wenn das Tcl folgende Funktionen hätte:
Timer: auf eine min
Suchfunktion wie in der Help angegeben
Wäre für jede Hilfe dankbar.
Gruß Sylvi
Das ist das Script vom Addon. Link wurde verkürzt :-)
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
;GNS Release Catcher
;
;v 1.0
;
;© Duplex 2003
;
;contact: irc.liquidirc #scripting
;or: irc.solidirc.de #paradise
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
;LOAD/UNLOAD
;**************
on 1:LOAD:{
set %gns.channels $$?="Channel(s) Eingeben, getrennt mit Komma (,)"
set %gns.int 60
set %gns.mode 1
set %gns.count 0
echo -a ***********************************
echo a- 3Successfully loaded GNS Release Catcher v 1.0
echo -a Channels set to: %gns.channels, Sitecheck Intervall set to: 60 seconds
echo -a You can configure the Script via the Channel or status menu
echo -a ***********************************
}
on 1:UNLOAD:{
unload %gns.*
echo -a ***********************************
Unloaded GNS Release Catcher v 1.0
echo -a ***********************************
}
on *:START:{
set %gns.mode 4
gns-con
}
;ALIASES
***************
alias gns-con {
if ($sock(gns).status == active ) {
sockclose gns
;aline 4 @gns Socket closed
}
else {
;window -e @GNS
sockopen gns butterfly-kisses.de 80
;aline 3 @gns Opening Socket ....
}
}
alias gns-eval {
if ( %gns.mode == 1) {
msg %gns.nick 9,1 Found $+ %gns.count $+ matching Releases (max 7 shown)
$iif($read(gns.txt,2),play -l2 %gns.nick gns.txt 1500 )
$iif($read(gns.txt,3),play -l3 %gns.nick gns.txt 2000 )
$iif($read(gns.txt,4),play -l4 %gns.nick gns.txt 2500 )
$iif($read(gns.txt,5),play -l5 %gns.nick gns.txt 3000 )
$iif($read(gns.txt,6),play -l6 %gns.nick gns.txt 3500 )
$iif($read(gns.txt,7),play -l7 %gns.nick gns.txt 4000 )
}
elseif ( %gns.mode == 2) {
if (%gns.nick == $me ) {
echo -a Latest 10 NFO's :
}
else {
.msg %gns.nick Latest 10 NFO's :
}
var %i = 1
while ( %i <= %gns.count) {
if (%gns.nick == $me ) {
echo -a $read(gns.txt,%i)
}
else {
.msg %gns.nick $read(gns.txt,%i)
}
inc %i 1
}
}
elseif (%gns.mode == 3) {
if ( $read(gns.txt,1) != $read(gns-alt.txt,1) ) {
msg %gns.channels New Release(s) just added:
var %i = 1
while ( ($read(gns.txt, %i)) && ( $read(gns.txt, %i) != $read(gns-alt.txt, 1))) {
msg %gns.channels $read(gns.txt, %i)
inc %i 1
}
var %i = 1
write -c gns-alt.txt
while ( $read(gns.txt, %i ) ) {
write gns-alt.txt $read(gns.txt, %i)
inc %i 1
}
}
}
elseif ( %gns.mode == 4 ) {
var %i = 1
write -c gns-alt.txt
while ( $read(gns.txt, %i ) ) {
write gns-alt.txt $read(gns.txt, %i )
inc %i 1 }
write -dl1 gns-alt.txt
}
elseif ( %gns.mode == 5 ) {
msg %gns.nick Latest Release: $read(gns.txt,1)
}
$iif(($timer(gns)), .timergns -r)
}
alias gns-help {
$1- 4,1 #################################################################################
$1- 7,1 Die Trigger des Release Info Bots:
$1- 7,1 Um ein Release zu suchen: 9,1 !rel <suchbegriffe>
$1- 7,1 Zum anzeigen des letzten Releases: 9,1!pred
$1- 7,1 Um die letzten 10 Releases zu sehen (im Query): 9,1!latest10
$1- 7,1 Ausserdem postet der Bot jeden Release in den Channel sobald er auf geadded wird.
if ( $2- == echo -a ) {
für dich (den script-betreiber) gelten analog die aliases /pred, /rel und /latest10
}
$1- 7,1 greets & © Duplex :)
$1- 4,1 #################################################################################
}
alias gns-autocheck {
set %gns.mode 3
gns-con
}
alias rel {
if ( $2- ) {
set %gns.mode 1
set %gns.nick $active
set %gns.searchterm $replace($2-,$chr(32),$chr(37) $+ 20)
.timergns -p
gns-con
}
else {
echo -a Bitte gib einen Suchbegriff ein...
}
}
alias pred {
set %gns.mode 5
.timergns -p
set %gns.nick %gns.channels
gns-con
}
alias latest10 {
set %gns.mode 2
set %gns.nick $me
.timergns -p
gns-con
}
;SOCKEVENTS
;***************
on 1:SOCKOPEN:gns:{
write -c gns.txt
set %gns.count 0
if ( %gns.mode == 1) {
sockwrite -n $sockname GET /gns/irc_bot.php?----Gekürzt ---- [ $+ [ %gns.searchterm ] ] HTTP/1.1
}
elseif ( %gns.mode >= 2 ) {
sockwrite -n $sockname GET /gns/irc_bot.php?-----Gekürzt --- HTTP/1.1
}
sockwrite -n $sockname Host: butterfly-kisses.de $+ $crlf $+ $crlf
;aline 3 @gns Fetching last10 files
}
on 1:SOCKCLOSE:gns: {
;aline 4 @gns Connetion was terminated...
gns-eval
}
on 1:SOCKREAD:gns:{
if ($sockerr) { echo -a 4GNS: Error while reading file | echo connection failed | return }
var %gns.content
sockread %gns.content
;aline @gns > %gns.content
if ( $numtok(%gns.content,124) == 6 ) {
var %gns.date = $gettok(%gns.content,2,124), %gns.time = $gettok(%gns.content,3,124), %gns.section = $gettok(%gns.content,4,124), %gns.group = $gettok(%gns.content,5,124), %gns.release = $gettok(%gns.content,6,124)
write gns.txt $chr(35) $+ $gettok(%gns.content,1,124) $+ : 8,1 $chr(91) $+ %gns.section $+ $chr(93) 9,1 $chr(91) $+ %gns.group $+ $chr(93) $+ : 4,1 $chr(91) %gns.release $chr(93) $+ 15,1 $chr(91) $+ %gns.date %gns.time $+ $chr(93)
inc %gns.count 1
}
}
;TRIGGERS
;************
on *:TEXT:!pred:%gns.channels:{
set %gns.mode 5
.timergns -p
set %gns.nick $chan
gns-con
}
on *:TEXT:!rel*:%gns.channels:{
if ( $2- ) {
set %gns.mode 1
set %gns.nick %gns.channels
set %gns.searchterm $replace($2-,$chr(32),$chr(37) $+ 20)
.timergns -p
gns-con
}
else {
.notice $nick Bitte gib einen Suchbegriff ein...
}
}
on *:TEXT:!latest10:%gns.channels:{
set %gns.mode 2
set %gns.nick $nick
.timergns -p
gns-con
}
on *:TEXT:!help:%gns.channels:{
gns-help .notice $nick
}
;MENU
;********
menu channel,status {
GNS Bot
.Autocheck
..Turn $iif($timer(gns),off,on) : { .timergns $iif(($timer(gns)),off, 0 %gns.int gns-autocheck) | echo -a Autocheck $iif(($timer(gns)),active,off) }
.-
.Set Channel(s): set %gns.channels $$?="Channel(s) Eingeben, getrennt mit Komma (,)"
.Set Sitecheck Intervall: set %gns.int $$?="Intervall in Sekunden"
.echo Current Settings: echo -a [GNS Bot Settings] ::Channels:: %gns.channels ::Sitecheck-Intervall:: %gns.int sec.
.-
.Help: gns-help echo -a
.Uninstall: unload -rs $script
}
--------------------------------------------------------------------------
Schön wäre es wenn das Tcl folgende Funktionen hätte:
Timer: auf eine min
Suchfunktion wie in der Help angegeben
Wäre für jede Hilfe dankbar.
Gruß Sylvi