mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-08 20:25:19 +02:00
add parse date flexible
This commit is contained in:
parent
48e646607b
commit
33165830e5
2 changed files with 43 additions and 2 deletions
|
|
@ -28,6 +28,34 @@ def get_current_timestamp() -> datetime:
|
|||
return datetime.now(UTC)
|
||||
|
||||
|
||||
def parse_date_flexible(date_str: str) -> datetime:
|
||||
"""
|
||||
Parse date from multiple common formats.
|
||||
|
||||
Args:
|
||||
date_str: Date string to parse
|
||||
|
||||
Returns:
|
||||
Parsed datetime object
|
||||
|
||||
Raises:
|
||||
ValueError: If unable to parse the date string
|
||||
"""
|
||||
formats = ["%Y-%m-%d", "%Y-%m-%dT%H:%M:%S"]
|
||||
|
||||
for fmt in formats:
|
||||
try:
|
||||
return datetime.strptime(date_str.rstrip("Z"), fmt)
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
# Try ISO format as fallback
|
||||
try:
|
||||
return datetime.fromisoformat(date_str.replace("Z", "+00:00"))
|
||||
except ValueError:
|
||||
raise ValueError(f"Unable to parse date: {date_str}")
|
||||
|
||||
|
||||
async def check_duplicate_document_by_hash(
|
||||
session: AsyncSession, content_hash: str
|
||||
) -> Document | None:
|
||||
|
|
@ -168,7 +196,13 @@ def calculate_date_range(
|
|||
"adjusting end date to next day to ensure valid date range"
|
||||
)
|
||||
# Parse end_date and add 1 day
|
||||
end_dt = datetime.strptime(end_date_str, "%Y-%m-%d")
|
||||
try:
|
||||
end_dt = parse_date_flexible(end_date_str)
|
||||
except ValueError:
|
||||
logger.warning(
|
||||
f"Could not parse end_date '{end_date_str}', using current date"
|
||||
)
|
||||
end_dt = datetime.now()
|
||||
end_dt = end_dt + timedelta(days=1)
|
||||
end_date_str = end_dt.strftime("%Y-%m-%d")
|
||||
logger.info(f"Adjusted end date to {end_date_str}")
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ from .base import (
|
|||
get_connector_by_id,
|
||||
get_current_timestamp,
|
||||
logger,
|
||||
parse_date_flexible,
|
||||
update_connector_last_indexed,
|
||||
)
|
||||
|
||||
|
|
@ -226,7 +227,13 @@ async def index_google_calendar_events(
|
|||
"adjusting end date to next day to ensure valid date range"
|
||||
)
|
||||
# Parse end_date and add 1 day
|
||||
end_dt = datetime.strptime(end_date_str, "%Y-%m-%d")
|
||||
try:
|
||||
end_dt = parse_date_flexible(end_date_str)
|
||||
except ValueError:
|
||||
logger.warning(
|
||||
f"Could not parse end_date '{end_date_str}', using current date"
|
||||
)
|
||||
end_dt = datetime.now()
|
||||
end_dt = end_dt + timedelta(days=1)
|
||||
end_date_str = end_dt.strftime("%Y-%m-%d")
|
||||
logger.info(f"Adjusted end date to {end_date_str}")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue