mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-12 22:42:13 +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)
|
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(
|
async def check_duplicate_document_by_hash(
|
||||||
session: AsyncSession, content_hash: str
|
session: AsyncSession, content_hash: str
|
||||||
) -> Document | None:
|
) -> Document | None:
|
||||||
|
|
@ -168,7 +196,13 @@ def calculate_date_range(
|
||||||
"adjusting end date to next day to ensure valid date range"
|
"adjusting end date to next day to ensure valid date range"
|
||||||
)
|
)
|
||||||
# Parse end_date and add 1 day
|
# 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_dt = end_dt + timedelta(days=1)
|
||||||
end_date_str = end_dt.strftime("%Y-%m-%d")
|
end_date_str = end_dt.strftime("%Y-%m-%d")
|
||||||
logger.info(f"Adjusted end date to {end_date_str}")
|
logger.info(f"Adjusted end date to {end_date_str}")
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ from .base import (
|
||||||
get_connector_by_id,
|
get_connector_by_id,
|
||||||
get_current_timestamp,
|
get_current_timestamp,
|
||||||
logger,
|
logger,
|
||||||
|
parse_date_flexible,
|
||||||
update_connector_last_indexed,
|
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"
|
"adjusting end date to next day to ensure valid date range"
|
||||||
)
|
)
|
||||||
# Parse end_date and add 1 day
|
# 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_dt = end_dt + timedelta(days=1)
|
||||||
end_date_str = end_dt.strftime("%Y-%m-%d")
|
end_date_str = end_dt.strftime("%Y-%m-%d")
|
||||||
logger.info(f"Adjusted end date to {end_date_str}")
|
logger.info(f"Adjusted end date to {end_date_str}")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue