feat: add logging for empty media processing in image, video, and database operations

This commit is contained in:
Marco Pedone 2026-01-08 09:29:25 +01:00
parent 339a1e94dc
commit 10c7581d2d
6 changed files with 46 additions and 7 deletions

View file

@ -39,6 +39,11 @@ func AddToImageProcessing(tmp *typesdefs.AnnuncioParsed, annuncio *typesdefs.Ann
} }
func ProcessImagePool(toProcess *[]typesdefs.MediaToProcess) ([]typesdefs.UploadedMedia, error) { func ProcessImagePool(toProcess *[]typesdefs.MediaToProcess) ([]typesdefs.UploadedMedia, error) {
if len(*toProcess) == 0 {
log.Println("No new images to process.")
return []typesdefs.UploadedMedia{}, nil
}
var ( var (
ProcessedImages []typesdefs.ProcessedMedia ProcessedImages []typesdefs.ProcessedMedia
UploadedImages []typesdefs.UploadedMedia UploadedImages []typesdefs.UploadedMedia

View file

@ -46,13 +46,29 @@ func (m *MiogestHandler) GetAnnunci() typesdefs.AnnunciXML {
} }
func (m *MiogestHandler) GetAnnunciFromMiogest() { func (m *MiogestHandler) GetAnnunciFromMiogest() {
maxRetries := 3
baseDelay := 2 * time.Second
for attempt := 0; attempt < maxRetries; attempt++ {
var err error var err error
m.AnnunciXML, err = utils.GetDataXML[typesdefs.AnnunciXML]("http://partner.miogest.com/agenzie/infoalloggi.xml") m.AnnunciXML, err = utils.GetDataXML[typesdefs.AnnunciXML]("http://partner.miogest.com/agenzie/infoalloggi.xml")
if err != nil {
log.Printf("Failed to get annunci: %v", err) if err == nil {
// Success
m.annunci_cache_expires = time.Now().Add(1 * time.Hour)
return return
} }
m.annunci_cache_expires = time.Now().Add(1 * time.Hour)
// Failed - check if we should retry
if attempt < maxRetries-1 {
delay := baseDelay * time.Duration(1<<attempt) // Exponential backoff: 2s, 4s, 8s
log.Printf("Failed to get annunci (attempt %d/%d): %v. Retrying in %v...",
attempt+1, maxRetries, err, delay)
time.Sleep(delay)
} else {
log.Printf("Failed to get annunci after %d attempts: %v", maxRetries, err)
}
}
} }
// CATEGORIE AND CARATTERISTICHE FROM MIOGEST // CATEGORIE AND CARATTERISTICHE FROM MIOGEST

View file

@ -3,12 +3,17 @@ package queries
import ( import (
"backend/typesdefs" "backend/typesdefs"
"fmt" "fmt"
"log"
"github.com/georgysavva/scany/v2/pgxscan" "github.com/georgysavva/scany/v2/pgxscan"
"github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5"
) )
func SetImagesToDB(pool *[]typesdefs.UploadedMedia) error { func SetImagesToDB(pool *[]typesdefs.UploadedMedia) error {
if len(*pool) == 0 {
log.Println("No new images to save to DB.")
return nil
}
batch := &pgx.Batch{} batch := &pgx.Batch{}
for _, data := range *pool { for _, data := range *pool {

View file

@ -3,12 +3,17 @@ package queries
import ( import (
"backend/typesdefs" "backend/typesdefs"
"fmt" "fmt"
"log"
"github.com/georgysavva/scany/v2/pgxscan" "github.com/georgysavva/scany/v2/pgxscan"
"github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5"
) )
func SetVideosToDB(pool *[]typesdefs.UploadedMedia) error { func SetVideosToDB(pool *[]typesdefs.UploadedMedia) error {
if len(*pool) == 0 {
log.Println("No new videos to save to DB.")
return nil
}
batch := &pgx.Batch{} batch := &pgx.Batch{}
for _, data := range *pool { for _, data := range *pool {

View file

@ -1,6 +1,7 @@
package utils package utils
import ( import (
"encoding/json"
"encoding/xml" "encoding/xml"
"fmt" "fmt"
"io" "io"
@ -79,7 +80,10 @@ func GetDataXML[T any](url string) (T, error) {
req.Header.Set("Referer", "https://www.miogest.com/") req.Header.Set("Referer", "https://www.miogest.com/")
resp, err := client.Do(req) resp, err := client.Do(req)
log.Printf("Resp %v", resp) log.Printf("Response Status: %s", resp.Status)
if jsonBytes, err := json.MarshalIndent(resp.Header, "", " "); err == nil {
log.Printf("Headers:\n%s", string(jsonBytes))
}
if err != nil { if err != nil {
return result, fmt.Errorf("Failed to fetch url %s: %w", url, err) return result, fmt.Errorf("Failed to fetch url %s: %w", url, err)

View file

@ -47,6 +47,10 @@ func AddToVideoProcessing(tmp *typesdefs.AnnuncioParsed, annuncio *typesdefs.Ann
} }
func ProcessVideoPool(toProcess *[]typesdefs.MediaToProcess) ([]typesdefs.UploadedMedia, error) { func ProcessVideoPool(toProcess *[]typesdefs.MediaToProcess) ([]typesdefs.UploadedMedia, error) {
if len(*toProcess) == 0 {
log.Println("No new videos to process.")
return []typesdefs.UploadedMedia{}, nil
}
var ( var (
ProcessedVideos []typesdefs.ProcessedMedia ProcessedVideos []typesdefs.ProcessedMedia
UploadedVideos []typesdefs.UploadedMedia UploadedVideos []typesdefs.UploadedMedia