[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ADMIN] Perl, REBOL & maily z ruznych pohledu ...



Petr Skala wrote:
> 
> On Wed, 22 Apr 1998, Petr Krenzelok wrote:
> 
> > Ukazal jsem REBOLa par kolegum a ti se chytli. Ukazat jim perl, tam jim
> > to vysvetluju dodnes ....
> 
> Mohl bys poslat nejaky usek rebolovskeho programu, abych si udelal
> obrazek, JAK to vlastne vubec vypada ... ;)
> Dik

Dobre, takze nazacatek slight vysvetleni. Nebudu tady toho posilat vice,
abych zbytecne neplytval mistem,jak jsem byl poucen. Pokud bude nekdo
chtit, muzu mu poslat trosku vice advanced zdrojaky, jak si treba udelat
kompletniho bota pro mailing-list.

Kazdy REBOL program zacina parem zavorek, mezi nez muzete zapsat
hlavicku, tedy udaje o autorovi, nazev, atp. - ty promenne co tam jsou
jdou ale pozdeji pouzit - REBOL z toho vytvori tzv. module object (tak
nak to pojmenoval Carl). Takovyto program muze byt vlozen treba do HTML
souboru a kdyz se na to pusti rebol, tak on si to uz najde (do
http://www.stranka.cz to treba provede ...)....

V rebolu jde taky mirne prekladat (presmerovavat):

>> napis: :print
>> napis "Ahoj svete ..."
>> Ahoj svete ...

ale to je celkem drobnost ....

rebol muze pracovat s funkcemi, ale treba i objekty, jednoduse skrze
make, prikaz, ktery vytvari ruzne datatypy, ale to bude videt ve
zdrojaku. Funkce samozrejme muze sama v sobe obsahova zase funkce.

Carl zavedl koncept path, tedy cesta, takze se na ruzne podmnoziny
odkazujeme skrze lomitko:

REBOL/email-head/from ....

treba definice komunikacniho portu vypada takhle:

mailbox: make port! [

host: "rygol.sec.trz.cz"
user: "nekdo"
pass: "neco"
]
 
a pak uz jen staci napsat print length? mailbox a on se previt connectne
na POP3 a vypise ti kolik mas emailu. Je co celkem jednoduche.
Stahnout si web site nebo neco z FTP neni taky problem:

promenna: read http://www.rebol.com
save %moje.htm promenna

Jeste je nekolik zajimavych veci, zvlaste ty tasky a message porty,
ktere by se mohly pouzivat asi treba tak, ze se nejake aplikace na
druhem konci sveta na neco zeptas:

ask rebol://www.rebol.com/apps/users find seznam "Schizzy" a aplikace by
mela odpovedet, nebo tak nejak to bylo, uz nemam ten doc, Carl ho stahl
ze sajty.

No a tasky, tak to je treba:

boss: make task! [

   wait 10:00
   if length? mailbox > 0 [print "Sefe, mate ke kaficku trosku
poctenicka"]]

taky nebo tak nejak. REBOL je zatim alpha a Carl mi rekl, ze specifikace
pro betu jsou ponekud vylepsene, takze se teprve uvidi. Az to bude beta,
teprve pak pujde rict tenhle nebo onen koncept je temer jisty. Zatim se
muze zmenit cokoliv. No a tedka ten zdrojak. Je to strasne trapne
jednoduchy scriptik na forwardovani zprav z ICOA par friendum:

------------------------------------------------------------------------------------------------------

REBOL [

Title: "ICOA forward to friends ..."
Date:  31.12.1997
Author: "Petr -pekr- Krenzelok"

]

;--- ICOA function
----------------------------------------------------------
;
; simple function for forwarding ICOA messages to friends .....
;---------------------------------------------------------------------------

ICOA: make function! [] [
 local [uF0 DNA LOPOLO Shino counter msg]

	UF0:    SindlarV@hotmail.com
        DNA:    and@fornax.elf.stuba.sk
        LOPOLO: lopolo@enet.cz
        Shino:  Misek@tnet.cz

	 counter: 0
         msg: ""

	 switch accounts 'pekr ;moje jednoducha fce na prepnuti se mezi
schrankami, mam jich vice

	while [not tail? mailbox] [

           counter: counter + 1

	     message: import rebol/email-head first mailbox ; skrze sablonu
objektu email-head se importne dosla textova zprava a pak uz je v
message prislusna struktura

             if none? message/from [message/from: ["" ""]]
             if none? message/date [message/date: now]

        If not none? message/subject [ ; carefull to messages with
missing subject line
         If find? message/subject "[ICOA]" [

            ; preformat message

            form [message/subject                          *line *line
                  "Subject: "  *tab message/subject        *line
                  "From: "     *tab second message/from    *line
                  "Email: "    *tab first message/from     *line
                  "Date: "     *tab message/date           *line *line
                  message/content ] msg ; vytahnu z message to co
potrebuju a hodim to do msg

             send UF0 msg
             send DNA msg
             send Lopolo msg
             send shino msg   ; je to bohuzel tak, posila to po jednom,
multi-user odesilani vcetne podpory proxy melo byt v dalsi verzi, ktere
jsme se uz bohuzel nedockali

             print message/subject

         ] ; endif
        ] ; endif

        mailbox: next mailbox

       ] ; end-while

	print ["Pocet zprav ve schrance: " counter]

	shut mailbox ; zavreni mailboxu na serveru, bez prikazu remove, jeste
si chci precist zpravy v nechskape

wait 5
] ; end of ICOA

;--- end of ICOA function
------------------------------------------------- 


Sorry za tak dlouhy prispevek ....

-pekr-

>                                         Schizzy
> 
> Petr Skala
> skala@unl.pvt.cz