Loading the following functions and then using the expression...

convert-email-object msg

...where "msg" is an e-mail object loaded from a mailbox...

produces too many values for the "body" word in the resultant object...

make object! [
    headline: "Nixon said he will run again"
    subheadline: "Aides said his health is of no concern"
    body: ["first paragraph first article" "" "" "second paragraph second article" 
"" "first paragraph second article" "" "" "second paragraph second article" ""]
]

Somehow, the "content-parts" variable in the breakdown-content function 
carries over from one operation to a second operation. Why is this 
happening?

Thanks.

-Ryan



functions used...


; -- BREAKDOWN-SUBJECT --

breakdown-subject: func [
        "breakdown an e-mail subject field into its parts"
        msg [object!] "e-mail message"
        /local
        subject-info [string!] "the Subject line of the e-mail"
        subject-parts [block!] "the parts of the Subject line of the e-mail"
][
        subject-info: msg/subject
        subject-parts: []
        foreach part parse/all subject-info ":" [
                append subject-parts part
        ]
]


; -- BREAKDOWN-CONTENT --

breakdown-content: func [
        "breakdown an e-mail content field into its parts"
        msg [object!] "e-mail message"
        /local
        article-info [string!] "the body text of the e-mail"
        content-parts [block!] "the paragraphs of the body text of the e-mail"
][
        article-info: msg/content
        end-of-paragraph: rejoin [{.} newline]
        content-parts: []
        foreach part parse/all article-info end-of-paragraph [ append content-parts 
part ]
]


; -- BREAKDOWN-EMAIL --

breakdown-email: func [
        "breakdown an e-mail message object and convert it to an article object"
        msg [object!] "e-mail message"
        /local
        subject-pieces [block!] "a block containing the parts of the Subject line of 
the e-mail"
        content-pieces [block!] "a block containing the paragraphs of the body text of 
the e-mail"
        article [object!] "an object containing the parts of a news article"
][

        subject-pieces: breakdown-subject msg
        content-pieces: breakdown-content msg

        make object! [
                headline: subject-pieces/1
                subheadline: subject-pieces/2
                body: content-pieces
        ]
]


; -- TIME-IN-DIGITS --

time-in-digits: func [
        "convert the date and time from 'now' into a string of digits"
        sun-dial [date!] "the current date and time from 'now'"
][
        year: to-string sun-dial/year
        month: to-string sun-dial/month
        if (length? month) < 2 [insert month "0"]
        day: to-string sun-dial/day
        if (length? day) < 2 [insert day "0"]

        current-time: sun-dial/time
        hour: to-string current-time/hour
        if (length? hour) < 2 [insert hour "0"]
        minutes: to-string current-time/minute
        if (length? minutes) < 2 [insert minutes "0"]
        seconds: to-string current-time/second
        if (length? seconds) < 2 [insert seconds "0"]
        
        rejoin [year month day hour minutes seconds]
]


; -- CONVERT-EMAIL-OBJECT --

convert-email-object: func [
        "convert an email object into an object a news article object and write it as 
a file"
        msg [object!] "e-mail message"
        /local
        file-name [string!] "a string of digits used to name a file"
        complete-file-name [string!] "a file name using a string of digits and an 
extension"
][

        now-digits: time-in-digits now

        object-name: rejoin ["article" now-digits]

        generate-object: rejoin [ reform [ "save" rejoin [{%absolute/path/articles/} 
object-name {.r}] ] " " reform [rejoin [object-name ":"] "breakdown-email msg"] ]

        do generate-object

        ;temp-one: find person 'full.name
        ;set in article 'byline temp-one/2

        ;temp-two: find person 'reporter.title
        ;set in article 'title temp-two/2

        wait 1
]

Reply via email to