Send latest response from ChatGPT after every second
This is faster than waiting one second and then sending the _next_ response from ChatGPT.
This commit is contained in:
parent
d8e8d5ab8c
commit
094815fd2f
|
@ -23,12 +23,19 @@ TELEGRAM_CHAT_ID="$1"
|
||||||
|
|
||||||
mid=
|
mid=
|
||||||
retry_after=
|
retry_after=
|
||||||
|
last_update=$(date +%s)
|
||||||
|
last_line=
|
||||||
while read -r line
|
while read -r line
|
||||||
do
|
do
|
||||||
|
last_line="$line"
|
||||||
if [ -z $mid ]; then
|
if [ -z $mid ]; then
|
||||||
R=$(curl --silent "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage?disable_web_page_preview=true&chat_id=$TELEGRAM_CHAT_ID" --data-urlencode "text=$line")
|
R=$(curl --silent "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage?disable_web_page_preview=true&chat_id=$TELEGRAM_CHAT_ID" --data-urlencode "text=$line")
|
||||||
mid=$(echo "$R" | jq -e '.result.message_id')
|
mid=$(echo "$R" | jq -e '.result.message_id')
|
||||||
else
|
else
|
||||||
|
elapsed=$(( $(date +%s) - $last_update ))
|
||||||
|
if [ $(( $elapsed < 1 )) ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
R=$(curl --silent "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/editMessageText?disable_web_page_preview=true&chat_id=$TELEGRAM_CHAT_ID&message_id=$mid" --data-urlencode "text=$line")
|
R=$(curl --silent "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/editMessageText?disable_web_page_preview=true&chat_id=$TELEGRAM_CHAT_ID&message_id=$mid" --data-urlencode "text=$line")
|
||||||
# check for 429 Too Many Requests
|
# check for 429 Too Many Requests
|
||||||
retry_after=$(echo "$R" | jq -e '.parameters.retry_after')
|
retry_after=$(echo "$R" | jq -e '.parameters.retry_after')
|
||||||
|
@ -37,6 +44,10 @@ do
|
||||||
sleep $retry_after
|
sleep $retry_after
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
last_update=$(date +%s)
|
||||||
# https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this
|
# https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this
|
||||||
sleep 1
|
sleep 1
|
||||||
done < "${2:-/dev/stdin}"
|
done < "${2:-/dev/stdin}"
|
||||||
|
|
||||||
|
# final update
|
||||||
|
curl --silent "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/editMessageText?disable_web_page_preview=true&chat_id=$TELEGRAM_CHAT_ID&message_id=$mid" --data-urlencode "text=$last_line"
|
||||||
|
|
Loading…
Reference in New Issue