# Ensure the http package is available
package require http
package require tls
package require json
package require Tcl 8.6
bind pub - "!nitterstatus" nitterStatus
proc nitterStatus {nick host handle chan text} {
# URL from where to fetch the JSON data
set url "https://nitter.vloup.ch/.health"
# Performing the HTTP GET request
set data [exec curl -sS $url]
#set data [http::data $response]
#http::cleanup $response
# Assuming the response data is stored in `data` variable and is the JSON string
set jsonData [json::json2dict $data]
# Continue as before
set total [dict get $jsonData accounts total]
set limited [dict get $jsonData accounts limited]
set oldest [dict get $jsonData accounts oldest]
set average [dict get $jsonData accounts average]
set newest [dict get $jsonData accounts newest]
# Function to convert date-time from local to UTC
proc convertToUTC {dateTime} {
set utcTime [clock scan $dateTime -format "%Y-%m-%dT%H:%M:%S%z"]
set utcTime [clock format $utcTime -format "%Y-%m-%dT%H:%M:%SZ" -gmt 1]
return $utcTime
}
# Converting dates to UTC
set oldestUTC [convertToUTC $oldest]
set averageUTC [convertToUTC $average]
set newestUTC [convertToUTC $newest]
# Creating the desired output string
putserv "PRIVMSG $chan :\[AT/nitter/status\] accounts remaining: $total, limited accounts $limited, oldest: $oldestUTC, average: $averageUTC, newest: $newestUTC"
}