REBOL [
    Title: "Forecast API"
    Date:  2-May-2013
    Author: "Christopher Ross-Gill"
    Settings: [
        Api-Key: <api-key-goes-here>
        ; or: do/args http://reb4.me/r/forecast [api-key: <api-key-goes-here>]
    ]
    Notes: [
        Api-Docs: https://developer.forecast.io/docs/v2
    ]
]

do http://reb4.me/r/curl
do http://reb4.me/r/altjson
; do http://reb4.me/r/altwebform ; for params (to follow)

forecast: use [settings target timestamp][
    settings: make context [api-key: none] any [
        system/script/args
        system/script/header/settings
    ]

    timestamp: func [/for date [date!]][
        date: any [date now]
        date: form any [
            attempt [to integer! difference date 1-Jan-1970/0:0:0]
            date - 1-Jan-1970/0:0:0 * 86400.0
        ]
        clear find/last date "."
        date
    ]

    target: dirize join https://api.forecast.io/forecast/ settings/api-key

    forecast: func [
        latitude [number!]
        longitude [number!]
        /at time [date! time!]
    ][
        load-json curl join target either at [
            if time? time [
                at: now
                if at/time > time [at: at + 1]
                at/time: time
                time: :at
            ]

            [latitude "," longitude "," timestamp time]
        ][[latitude "," longitude]]
    ]
]