gotracker/ocr/ocrhandler.go

59 lines
1.1 KiB
Go
Raw Normal View History

2024-10-25 18:57:53 +02:00
package ocr
import (
// "database/sql"
"log/slog"
"net/http"
"strings"
"github.com/gin-gonic/gin"
"github.com/otiai10/gosseract/v2"
)
type GetTextHandler struct {
logger slog.Logger
// database *sql.DB
client gosseract.Client
}
type GetTextHandlerParams struct {
Logger slog.Logger
// Database *sql.DB
Client gosseract.Client
}
func NewGetTextHandler(params GetTextHandlerParams) *GetTextHandler {
return &GetTextHandler{
logger: params.Logger,
// database: params.Database,
client: params.Client,
}
}
func (h *GetTextHandler) ServeHTTP(c *gin.Context,w http.ResponseWriter, r *http.Request) {
file, err := c.FormFile("file")
if err != nil {
h.logger.Error("Error forming file", err)
}
fileName := "./file"
err = c.SaveUploadedFile(file, fileName)
if err != nil {
h.logger.Error("Error saving file", err)
}
err = h.client.SetImage(fileName)
if err != nil {
h.logger.Error("Error setting image", err)
}
text, err := h.client.Text()
if err != nil {
h.logger.Error("Error getting text from file", err)
}
lines := strings.Split(text, "\n")
c.JSON(http.StatusOK, lines)
}