Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 938
Noen som vet om et bra telefonbok skript til eggdrop?

Har prøvd det phone.tcl skriptet som ligger på egghelp.org Men fikk det ikke helt til å funke, det skriptet hadde vært ypperlig om det bare hadde funka.

Problemet mitt er at jeg får ikke ut noe info når jeg skriver !phone. Har endret sånn at ikke bare v|v kan gjøre det, satt inn - isteden.



Noen som vet hva jeg kan gjøre med skriptet. Eller helst noen som vet om eller klarer å lage et tcl skript sånn i farta?

Det beste hadde vært om man kunne skrive

!tlfadd 12345678

Så hadde nummeret til nicket som skrev det blitt lagret sånn at alle brukere på kanalen kunne skrevet (si at jeg, Dark, skrev det da)

!tlf Dark

Så svarer boten:

Dark: 12345678
Sist endret av iDark; 16. august 2005 kl. 01:49.
m0b
m0b's Avatar
DonorAdministrator
Har du tilgang til mysql-database på den saken din?

Edit: Har du ikke det er det greit nok, kan bruke en vanlig flatfile. Med mindre noen skriver scriptet før meg, så kan jeg sikkert få skrevet det til i morgen. Har mye jobb å gjøre, så det er litt hektisk for meg.
Sist endret av m0b; 16. august 2005 kl. 15:28.
m0b
m0b's Avatar
DonorAdministrator
Okey, har hatt det litt travelt om dagene og er også litt distré med å huske på å poste. Laget det ferdig på mandag eller tirsdag. Valgte å skrive scriptet på en litt utradisjonell måte slik at jeg også kan vise dere andre at det er ikke så nøye hvilket språk man faktisk skriver scriptet i. Man trenger kun grunnleggende tcl-ferdigheter. ALtså, her tar tcl-scriptet i mot argumentene som trengs, og deretter sendes de videre til selve php-scriptet. Enkelt og genialt!

Uansett, here goes. Gå til scripts i eggdrop-katalogen og lag filen phonebook.tcl

Kode

bind pub * !tlf pub_getnumber
bind pub * !add pub_addnumber

proc pub_getnumber {nick host handle chan text} {
        putlog "Asking for number to $text"
        set getnum [exec php scripts/phonebook.php get $text]
        putserv "privmsg $nick :$getnum"
}

proc pub_addnumber {nick host handle chan text} {
        set number [lindex $text 0]
        putlog "Adding $number to $nick"
        set addnum [exec php scripts/phonebook.php add $nick $number]
        putserv "privmsg $nick :$addnum"
}
Deretter lager du fila phonebook.php i samme katalog.

Kode

<?php
class cPhoneBook
{
    var $Content = '';
    var $Handle = null;
    var $PhoneBook = 'Katalogen.txt';
    
    function cPhoneBook( ) // Constructor
    {
        if( null == ($this->Handle=@fopen($this->PhoneBook, 'a+')) )
            die( 'Constructor Error' );
    }
    
    function Destroy() // Destructor
    {
        if( null != $this->Handle )
            fclose( $this->Handle );
        settype( &$this, 'null' );
    }
    
    function AddNumber( $Name, $Number )
    {
        if( null != $this->Handle )
        {
            $this->Content = @fread( $this->Handle, filesize($this->PhoneBook) );
            if( 0 != eregi('Name:' . $Name, $this->Content) )
                echo $Name . ' is already added';
            else
            {
                echo 'Adding phone number ' . $Number . ' to ' . $Name;
                if( null == (@fwrite($this->Handle, 'Name:' . $Name . ' Number:' . $Number . "\n")) )
                    die( 'File writing error' );                
            }
        }
    }
            
    function GetNumber( $Name )
    {
        if( null != ($this->Content=@fread($this->Handle,filesize($this->PhoneBook))) )
        {
            if( 0 != eregi('Name:' . $Name . ' Number:([0-9]+)', $this->Content, $Num) )
                echo 'Number for ' . $Name . ' is: ' . $Num[1];
            else
                echo $Name . ' was not found';
        }
        else
            echo 'File is empty';
    }
}
$PhoneBook = new cPhoneBook();

$Action = $argv[1];
if( !strcmp($Action, 'get') )
{
    $GetNumber = $argv[2];
    $PhoneBook->GetNumber( $GetNumber );
}

if( !strcmp($Action, 'add') )
{
    $Name = $argv[2];
    $Number = $argv[3];
    $PhoneBook->AddNumber( $Name, $Number );
}

$PhoneBook->Destroy();
?>
Så til slutt går du i eggdrop-configen og laster inn scriptet.

Kode

source scripts/eggdrop.tcl
Restart eggdropen eller ta en .rehash så den laster inn scriptet.

Så, for å legge tli en i telefonkatalogen så skriver man kun !add <nummer>, og for å søke på oppslag skriver man bare !tlf <nick>. Slik det er nå så legger den nummeret automatisk til et nick. Men dersom du ønsker å ha slik at man skal kunne lage et eget navn til nummeret kan jeg skrive en liten fix til det. Have fun.
Sist endret av m0b; 20. august 2005 kl. 21:25.