telegram helper functions TODO: move these to a separate package if they grow too large
(ctx context.Context, client *gotgproto.Client, messageID int)
| 44 | // TODO: move these to a separate package if they grow too large |
| 45 | |
| 46 | func GetTGMessage(ctx context.Context, client *gotgproto.Client, messageID int) (*tg.Message, error) { |
| 47 | inputMessageID := tg.InputMessageClass(&tg.InputMessageID{ID: messageID}) |
| 48 | channel, err := GetLogChannelPeer(ctx, client.API(), client.PeerStorage) |
| 49 | if err != nil { |
| 50 | return nil, err |
| 51 | } |
| 52 | messageRequest := tg.ChannelsGetMessagesRequest{Channel: channel, ID: []tg.InputMessageClass{inputMessageID}} |
| 53 | res, err := client.API().ChannelsGetMessages(ctx, &messageRequest) |
| 54 | if err != nil { |
| 55 | return nil, err |
| 56 | } |
| 57 | messages := res.(*tg.MessagesChannelMessages) |
| 58 | message := messages.Messages[0] |
| 59 | if _, ok := message.(*tg.Message); ok { |
| 60 | return message.(*tg.Message), nil |
| 61 | } else { |
| 62 | return nil, fmt.Errorf("this file was deleted") |
| 63 | } |
| 64 | } |
| 65 | |
| 66 | func FileFromMedia(media tg.MessageMediaClass) (*types.File, error) { |
| 67 | switch media := media.(type) { |
no test coverage detected