private static async Task ScanPhotoAsync(this TelegramService telegramService) { var message = telegramService.MessageOrEdited; var chatId = message.Chat.Id; var msgId = message.MessageId; if (message.Photo != null) { Log.Information(""); var fileName = $"{chatId}/ocr-{msgId}.jpg"; Log.Information("Preparing photo"); var savedFile = await telegramService.DownloadFileAsync(fileName) .ConfigureAwait(false); // var ocr = await TesseractProvider.OcrSpace(savedFile) // .ConfigureAwait(false); var ocr = GoogleVision.ScanText(savedFile); Log.Information("Scanning message.."); var isMustDelete = await IsMustDelete(ocr) .ConfigureAwait(false); Log.Information($"Message {message.MessageId} IsMustDelete: {isMustDelete}"); if (isMustDelete) { await telegramService.DeleteAsync(message.MessageId) .ConfigureAwait(false); } savedFile.GetDirectory().RemoveFiles("ocr"); } }
public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args, CancellationToken cancellationToken) { _telegramService = new TelegramService(context); var msg = _telegramService.Message; var chatId = msg.Chat.Id; if (msg.ReplyToMessage != null) { var repMsg = msg.ReplyToMessage; var msgId = repMsg.MessageId; if (repMsg.Photo != null) { await _telegramService.SendTextAsync("Sedang memproses gambar") .ConfigureAwait(false); var fileName = $"{chatId}/ocr-{msgId}.jpg"; Log.Information("Preparing photo"); var savedFile = await _telegramService.DownloadFileAsync(fileName) .ConfigureAwait(false); // var ocr = TesseractProvider.ScanImage(savedFile); var ocr = GoogleVision.ScanText(savedFile); // var ocr = await TesseractProvider.OcrSpace(savedFile) // .ConfigureAwait(false); // var txt = @$"<b>Scan Result</b>\n{ocr}"; if (ocr.IsNullOrEmpty()) { ocr = "Tidak terdeteksi adanya teks di gambar tersebut"; } await _telegramService.EditAsync(ocr) .ConfigureAwait(false); savedFile.GetDirectory().RemoveFiles("ocr"); return; } } await _telegramService.SendTextAsync("Silakan reply salah satu gambar") .ConfigureAwait(false); }