public async Task <Result> SendMediaAsync(IBotMediaFile mediaFile, string text, SenderInfo sender)
    {
        if (mediaFile is IBotOnlineFile onlineFile)
        {
            return(await SendOnlineMediaAsync(onlineFile, text, sender));
        }

        Result result = CheckText(text);

        if (result.IsFailed)
        {
            return(result);
        }

        try
        {
            await _client.GetGuild((ulong)sender.ChatId)
            .GetTextChannel((ulong)sender.UserSenderId)
            .SendFileAsync(mediaFile.Path, text);

            return(Result.Ok());
        }
        catch (Exception e)
        {
            const string message = "Error while sending message";
            LoggerHolder.Instance.Error(e, message);
            return(Result.Fail(e));
        }
    }
 private IAlbumInputMedia ConstructAlbumInputMedia(IBotMediaFile mediaFile, string caption, List <FileStream> streams)
 {
     if (mediaFile is IBotOnlineFile onlineFile)
     {
         return(mediaFile.MediaType switch
         {
             MediaTypeEnum.Photo => new InputMediaPhoto(onlineFile.Id)
             {
                 Caption = caption
             },
             MediaTypeEnum.Video => new InputMediaVideo(onlineFile.Id)
             {
                 Caption = caption
             }
         });
Beispiel #3
0
 public BotSingleMediaMessage(string text, IBotMediaFile mediaFile)
 {
     Text      = text;
     MediaFile = mediaFile;
 }
Beispiel #4
0
 public static string GetFileExtension(this IBotMediaFile mediaFile)
 {
     return(mediaFile.Path.Split(Path.DirectorySeparatorChar).Last());
 }
Beispiel #5
0
 public Task <Result> SendMediaAsync(IBotMediaFile mediaFile, string text, SenderInfo sender) => throw new NotImplementedException();