1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# Copyright (C) 2024-2026 Maria Lisina
# Copyright (C) 2024-2026 Danil Lisin
# SPDX-License-Identifier: Apache-2.0
ib_created_at="${ib_created_ats[idx]}"
ib_file_size="${ib_file_sizes[idx]}"
ib_file_url="${ib_file_urls[idx]}"
ib_sample_url="${ib_sample_urls[idx]}"
ib_preview_url="${ib_preview_urls[idx]}"
ib_width="${ib_widths[idx]}"
ib_height="${ib_heights[idx]}"
unset ib_date_text ib_resolution_text ib_type_text ib_size_text
source "${units}/ib_date.zsh"
source "${units}/ib_meta.zsh"
if [[ -n "${ib_preview}" ]]
then
case "${ib_type}" in
(gif | video)
ib_sample_url="${ib_preview_url}"
ib_type="photo"
;;
esac
fi
output_text="$(printf "<b>%s</b>\n<b>ID:</b> <code>%s</code>" "${ib_name}" "${ib_id}")"
if [[ -n "${ib_date_text}" ]]
then
output_text="$(printf "%s\n<b>Date:</b> <code>%s</code>" "${output_text}" "${ib_date_text}")"
fi
if [[ -n "${ib_metadata}" ]]
then
if [[ -n "${ib_resolution_text}" ]]
then
output_text="$(printf "%s\n<b>Resolution:</b> %s" "${output_text}" "${ib_resolution_text}")"
fi
if [[ -n "${ib_size_text}" ]]
then
output_text="$(printf "%s\n<b>Size:</b> %s" "${output_text}" "${ib_size_text}")"
fi
if [[ -n "${ib_type_text}" ]]
then
output_text="$(printf "%s\n<b>Type:</b> %s" "${output_text}" "${ib_type_text}")"
fi
fi
keyboard_text1="Post link"
keyboard_url1="${ib_url}$(urlencode <<< "${ib_id}")"
keyboard_text2="Resume"
keyboard_query2="${command} ${ib_board} ${inline_page}"
if [[ -n "${search_query}" ]]
then
keyboard_query2="${keyboard_query2} ${search_query}"
fi
case "${ib_type}" in
(photo)
result="$(
jq --null-input --compact-output \
--arg id "${ib_id}" \
--arg photo_url "${ib_sample_url}" \
--arg thumbnail_url "${ib_preview_url}" \
--arg photo_width "${ib_width}" \
--arg photo_height "${ib_height}" \
--arg caption "${output_text}" \
--arg text1 "${keyboard_text1}" \
--arg url1 "${keyboard_url1}" \
--arg text2 "${keyboard_text2}" \
--arg query2 "${keyboard_query2}" \
'{"type": "photo", "id": $id, "photo_url": $photo_url, "thumbnail_url": $thumbnail_url, "photo_width": $photo_width, "photo_height": $photo_height, "caption": $caption, "parse_mode": "HTML", "reply_markup": {"inline_keyboard": [[{"text": $text1, "url": $url1}, {"text": $text2, "switch_inline_query_current_chat": $query2}]]}}'
)"
;;
(gif)
result="$(
jq --null-input --compact-output \
--arg id "${ib_id}" \
--arg gif_url "${ib_file_url}" \
--arg thumbnail_url "${ib_preview_url}" \
--arg gif_width "${ib_width}" \
--arg gif_height "${ib_height}" \
--arg caption "${output_text}" \
--arg text1 "${keyboard_text1}" \
--arg url1 "${keyboard_url1}" \
--arg text2 "${keyboard_text2}" \
--arg query2 "${keyboard_query2}" \
'{"type": "gif", "id": $id, "gif_url": $gif_url, "thumbnail_url": $thumbnail_url, "gif_width": $gif_width, "gif_height": $gif_height, "caption": $caption, "parse_mode": "HTML", "reply_markup": {"inline_keyboard": [[{"text": $text1, "url": $url1}, {"text": $text2, "switch_inline_query_current_chat": $query2}]]}}'
)"
;;
(video)
result="$(
jq --null-input --compact-output \
--arg id "${ib_id}" \
--arg mpeg4_url "${ib_file_url}" \
--arg thumbnail_url "${ib_preview_url}" \
--arg mpeg4_width "${ib_width}" \
--arg mpeg4_height "${ib_height}" \
--arg caption "${output_text}" \
--arg text1 "${keyboard_text1}" \
--arg url1 "${keyboard_url1}" \
--arg text2 "${keyboard_text2}" \
--arg query2 "${keyboard_query2}" \
'{"type": "mpeg4_gif", "id": $id, "mpeg4_url": $mpeg4_url, "thumbnail_url": $thumbnail_url, "mpeg4_width": $mpeg4_width, "mpeg4_height": $mpeg4_height, "caption": $caption, "parse_mode": "HTML", "reply_markup": {"inline_keyboard": [[{"text": $text1, "url": $url1}, {"text": $text2, "switch_inline_query_current_chat": $query2}]]}}'
)"
;;
esac
if [[ -n "${ib_quick}" ]]
then
keyboard_text1="Original"
keyboard_query1="original ${ib_board} ${ib_id}"
keyboard_text2="Post"
keyboard_query2="post ${ib_board} ${ib_id}"
result="$(
jq --compact-output \
--arg text1 "${keyboard_text1}" \
--arg query1 "${keyboard_query1}" \
--arg text2 "${keyboard_text2}" \
--arg query2 "${keyboard_query2}" \
'.reply_markup.inline_keyboard += [[{"text": $text1, "switch_inline_query_current_chat": $query1}, {"text": $text2, "switch_inline_query_current_chat": $query2}]]' \
<<< "${result}"
)"
fi
if [[ "${cache_mode}" == "advanced" ]]
then
source "${units}/ib_cache.zsh" &
fi
|