diff --git a/src/CasaBot/CasaBotApp/Extensions/CommandRegister.cs b/src/CasaBot/CasaBotApp/Extensions/CommandRegister.cs index 505cf0e..d98cf85 100644 --- a/src/CasaBot/CasaBotApp/Extensions/CommandRegister.cs +++ b/src/CasaBot/CasaBotApp/Extensions/CommandRegister.cs @@ -1,5 +1,6 @@ using AutoScan; using Microsoft.Extensions.Logging; +using Telegram.Bots.Types; namespace CasaBotApp.Extensions; @@ -26,19 +27,51 @@ public static class CommandRegister await autoScanApp.StartNewScan(); } }); + botHandler.RegisterCommand(new BotCommand + { + Command = "/lastScan", + Description = "Send the images from the last scan", + Action = async (message, ctx) => + { + var images = autoScanApp.GetLastScanPictures(); + if (images.Length == 0) + { + await ctx.Responder(message, "No images found"); + return; + } + await botHandler.SendPhotos(message.Chat.Id, images); + } + }); + + botHandler.OnReply = async msg => + { + var originalMsg = msg.ReplyToMessage; + + // Check if the original message is a photo and has a caption + if (originalMsg is not PhotoMessage photoMessage || photoMessage.Caption is null) + return; + + var videoPath = autoScanApp.GetVideoPath(photoMessage.Caption); + if (string.IsNullOrEmpty(videoPath)) + return; + + await botHandler.SendVideo(msg.Chat.Id, videoPath); + }; } public static void UpdateOnScanCompleted(BotHandler botHandler, AutoScanApp autoScanApp, ILogger logger) { - autoScanApp.OnScanCompleted = async options => + autoScanApp.OnScanCompleted = async () => { logger.LogInformation("Scan completed at {At}", DateTime.Now); try { - //list all the images in the detection folder - if (options.Scanner?.DetectionFolder is null) + var images = autoScanApp.GetLastScanPictures(); + if (images.Length == 0) + { + await botHandler.Update("No images found"); return; - var images = Directory.GetFiles(options.Scanner.DetectionFolder , "*.jpg"); + } await botHandler.Update($"Scan completed, found {images.Length} images"); await botHandler.UpdatePhotos(images); }catch(Exception ex)