Mercurial > hg > egg-tcls
comparison fetch_feeds.tcl @ 660:ab2ba0b82407
fetch_feeds: Use the common HTTP helpers.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 19 Feb 2021 21:06:04 +0200 |
parents | f46c152183a2 |
children | 721c8cef5039 |
comparison
equal
deleted
inserted
replaced
659:eddf0ff17fbd | 660:ab2ba0b82407 |
---|---|
38 return $uencoding | 38 return $uencoding |
39 } | 39 } |
40 | 40 |
41 | 41 |
42 proc fetch_dorequest { urlStr urlStatus urlSCode urlCode urlData urlMeta } { | 42 proc fetch_dorequest { urlStr urlStatus urlSCode urlCode urlData urlMeta } { |
43 | |
43 upvar $urlStatus ustatus | 44 upvar $urlStatus ustatus |
44 upvar $urlSCode uscode | 45 upvar $urlSCode uscode |
45 upvar $urlCode ucode | 46 upvar $urlCode ucode |
46 upvar $urlData udata | 47 upvar $urlData udata |
47 upvar $urlMeta umeta | 48 upvar $urlMeta umeta |
48 | 49 |
49 set urlHeaders {} | 50 set urlHeaders {} |
50 lappend urlHeaders "Accept-Encoding" "identity" | 51 lappend urlHeaders "Accept-Encoding" "identity" |
51 #lappend urlHeaders "Connection" "keep-alive" | 52 #lappend urlHeaders "Connection" "keep-alive" |
52 | 53 |
53 ### Perform request | 54 set uresult [utl_http_do_request $urlHeaders $urlStr ustatus uscode ucode udata umeta] |
54 if {[catch {set utoken [::http::geturl $urlStr -timeout 6000 -binary 1 -headers $urlHeaders]} uerrmsg]} { | 55 if {$uresult == -1} { |
55 puts "HTTP request failed: $uerrmsg" | 56 puts "HTTP request failed: $uscode ($urlStr)" |
56 return 0 | 57 return 0 |
57 } | 58 } elseif {$uresult < 0} { |
58 | 59 urllog_log "Error in HTTP request: $ustatus / $uscode ($urlStr)" |
59 ### Check status | 60 return 0 |
60 set ustatus [::http::status $utoken] | |
61 set uscode [::http::code $utoken] | |
62 set ucode [::http::ncode $utoken] | |
63 | |
64 if {$ustatus != "ok"} { | |
65 puts "Error in HTTP request: $ustatus / $uscode ($urlStr)" | |
66 return 0 | |
67 } | |
68 | |
69 ### Get data | |
70 set udata [::http::data $utoken] | |
71 array set umeta [::http::meta $utoken] | |
72 ::http::cleanup $utoken | |
73 | |
74 ### Sanitize the metadata KEYS | |
75 foreach {ukey uvalue} [array get umeta] { | |
76 set ukey [string tolower $ukey] | |
77 set umeta($ukey) $uvalue | |
78 } | 61 } |
79 | 62 |
80 ### Perform encoding conversion if necessary | 63 ### Perform encoding conversion if necessary |
81 if {$ucode >= 200 && $ucode <= 205} { | 64 if {$ucode >= 200 && $ucode <= 205} { |
82 set uenc_doc "" | 65 set uenc_doc "" |