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

  1. code default {set r [Http NotFound $r]; <p> "[dict get $r -uri] Not Found"}
  2.  
  3. # The following nubs are redirects, they generate a redirect from the first to the second URL
  4. /favico.ico {
  5. redirect /images/favico.ico ;# find the icon in /images
  6. }
  7.  
  8. //mail.beldisplaytech.com/* {
  9. code {
  10. set r [Http Moved $r https://[dict get $r -host][dict get $r -path]]; dict get $r -content
  11. }
  12. }
  13.  
  14. //beldisplaytech.com/* {
  15. code {
  16. set r [Http Moved $r [dict get $r -scheme]://www.[dict get $r -host][dict get $r -path]]; dict get $r -content
  17. }
  18. }
  19.  
  20. //www.shadoura.com/* {
  21. code {
  22. set r [Http Moved $r [dict get $r -scheme]://shadoura.com[dict get $r -path]]; dict get $r -content
  23. }
  24. }
  25.  
  26. //BELDISPLAYTECH.com/* {
  27. code {
  28. set r [Http Moved $r [dict get $r -scheme]://www.beldisplaytech.com[dict get $r -path]]; dict get $r -content
  29. }
  30. }
  31.  
  32. //wms.shadoura.com/* {
  33. code {
  34. if {[string match 192.168.11.* [dict get? $r x-forwarded-for]] || [string match *bsuir.by* [dict get? $r via]]} {
  35. set w 192.168.11.29
  36. } else {
  37. set w [dict get $r -host]
  38. }
  39. set r [Http Moved $r "[dict get $r -scheme]://$w:8040[dict get $r -path]?ref=http://wms.shadoura.com/&[dict get? $r -query]"]
  40. dict get $r -content
  41. }
  42. }
  43.  
  44. //go.latlon.org/tc/* {
  45. code {
  46. set r [Http Moved $r [dict get $r -scheme]://latlon.org/tc/]; dict get $r -content
  47. }
  48. }
  49.  
  50. //go.latlon.org/tt/index.html {
  51. code {
  52. set r [Http Moved $r [dict get $r -scheme]://go.latlon.org/tt/index-beta.html]; dict get $r -content
  53. }
  54. }
  55.  
  56. //go.latlon.org/ {
  57. domain {File latlon}
  58. root /home/www/latlon/public_html
  59. stream 1024
  60. }
  61.  
  62. //go.latlon.org/logs/ {
  63. domain {Mason logs2}
  64. root /home/andrew/logs
  65. stream 1024
  66. sortparam {sortList [[2,1]]}
  67. dateformat %Y-%m-%d
  68. }
  69.  
  70. #package require OSMAPI
  71. #package require OAuth
  72. #package require OSBTiny
  73. //go.latlon.org/api/ {
  74. domain {OSMAPI ::osmapi}
  75. apiurl http://api.openstreetmap.org/api/
  76. }
  77.  
  78. //go.latlon.org/wms/ {
  79. domain {OSMAPI ::wms}
  80. apiurl http://192.168.11.29:8040/
  81. }
  82.  
  83. //go.latlon.org/xapi/ {
  84. domain {OSMAPI ::osmxapi}
  85. apiurl http://xapi.openstreetmap.org/api/
  86. }
  87.  
  88. //go.latlon.org/bugs/ {
  89. domain {OSBTiny ::osb}
  90. }
  91.  
  92. //www.osmbugs.org/* {
  93. code {
  94. set q ?[dict get? $r -query]
  95. if {$q eq "?"} {set q {}}
  96. set r [Http Moved $r [dict get $r -scheme]://osmbugs.org[dict get $r -path]$q]
  97. dict get $r -content
  98. }
  99. }
  100.  
  101. //osmbugs.org/* {
  102. code {
  103. if {[dict get $r -path] eq "/robots.txt"} {
  104. dict set r content-type text/plain
  105. set r [Http Ok $r {User-agent: *
  106. Disallow: /go/}]
  107. } else {
  108. set q ?[dict get? $r -query]
  109. if {$q eq "?"} {set q {}}
  110. set r [Http Moved $r [dict get $r -scheme]://openstreetbugs.schokokeks.org[dict get $r -path]$q]
  111. }
  112. dict get $r -content
  113. }
  114. }
  115.  
  116. //osmbugs.org/go/ {
  117. domain {OSBTiny ::osb2}
  118. }
  119.  
  120. /oauth/ {
  121. domain {OAuth ::oa}
  122. providers {
  123. osm4namegen {
  124. requesturi http://www.openstreetmap.org/oauth/request_token
  125. authorizeuri http://www.openstreetmap.org/oauth/authorize
  126. accessuri http://www.openstreetmap.org/oauth/access_token
  127. callback http://namegen.org/oauth/
  128. signmethod HMAC-SHA1
  129. reqmethod POST
  130. key <censored, sorry>
  131. secret <censored, sorry>
  132. authtype entity
  133. }
  134. google4namegen {
  135. requesturi https://www.google.com/accounts/OAuthGetRequestToken
  136. authorizeuri https://www.google.com/accounts/OAuthAuthorizeToken
  137. accessuri https://www.google.com/accounts/OAuthGetAccessToken
  138. key namegen.org
  139. secret <censored, sorry>
  140. }
  141. osm {
  142. requesturi http://www.openstreetmap.org/oauth/request_token
  143. authorizeuri http://www.openstreetmap.org/oauth/authorize
  144. accessuri http://www.openstreetmap.org/oauth/access_token
  145. callback http://go.latlon.org/oauth/
  146. signmethod HMAC-SHA1
  147. reqmethod POST
  148. key <censored, sorry>
  149. secret <censored, sorry>
  150. authtype entity
  151. }
  152. test {
  153. signmethod HMAC-SHA1
  154. key <censored, sorry>
  155. secret <censored, sorry>
  156. }} lambda {
  157. dict set r set-cookie "token=[dict get? $result oauth_token]&secret=[dict get? $result oauth_token_secret]; domain=[dict get $r -host]; path=/"
  158. set r [Http Redirect $r $referer "token=[dict get? $result oauth_token], secret=[dict get? $result oauth_token_secret], <$r>"]
  159. puts <$r>
  160. }
  161. }
  162.  
  163. //www.namegen.org/* {
  164. code{set r [Http Moved $r [dict get $r -scheme]://namegen.org[dict get $r -path]]; dict get $r -content}
  165. }
  166.  
  167. //namegen.org/ {
  168. domain {Mason ::namegen}
  169. root /home/www/namegen/public_html
  170. stream 1024
  171. }
  172. //namegen.org/test/ {
  173. domain {Namegen namegen2}
  174. }
  175.  
  176. //namegen.org/test2/ {
  177. domain {ExtLogin extlogin}
  178. providers {OpenStreetMap {oauth ::oa oauth_mount /oauth/ oauth_provider osm4namegen} LastFM {api_key <censored> secret <censored>}}
  179. }
  180.  
  181. //cafemap.info/ {
  182. domain{File cafemap-static}
  183. root /home/www/cafemap/public_html
  184. stream 1024
  185. }
  186.  
  187. //www.cafemap.info/* {
  188. code {
  189. set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
  190. }
  191. }
  192.  
  193. //xn--cafmap-dva.info/* {
  194. code {
  195. set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
  196. }
  197. }
  198.  
  199. //www.xn--cafmap-dva.info/* {
  200. code {
  201. set r [Http Moved $r [dict get $r -scheme]://cafemap.info[dict get $r -path]]; dict get $r -content
  202. }
  203. }
  204.  
  205. //shadoura.com/ {
  206. domain {Mason sha}
  207. root /home/andrew/public_html
  208. stream 1024
  209. sortparam {sortList [[0,0]]}
  210. auth .auth
  211. wrapper .wrapper
  212. }
  213.  
  214. #package require tiles
  215.  
  216. /tiles/ {
  217. domain Direct
  218. namespace tiles
  219. wildcard *
  220. }
  221.  
  222. #package require bdt
  223.  
  224. //static.beldisplaytech.com/ {
  225. domain {File bdt}
  226. root /home/www/www.beldisplaytech.com/public_html/
  227. stream 1024
  228. }
  229.  
  230. //statiq.beldisplaytech.com/ {
  231. domain {File bdtq}
  232. root /home/www/www.beldisplaytech.com/public_html/
  233. stream 1024
  234. }
  235.  
  236. //www.beldisplaytech.com/ {
  237. domain Direct
  238. namespace bdt
  239. wildcard *
  240. ctype {text/html; charset=utf-8}
  241. }
  242.  
  243. / {
  244. domain {File varwww}
  245. root /var/www
  246. stream 1024
  247. }
  248.  
  249. # The /jquery/ domain is handled by the jQ package
  250. domain /jquery/ JQ
  251.  
  252. # Useful static content directories
  253. # The following File domains, handled by the File package, are all named for their respective
  254. # content. So the /css/ domain is handled by an object constructed as [File create css ...] with
  255. # constructor args as specified.
  256. /icons/ {
  257. domain Icons
  258. }
  259.  
  260. icorewrite {
  261. url {^/[^/]+[.](jpg|gif|png|ico)$}
  262. rewrite {/images/[file tail [dict get $r -path]]}
  263. }