Tcl Source Code

Hex Artifact Content
Login

Artifact 6f4f35cea9a2444b1148ff9bbfcbf302f4199f30a2dd0f0ec20a608df995378e:

Attachment "buienradar.tcl" to ticket [338d979f5b] added by sbron 2020-07-24 20:07:39. (unpublished)
0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 74 63 6c 73 68  #!/usr/bin/tclsh
0010: 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72  ..package requir
0020: 65 20 68 74 74 70 0a 70 61 63 6b 61 67 65 20 72  e http.package r
0030: 65 71 75 69 72 65 20 74 6c 73 0a 0a 68 74 74 70  equire tls..http
0040: 3a 3a 72 65 67 69 73 74 65 72 20 68 74 74 70 73  ::register https
0050: 20 34 34 33 20 74 6c 73 3a 3a 73 6f 63 6b 65 74   443 tls::socket
0060: 0a 0a 73 65 74 20 75 72 6c 20 68 74 74 70 73 3a  ..set url https:
0070: 2f 2f 69 6d 61 67 65 2e 62 75 69 65 6e 72 61 64  //image.buienrad
0080: 61 72 2e 6e 6c 2f 32 2e 30 2f 69 6d 61 67 65 2f  ar.nl/2.0/image/
0090: 73 70 72 69 74 65 2f 52 61 64 61 72 4d 61 70 52  sprite/RadarMapR
00a0: 61 69 6e 4e 4c 0a 0a 73 65 74 20 74 6f 6b 20 5b  ainNL..set tok [
00b0: 68 74 74 70 3a 3a 67 65 74 75 72 6c 20 24 75 72  http::geturl $ur
00c0: 6c 5d 0a 73 65 74 20 63 6f 64 65 20 5b 68 74 74  l].set code [htt
00d0: 70 3a 3a 6e 63 6f 64 65 20 24 74 6f 6b 5d 0a 69  p::ncode $tok].i
00e0: 66 20 7b 24 63 6f 64 65 20 69 6e 20 7b 33 30 31  f {$code in {301
00f0: 20 33 30 32 7d 7d 20 7b 0a 20 20 20 20 73 65 74   302}} {.    set
0100: 20 73 74 72 20 5b 6c 73 65 61 72 63 68 20 2d 6e   str [lsearch -n
0110: 6f 63 61 73 65 20 2d 65 78 61 63 74 20 2d 69 6e  ocase -exact -in
0120: 6c 69 6e 65 20 5b 68 74 74 70 3a 3a 6d 65 74 61  line [http::meta
0130: 20 24 74 6f 6b 5d 20 6c 6f 63 61 74 69 6f 6e 5d   $tok] location]
0140: 0a 20 20 20 20 73 65 74 20 6c 6f 63 20 5b 64 69  .    set loc [di
0150: 63 74 20 67 65 74 20 5b 68 74 74 70 3a 3a 6d 65  ct get [http::me
0160: 74 61 20 24 74 6f 6b 5d 20 24 73 74 72 5d 0a 20  ta $tok] $str]. 
0170: 20 20 20 68 74 74 70 3a 3a 63 6c 65 61 6e 75 70     http::cleanup
0180: 20 24 74 6f 6b 0a 20 20 20 20 73 65 74 20 74 6f   $tok.    set to
0190: 6b 20 5b 68 74 74 70 3a 3a 67 65 74 75 72 6c 20  k [http::geturl 
01a0: 24 6c 6f 63 5d 0a 20 20 20 20 73 65 74 20 63 6f  $loc].    set co
01b0: 64 65 20 5b 68 74 74 70 3a 3a 6e 63 6f 64 65 20  de [http::ncode 
01c0: 24 74 6f 6b 5d 0a 7d 0a 64 69 63 74 20 66 6f 72  $tok].}.dict for
01d0: 20 7b 6b 65 79 20 76 61 6c 7d 20 5b 68 74 74 70   {key val} [http
01e0: 3a 3a 6d 65 74 61 20 24 74 6f 6b 5d 20 7b 0a 20  ::meta $tok] {. 
01f0: 20 20 20 70 75 74 73 20 22 24 6b 65 79 20 24 76     puts "$key $v
0200: 61 6c 22 0a 7d 0a 73 65 74 20 66 20 5b 6f 70 65  al".}.set f [ope
0210: 6e 20 2f 74 6d 70 2f 62 75 69 65 6e 72 61 64 61  n /tmp/buienrada
0220: 72 2e 70 6e 67 20 77 62 5d 0a 70 75 74 73 20 2d  r.png wb].puts -
0230: 6e 6f 6e 65 77 6c 69 6e 65 20 24 66 20 5b 68 74  nonewline $f [ht
0240: 74 70 3a 3a 64 61 74 61 20 24 74 6f 6b 5d 0a 68  tp::data $tok].h
0250: 74 74 70 3a 3a 63 6c 65 61 6e 75 70 20 24 74 6f  ttp::cleanup $to
0260: 6b 0a                                            k.