util: simplify sendObject calls

pull/477/head
Demian 3 years ago
parent fdbd536401
commit 1c916042ee

@ -167,19 +167,20 @@ func (b *Bot) sendText(to Recipient, text string, opt *SendOptions) (*Message, e
return extractMessage(data)
}
func (b *Bot) sendObject(f *File, what string, params map[string]string, files map[string]File) (*Message, error) {
sendWhat := "send" + strings.Title(what)
func (b *Bot) sendMedia(media Media, params map[string]string, files map[string]File) (*Message, error) {
kind := media.MediaType()
what := "send" + strings.Title(kind)
if what == "videoNote" {
what = "video_note"
if kind == "videoNote" {
kind = "video_note"
}
sendFiles := map[string]File{what: *f}
sendFiles := map[string]File{kind: *media.MediaFile()}
for k, v := range files {
sendFiles[k] = v
}
data, err := b.sendFiles(sendWhat, sendFiles, params)
data, err := b.sendFiles(what, sendFiles, params)
if err != nil {
return nil, err
}

@ -254,7 +254,7 @@ type VideoNote struct {
}
func (v *VideoNote) MediaType() string {
return "video_note"
return "videoNote"
}
func (v *VideoNote) MediaFile() *File {

@ -32,7 +32,7 @@ func (p *Photo) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
}
b.embedSendOptions(params, opt)
msg, err := b.sendObject(&p.File, "photo", params, nil)
msg, err := b.sendMedia(p, params, nil)
if err != nil {
return nil, err
}
@ -59,7 +59,7 @@ func (a *Audio) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
params["duration"] = strconv.Itoa(a.Duration)
}
msg, err := b.sendObject(&a.File, "audio", params, thumbnailToFilemap(a.Thumbnail))
msg, err := b.sendMedia(a, params, thumbnailToFilemap(a.Thumbnail))
if err != nil {
return nil, err
}
@ -91,7 +91,7 @@ func (d *Document) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error
params["file_size"] = strconv.Itoa(d.FileSize)
}
msg, err := b.sendObject(&d.File, "document", params, thumbnailToFilemap(d.Thumbnail))
msg, err := b.sendMedia(d, params, thumbnailToFilemap(d.Thumbnail))
if err != nil {
return nil, err
}
@ -110,7 +110,7 @@ func (s *Sticker) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error)
}
b.embedSendOptions(params, opt)
msg, err := b.sendObject(&s.File, "sticker", params, nil)
msg, err := b.sendMedia(s, params, nil)
if err != nil {
return nil, err
}
@ -143,7 +143,7 @@ func (v *Video) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
params["supports_streaming"] = "true"
}
msg, err := b.sendObject(&v.File, "video", params, thumbnailToFilemap(v.Thumbnail))
msg, err := b.sendMedia(v, params, thumbnailToFilemap(v.Thumbnail))
if err != nil {
return nil, err
}
@ -188,7 +188,7 @@ func (a *Animation) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, erro
params["file_name"] = filepath.Base(a.File.FileLocal)
}
msg, err := b.sendObject(&a.File, "animation", params, thumbnailToFilemap(a.Thumbnail))
msg, err := b.sendMedia(a, params, thumbnailToFilemap(a.Thumbnail))
if err != nil {
return nil, err
}
@ -221,7 +221,7 @@ func (v *Voice) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
params["duration"] = strconv.Itoa(v.Duration)
}
msg, err := b.sendObject(&v.File, "voice", params, nil)
msg, err := b.sendMedia(v, params, nil)
if err != nil {
return nil, err
}
@ -246,7 +246,7 @@ func (v *VideoNote) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, erro
params["length"] = strconv.Itoa(v.Length)
}
msg, err := b.sendObject(&v.File, "videoNote", params, thumbnailToFilemap(v.Thumbnail))
msg, err := b.sendMedia(v, params, thumbnailToFilemap(v.Thumbnail))
if err != nil {
return nil, err
}

Loading…
Cancel
Save