[db,scan,jsonapi] bug fix to handle date_released before 1970, storing -ve values in db

This commit is contained in:
whatdoineed2do/Ray
2022-12-11 15:45:19 +00:00
parent 7c0474b743
commit 7d26c2c954
4 changed files with 9 additions and 8 deletions

View File

@@ -98,7 +98,8 @@ parse_date(struct media_file_info *mfi, char *date_string)
{
char year_string[32];
uint32_t *year = (uint32_t *) ((char *) mfi + mfi_offsetof(year));
uint32_t *date_released = (uint32_t *) ((char *) mfi + mfi_offsetof(date_released));
// signed in db.h to handle dates before 1970
int64_t *date_released = (int64_t *) ((char *) mfi + mfi_offsetof(date_released));
struct tm tm = { 0 };
int ret = 0;
@@ -111,7 +112,7 @@ parse_date(struct media_file_info *mfi, char *date_string)
|| strptime(date_string, "%F", &tm)
)
{
*date_released = (uint32_t)mktime(&tm);
*date_released = mktime(&tm);
ret++;
}
@@ -120,7 +121,7 @@ parse_date(struct media_file_info *mfi, char *date_string)
snprintf(year_string, sizeof(year_string), "%" PRIu32 "-01-01T12:00:00", *year);
if (strptime(year_string, "%FT%T", &tm))
{
*date_released = (uint32_t)mktime(&tm);
*date_released = mktime(&tm);
ret++;
}
}