diff --git a/apps/backend/images.go b/apps/backend/images.go index df5cf5e..bd52ed6 100644 --- a/apps/backend/images.go +++ b/apps/backend/images.go @@ -39,6 +39,11 @@ func AddToImageProcessing(tmp *typesdefs.AnnuncioParsed, annuncio *typesdefs.Ann } func ProcessImagePool(toProcess *[]typesdefs.MediaToProcess) ([]typesdefs.UploadedMedia, error) { + if len(*toProcess) == 0 { + log.Println("No new images to process.") + return []typesdefs.UploadedMedia{}, nil + } + var ( ProcessedImages []typesdefs.ProcessedMedia UploadedImages []typesdefs.UploadedMedia diff --git a/apps/backend/miogest_handler.go b/apps/backend/miogest_handler.go index 5cc8f72..8e8a1ae 100644 --- a/apps/backend/miogest_handler.go +++ b/apps/backend/miogest_handler.go @@ -46,13 +46,29 @@ func (m *MiogestHandler) GetAnnunci() typesdefs.AnnunciXML { } func (m *MiogestHandler) GetAnnunciFromMiogest() { - var err error - 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) - return + maxRetries := 3 + baseDelay := 2 * time.Second + + for attempt := 0; attempt < maxRetries; attempt++ { + var err error + m.AnnunciXML, err = utils.GetDataXML[typesdefs.AnnunciXML]("http://partner.miogest.com/agenzie/infoalloggi.xml") + + if err == nil { + // Success + m.annunci_cache_expires = time.Now().Add(1 * time.Hour) + return + } + + // Failed - check if we should retry + if attempt < maxRetries-1 { + delay := baseDelay * time.Duration(1<