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 ""