Daily summary csv: https://www.ncdc.noaa.gov/cdo-web/datasets/GHCND/stations/GHCND:USW00024233/detail
csvtool col 3,5 seatac-20240713.csv |
while read line; do
if ! grep -E ',[189]..?$' <<< $line; then
echo null
fi
Year | 80 | 90 | 100 | |
---|---|---|---|---|
1938 | 65 | 11 | 2 | |
1939 | 60 | 17 | 2 | |
1940 | 64 | 12 | 0 | |
1941 | 42 | 11 | 5 | |
1942 | 44 | 15 | 3 | |
1943 | 51 | 8 | 0 | |
1944 | 52 | 13 | 2 | |
1945 | 59 | 12 | 1 | |
1946 | 45 | 9 | 1 |
Daily summary csv: https://www.ncdc.noaa.gov/cdo-web/datasets/GHCND/stations/GHCND:USW00024233/detail
csvtool col 3,5 seatac-20240713.csv |
while read line; do
if ! grep -E ',[189]..?$' <<< $line; then
echo null
fi
#!/bin/bash | |
# pip install pysparklines | |
cols=$(tput cols) | |
d0=$(date -Is -d '-1 day') | |
d1=$(date -Is) | |
clear | |
echo -e "\n@elonmusk combined twitter activity (likes+tweets) every 5min\n" |
Input file:
$ tail stats.dat
60316
60316
60316
60316
60316
60316
60318
#!/bin/bash | |
# grab the stats from a twitter user | |
# requires account, 2 parameters from header | |
# output: | |
# 20240704-110910 tweets: 46561 friends: 650 followers: 188667122 likes: 58781 | |
x_csrf_token='' | |
auth_token='' | |
#### |
#!/bin/bash | |
# Create KOIN webcam montage via new Youtube sources | |
# * Requires Youtube API key | |
# livestream url: https://youtube.com/@KOINLOCAL6/streams | |
# channelId: UCXN7rPhZK6Rp8lMhvpSri_Q | |
# image url: https://i.ytimg.com/vi/wb5uv4SYHe0/maxresdefault.jpg | |
# old: https://media.psg.nexstardigital.net/koin/weather/cameras/Vancouver-Waterfront.jpg | |
# filter: grep -Ev 'Kalama|Evergreen' | |
key="" |
old web | new web | tweetdeck preview | android | real account | cookie |
---|
#!/bin/bash | |
# ./tweet_by_id 1803601168763068837 (or full URL) | |
# -r option for json dump | |
input=$1 | |
pretty=(jq -r '.data.tweetResult.result | "[\(.legacy.created_at | strptime("%a %b %d %H:%M:%S +0000 %Y") | mktime - (now | gmtime | mktime - (now | trunc)) | strflocaltime("%a %d %b %T %Z %Y"))] @\(.core.user_results.result.legacy.screen_name) (\(.core.user_results.result.legacy.name))\(if(.core.user_results.result.legacy.verified_type == "Business") then "【𝗚】: " elif(.core.user_results.result.is_blue_verified == true) then "【𝗕】: " else ": " end)\(.legacy.full_text | gsub(" ";" ")) | ↳ \(.legacy.reply_count | tostring | [while(length>0; .[:-3]) | .[-3:]] | reverse | join(",")) ⇅ \(.legacy.retweet_count | tostring | [while(length>0; .[:-3]) | .[-3:]] | reverse | join(",")) ♥ \(.legacy.favorite_count | tostring | [while(length>0; .[:-3]) | .[-3:]] | reverse| join(",")) 🡕 \(if(.views.count) then "\(.views.count | tostring | [while(length>0; .[:-3]) | .[-3:]] | reverse | join(","))" else "" end) | \(.source | gsub |
#!/bin/bash | |
# 2024-06-15 - Old Twitter api endpoints are up again. | |
# 2024-06-18 - Old Twitter api with guest token access are open (no account needed) | |
user=$1 | |
if [ -z $user ]; then echo "$0 username"; exit; fi | |
count=5 |