public static async Task <Message> SendMessageTextAsync( this TelegramService telegramService, MessageResponseDto messageResponseDto ) { var sendMessageText = await telegramService.SendTextMessageAsync( sendText : messageResponseDto.MessageText, replyMarkup : messageResponseDto.ReplyMarkup, replyToMsgId : messageResponseDto.ReplyToMessageId.ToInt(), disableWebPreview : messageResponseDto.DisableWebPreview ); if (messageResponseDto.ScheduleDeleteAt == default) { return(sendMessageText); } var currentCommand = telegramService.GetCommand(withoutSlash: true); var commandFlag = currentCommand.ToEnum(defaultValue: MessageFlag.General); if (messageResponseDto.IncludeSenderForDelete) { telegramService.SaveSenderMessageToHistory(commandFlag, messageResponseDto.ScheduleDeleteAt); } telegramService.SaveSentMessageToHistory(commandFlag, messageResponseDto.ScheduleDeleteAt); return(sendMessageText); }
public IActionResult SendMessage([FromQuery(Name = "id")] int id, [FromBody] MessageRequestDto message) { if (id == 0) { return(new NotFoundObjectResult("Cannot resolve this url")); } var chatRoom = ChatRoomRepository.GetById(id); if (chatRoom == null) { return(new NotFoundObjectResult($"Cannot find chat room with id {id}")); } var existingUser = chatRoom.Users.FirstOrDefault(x => x.UserName == message.Name); if (existingUser == null) { return(new NotFoundObjectResult($"User with name {message.Name} not found in chat with id = {id}")); } var hubMessage = new MessageResponseDto { Name = existingUser.UserName, Message = message.Message, Time = DateTime.Now }; return(new OkObjectResult(hubMessage)); }
public async Task <MessageResponseDto> Execute(string payload) { var response = new MessageResponseDto(); var chatId = payload.ToInt64().FixChatId(); var rules = await _rulesService.GetRulesAsync(chatId); var latestRule = rules.LastOrDefault(); var ruleText = latestRule?.RuleText; if (latestRule == null) { return(response); } var chat = await _chatService.GetChatAsync(chatId); var chatNameLink = chat.GetChatNameLink(); var lastUpdate = latestRule.UpdatedAt; var ruleTextWithTitle = $"📜 Rules di <b>{chatNameLink}</b>\n" + $"\n{ruleText}" + $"\n\n<b>Diperbarui: </b> {lastUpdate.ToDetailDateTimeString()}"; response.MessageText = ruleTextWithTitle; response.DisableWebPreview = true; response.ReplyToMessageId = 0; return(response); }
public async Task <IActionResult> PostMessage(MessageDto messageDto) { var rabbitMqClient = new RabbitMqClient(); var serializedMessage = JsonConvert.SerializeObject(messageDto); var response = rabbitMqClient.Call(serializedMessage); rabbitMqClient.Close(); MessagePm deserializedResponse; try { deserializedResponse = JsonConvert.DeserializeObject <MessagePm>(response); } catch (Exception e) { return(StatusCode(500, e.Message)); } _messageContext.Messages.Add(deserializedResponse); await _messageContext.SaveChangesAsync(); var messageResponseDto = new MessageResponseDto { Id = deserializedResponse.Id, ExternalId = deserializedResponse.ExternalId, Message = deserializedResponse.Message }; return(Ok(messageResponseDto)); }
public static async Task <RequestResult> SendMediaGroupAsync( this TelegramService telegramService, MessageResponseDto messageResponseDto ) { var requestResult = await telegramService.SendMediaGroupAsync( listAlbum : messageResponseDto.ListAlbum ); if (messageResponseDto.ScheduleDeleteAt == default) { return(requestResult); } var currentCommand = telegramService.GetCommand(withoutSlash: true); var commandFlag = currentCommand.ToEnum(defaultValue: MessageFlag.General); requestResult.SentMessages.ForEach( message => { var messageId = message.MessageId; if (messageResponseDto.IncludeSenderForDelete) { telegramService.SaveMessageToHistoryAsync( messageId: messageId, messageFlag: commandFlag, deleteAt: messageResponseDto.ScheduleDeleteAt ).InBackground(); } telegramService.SaveMessageToHistoryAsync( messageId: messageId, messageFlag: commandFlag, deleteAt: messageResponseDto.ScheduleDeleteAt ).InBackground(); } ); return(requestResult); }
public MessageResponseDto Execute(string payload) { var response = new MessageResponseDto(); var replyMarkup = new InlineKeyboardMarkup ( new[] { new[] { InlineKeyboardButton.WithUrl("Pasang Username", "https://t.me/WinTenDev/29") } } ); var send = "Untuk cara pasang Username, silakan klik tombol di bawah ini"; response.MessageText = send; response.ReplyMarkup = replyMarkup; return(response); }
public static async Task <Message> EditMessageTextAsync( this TelegramService telegramService, MessageResponseDto messageResponseDto ) { var sendMessageText = await telegramService.EditMessageTextAsync( sendText : messageResponseDto.MessageText, replyMarkup : messageResponseDto.ReplyMarkup, disableWebPreview : messageResponseDto.DisableWebPreview ); if (messageResponseDto.ScheduleDeleteAt == default) { return(sendMessageText); } var currentCommand = telegramService.GetCommand(withoutSlash: true); var commandFlag = currentCommand.ToEnum(defaultValue: MessageFlag.General); await telegramService.MessageHistoryService.DeleteMessageHistoryAsync( new MessageHistoryFindDto() { ChatId = sendMessageText.Chat.Id, MessageId = sendMessageText.MessageId } ); if (messageResponseDto.IncludeSenderForDelete) { telegramService.SaveSenderMessageToHistory(commandFlag, messageResponseDto.ScheduleDeleteAt); } telegramService.SaveSentMessageToHistory(commandFlag, messageResponseDto.ScheduleDeleteAt); return(sendMessageText); }
public static async Task <MessageResponseDto> OnStartSubsceneDownloadAsync( this TelegramService telegramService, string subtitleSlug ) { var response = new MessageResponseDto(); var subsceneService = telegramService.GetRequiredService <SubsceneService>(); var fixedSlug = subtitleSlug.Replace("=", "/"); Task.Run( async() => { await telegramService.SendTextMessageAsync("Subtitle sedang diproses, mohon tunggu..."); await telegramService.SendChatActionAsync(ChatAction.UploadDocument); var movieDetail = await subsceneService.GetSubtitleFileAsync(fixedSlug); var subsceneUrl = "https://subscene.com" + movieDetail.SubtitleMovieUrl; var commentaryUrl = "https://subscene.com" + movieDetail.CommentaryUrl; var serverFileName = await movieDetail.SubtitleDownloadUrl.GetServerFileName(); var fileName = movieDetail.ReleaseInfos? .OrderBy(s => s.Length).FirstOrDefault(movieDetail.MovieName)? .Replace(".", " ") ?? movieDetail.MovieName; var fileNameWithExt = fileName + serverFileName.GetFileExtension(); var subtitleInfo = HtmlMessage.Empty .Bold("Movie: ").TextBr(movieDetail.MovieName, true) .Bold("Language: ").TextBr(movieDetail.Language) .Bold("Author: ").Url(commentaryUrl, movieDetail.CommentaryUser).Br(); if (movieDetail.ReleaseInfo.IsNotNullOrEmpty()) { subtitleInfo.BoldBr("Release info") .TextBr(movieDetail.ReleaseInfo, true); } if (movieDetail.Comment.IsNotNullOrEmpty()) { subtitleInfo.Br() .Text(movieDetail.Comment); } var buttonMarkup = new[] { new[] { InlineKeyboardButton.WithUrl("Tautan Subscene", subsceneUrl), }, new[] { InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("Pencarian baru", "subscene ") } }; var replyMarkup = new InlineKeyboardMarkup(buttonMarkup); await telegramService.DeleteSentMessageAsync(); await telegramService.SendMediaAsync( fileId: movieDetail.SubtitleDownloadUrl, mediaType: MediaType.Document, caption: subtitleInfo.ToString(), customFileName: fileNameWithExt, replyMarkup: replyMarkup ); } ).InBackground(); return(response); }