Posted to tcl by colin at Fri Mar 18 23:57:34 GMT 2011view pretty

code default {set r [Http NotFound $r]; <p> "[dict get $r -uri] Not Found"}

# The following nubs are redirects, they generate a redirect from the first to the second URL
/favico.ico {
    redirect /images/favico.ico	;# find the icon in /images
}

//mail.beldisplaytech.com/* {
    code {
        set r [Http Moved $r https://[dict get $r -host][dict get $r -path]]; dict get $r -content
    }
}

//beldisplaytech.com/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://www.[dict get $r -host][dict get $r -path]]; dict get $r -content
    }
}

//www.shadoura.com/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://shadoura.com[dict get $r -path]]; dict get $r -content
    }
}

//BELDISPLAYTECH.com/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://www.beldisplaytech.com[dict get $r -path]]; dict get $r -content
    }
}

//wms.shadoura.com/* {
    code {
        if {[string match 192.168.11.* [dict get? $r x-forwarded-for]] || [string match *bsuir.by* [dict get? $r via]]} {
            set w 192.168.11.29
        } else {
            set w [dict get $r -host]
        }
        set r [Http Moved $r "[dict get $r -scheme]://$w:8040[dict get $r -path]?ref=http://wms.shadoura.com/&[dict get? $r -query]"]
        dict get $r -content
    }
}

//go.latlon.org/tc/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://latlon.org/tc/]; dict get $r -content
    }
}

//go.latlon.org/tt/index.html {
    code {
        set r [Http Moved $r [dict get $r -scheme]://go.latlon.org/tt/index-beta.html]; dict get $r -content
    }
}

//go.latlon.org/ {
    domain {File latlon}
    root /home/www/latlon/public_html
    stream 1024
}

//go.latlon.org/logs/ {
    domain {Mason logs2}
    root /home/andrew/logs
    stream 1024
    sortparam {sortList [[2,1]]}
    dateformat %Y-%m-%d
}

#package require OSMAPI
#package require OAuth
#package require OSBTiny
//go.latlon.org/api/ {
    domain {OSMAPI ::osmapi}
    apiurl http://api.openstreetmap.org/api/
}

//go.latlon.org/wms/ {
    domain {OSMAPI ::wms}
    apiurl http://192.168.11.29:8040/
}

//go.latlon.org/xapi/ {
    domain {OSMAPI ::osmxapi}
    apiurl http://xapi.openstreetmap.org/api/
}

//go.latlon.org/bugs/ {
    domain {OSBTiny ::osb}
}

//www.osmbugs.org/* {
    code {
        set q ?[dict get? $r -query]
        if {$q eq "?"} {set q {}}
        set r [Http Moved $r [dict get $r -scheme]://osmbugs.org[dict get $r -path]$q]
        dict get $r -content
    }
}

//osmbugs.org/* {
    code {
        if {[dict get $r -path] eq "/robots.txt"} {
            dict set r content-type text/plain
            set r [Http Ok $r {User-agent: *
                Disallow: /go/}]
        } else {
            set q ?[dict get? $r -query]
            if {$q eq "?"} {set q {}}
            set r [Http Moved $r [dict get $r -scheme]://openstreetbugs.schokokeks.org[dict get $r -path]$q]
        }
        dict get $r -content
    }
}

//osmbugs.org/go/ {
    domain {OSBTiny ::osb2}
}

/oauth/ {
    domain {OAuth ::oa}
    providers {
        osm4namegen {
            requesturi http://www.openstreetmap.org/oauth/request_token 
            authorizeuri http://www.openstreetmap.org/oauth/authorize 
            accessuri http://www.openstreetmap.org/oauth/access_token 
            callback http://namegen.org/oauth/ 
            signmethod HMAC-SHA1 
            reqmethod POST 
            key <censored, sorry>
            secret <censored, sorry>
            authtype entity
        }
        google4namegen {
            requesturi https://www.google.com/accounts/OAuthGetRequestToken
            authorizeuri https://www.google.com/accounts/OAuthAuthorizeToken
            accessuri https://www.google.com/accounts/OAuthGetAccessToken
            key namegen.org 
            secret <censored, sorry>
        }
        osm {
            requesturi http://www.openstreetmap.org/oauth/request_token
            authorizeuri http://www.openstreetmap.org/oauth/authorize 
            accessuri http://www.openstreetmap.org/oauth/access_token 
            callback http://go.latlon.org/oauth/ 
            signmethod HMAC-SHA1 
            reqmethod POST 
            key <censored, sorry>
            secret <censored, sorry>
            authtype entity
        } 
        test {
            signmethod HMAC-SHA1 
            key <censored, sorry>
            secret <censored, sorry>
        }} lambda {
            dict set r set-cookie "token=[dict get? $result oauth_token]&secret=[dict get? $result oauth_token_secret]; domain=[dict get $r -host]; path=/"
            set r [Http Redirect $r $referer "token=[dict get? $result oauth_token], secret=[dict get? $result oauth_token_secret], <$r>"]
            puts <$r>
        }
}

//www.namegen.org/* {
    code{set r [Http Moved $r [dict get $r -scheme]://namegen.org[dict get $r -path]]; dict get $r -content}
}

//namegen.org/ {
    domain {Mason ::namegen}
    root /home/www/namegen/public_html
    stream 1024
}
//namegen.org/test/ {
    domain {Namegen namegen2}
}

//namegen.org/test2/ {
    domain {ExtLogin extlogin}
    providers {OpenStreetMap {oauth ::oa oauth_mount /oauth/ oauth_provider osm4namegen} LastFM {api_key <censored> secret <censored>}}
}

//cafemap.info/ {
    domain{File cafemap-static}
    root /home/www/cafemap/public_html
    stream 1024
}

//www.cafemap.info/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
    }
}

//xn--cafmap-dva.info/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
    }
}

//www.xn--cafmap-dva.info/* {
    code {
        set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
    }
}

//shadoura.com/ {
    domain {Mason sha}
    root /home/andrew/public_html
    stream 1024
    sortparam {sortList [[0,0]]}
    auth .auth
    wrapper .wrapper
}

#package require tiles

/tiles/ {
    domain Direct
    namespace tiles
    wildcard *
}

#package require bdt

//static.beldisplaytech.com/ {
    domain {File bdt}
    root /home/www/www.beldisplaytech.com/public_html/
    stream 1024
}

//statiq.beldisplaytech.com/ {
    domain {File bdtq}
    root /home/www/www.beldisplaytech.com/public_html/
    stream 1024
}

//www.beldisplaytech.com/ {
    domain Direct
    namespace bdt
    wildcard *
    ctype {text/html; charset=utf-8}
}

/ {
    domain {File varwww}
    root /var/www
    stream 1024
}

# The /jquery/ domain is handled by the jQ package
domain /jquery/ JQ

# Useful static content directories
# The following File domains, handled by the File package, are all named for their respective
# content.  So the /css/ domain is handled by an object constructed as [File create css ...] with
# constructor args as specified.
/icons/ {
    domain Icons
}

icorewrite {
    url {^/[^/]+[.](jpg|gif|png|ico)$}
    rewrite {/images/[file tail [dict get $r -path]]}
}