using an event to periodically check a pop server for email.
[1/7] from: steve:shireman:semaxwireless at: 26-Jun-2001 10:02
I am using a face feel event, set at 120 seconds, to try to download
emails by an email bot.
I made an engage: function to do the read //pop: ... in the context of
the face. (of course, this can take many seconds to do)
My goal is to parse through the emails, and pull out the valid data, but
I think this is killing the GUI of View.
-----------
area 400x55 "Current GPS location = 39 17.4446 N 094 40.5533 W"
rate 120 feel[
engage: func [face act evt][
; this next step may take a long time, and maybe is in
wrong context?
mailbox: read pop://semax025:[ankle1--www--semaxwireless--com]
foreach msg skip mailbox prior-len [
msg: import-email msg
from: first msg/from
if all [
find trusted-sources from
parse/all msg/subject GPS-rule
][
face/text: reduce ["current GPS data"
msg/subject]
]
]
prior-len: length? mailbox
show face
]
]
--------------
any tips or ideas?
Thanks,
Steve Shireman
[2/7] from: cyphre:volny:cz at: 26-Jun-2001 17:36
Hello Steve,
you should put the whole code inside 'engage function into following
condition:
if act = 'time [ >>put function code here<<]
Then the parsing is done just only when the time event from rate is going
thru the face. Maybe this would help you....
Regards,
Cyphre
----- Original Message -----
From: "Steve Shireman" <[steve--shireman--semaxwireless--com]>
To: <[rebol-list--rebol--com]>
Sent: Tuesday, June 26, 2001 5:02 PM
Subject: [REBOL] using an event to periodically check a pop server for
email.
[3/7] from: arolls:bigpond:au at: 27-Jun-2001 2:19
You could launch another rebol process
each 120 seconds to do the work?
or
Split your work up into several parts.
Increase your rate to about 1, so that
the work gets done in a reasonable time.
Maintain two variables:
job-part: 0 ; stores which part of the job you are up to.
counter: 0 ; counts up to 120 seconds
So, as each 'time event comes along,
increment counter until it gets to 120 seconds worth.
When 120, fire up your job by incrementing job-part
up to the maximum of jobs.
if non-zero, do the job indicated by job-part.
Kind of a state machine.
Hang on, code is easier:-)
; assuming rate 1
if evt = 'time [
if 120 = counter: counter + 1 [
counter: 0 ; reset the counter
; start the job (starting with the first part).
job-part: 1
]
switch job-part compose [
0 [] ; do nothing
1 [
; read email here
job-part: job-part + 1
]
2 [
; parse through each email here
; (maintain a second job-part counter
; here to process each email)
job-part: job-part + 1
]
3 [
; send each email here
; (maintain that second job-part counter
; again to process each email)
job-part: job-part + 1
]
4 [
; do last part here
job-part: 0 ; we are finished
]
]
]
or
Perhaps you can just insert [wait none]
between your job parts. (Just be sure
to avoid infinite loop. Use a flag to
indicate that your job is in progress).
Anton.
[4/7] from: steve::shireman::semaxwireless::com at: 26-Jun-2001 11:24
Cyphre.
Thanks for the tip.
-but, I tried it and it didn't fix it.
When I put the same code in the action part of a button, it works OK.
Of course, this is in the View with /Link, so maybe I better try it in
/ViewPro 1.2.1...
Steve Shireman
Richard Smolak wrote:
[5/7] from: agem:crosswinds at: 26-Jun-2001 19:27
RE: [REBOL] Re: using an event to periodically check a pop server for email.
[arolls--bigpond--net--au] wrote:
> You could launch another rebol process
> each 120 seconds to do the work?
>
Ah! i got it :)
120 SECONDS..
rate 00:00:120
[rebol[title: "flickering"]
view layout[
box blue
rate 120 feel[
engage: func[face a e][if 'time = a [
face/color: get random/only[blue green yellow]
show face
]]]]]
;-) Volker
[6/7] from: steve:shireman:semaxwireless at: 26-Jun-2001 12:54
Oih!!! A thousand Doih's
I was doing rate of 120 thinking it was seconds, instead of 00:02:00
time like for 2 minutes.
Now it is working!
so 120 meant 120 times a second!
Sorry for the bandwidth usage.
Steve Shireman
a script in time saves nine
Rebol-sewing the fabric of the future
Anton wrote:
[7/7] from: steve:shireman:semaxwireless at: 26-Jun-2001 13:38
Yeah, thats it.
Steve
Time can change me, but I just get I-rate..
[agem--crosswinds--net] wrote: