added edit_message_media request

This commit is contained in:
Pavel 2024-09-12 14:33:26 +03:00
parent aaa19c0cea
commit 94d7926fd7
2 changed files with 54 additions and 3 deletions

@ -1,6 +1,7 @@
module client
import net.http
import json
pub struct DepsLoadSendVideo {
pub mut:
@ -40,7 +41,7 @@ pub fn load_and_send_video(deps DepsLoadSendVideo) ! {
return error('Failed to send multipart form request: $err')
}
if response_tg.status_code != 200 {
return error('Failed to get valid response: $response_tg.status_code')
return error('Failed to get valid response: $response_tg.status_code, body: $response_tg.status_msg')
}
}
@ -82,6 +83,56 @@ pub fn load_and_send_photo(deps DepsLoadSendPhoto) ! {
return error('Failed to send multipart form request: $err')
}
if response_tg.status_code != 200 {
return error('Failed to get valid response: $response_tg.status_code')
return error('Failed to get valid response: $response_tg.status_code, body: $response_tg.status_msg')
}
}
pub struct DepsEditMessageMedia {
pub mut:
media_url string
bot_token string
caption string
chat_id string
message_id string
reply_markup string
}
pub fn edit_message_media(deps DepsEditMessageMedia) ! {
response_s3 := http.get(deps.media_url) or { return error('Failed to load media: $err') }
if response_s3.status_code != 200 {
return error('Failed to load media, status code: $response_s3.status_code')
}
mut files := map[string][]http.FileData{}
file_to_upload := http.FileData{
filename: '${deps.media_url.split('/').last()}.png'
content_type: 'application/octet-stream'
data: response_s3.body
}
files['media'] = [file_to_upload]
media := json.encode({
'type': 'photo',
'media': 'attach://media',
'caption': deps.caption
})
conf := http.PostMultipartFormConfig{
form: {
'chat_id': deps.chat_id
'message_id': deps.message_id
'media': media
'reply_markup': deps.reply_markup
}
files: files
}
response_tg := http.post_multipart_form('https://api.telegram.org/bot${deps.bot_token}/editMessageMedia', conf) or {
return error('Failed to send multipart form request: $err')
}
if response_tg.status_code != 200 {
return error('Failed to get valid response: $response_tg.status_code, body: $response_tg.status_msg')
}
}

BIN
main.exe Normal file

Binary file not shown.