# Copyright (C) 2024-2026 Maria Lisina
# Copyright (C) 2024-2026 Danil Lisin
# SPDX-License-Identifier: Apache-2.0
if [[ -n "${1}" ]]
then
ib_post_md5="${1}"
shift
else
output_text="You must specify MD5 hash"
return
fi
if ! [[ ${#ib_post_md5} -eq 32 ]]
then
output_text="Invalid MD5 hash"
return
fi
ib_post="${cache}/${update_id}_id.txt"
ib_sample="${cache}/${update_id}_sample.txt"
for lock in "${ib_post}" "${ib_sample}"
do
until mkdir "${lock%.*}.lock"
do
sleep 1
done
done
for ib_board in ${board_table[@]}
do
source "${units}/ib_config.zsh"
source "${units}/ib_hash.zsh" &
wait
if ! [[ -f "${ib_post}" ]]
then
continue
fi
ib_id="$(< "${ib_post}")"
keyboard_text1="${ib_name}"
keyboard_query1="post ${ib_board} ${ib_id}"
reply_markup="$(
jq --compact-output \
--argjson offset "$(printf "%u" "${keyboard_offset}")" \
--arg text1 "${keyboard_text1}" \
--arg query1 "${keyboard_query1}" \
'.inline_keyboard[$offset] += [{"text": $text1, "switch_inline_query_current_chat": $query1}]' \
<<< "${reply_markup:-"{}"}"
)"
keyboard_offset=$((keyboard_offset + 0.5))
done
if [[ -f "${ib_sample}" ]]
then
output_text="$(printf "MD5: %s" "${ib_post_md5}")"
link_preview_options="$(
jq --null-input --compact-output \
--arg url "$(< "${ib_sample}")" \
'{"url": $url, "prefer_small_media": true, "show_above_text": true}'
)"
else
output_text="No results found"
fi
for lock in "${ib_post}" "${ib_sample}"
do
rmdir "${lock%.*}.lock"
done