diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index bd4dc0e63..14176e8f0 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -vermarohanfinal@gmail.com. +rohan@surfsense.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/surfsense_backend/app/connectors/google_gmail_connector.py b/surfsense_backend/app/connectors/google_gmail_connector.py index 637680560..402337448 100644 --- a/surfsense_backend/app/connectors/google_gmail_connector.py +++ b/surfsense_backend/app/connectors/google_gmail_connector.py @@ -227,23 +227,42 @@ class GoogleGmailConnector: async def get_recent_messages( self, max_results: int = 50, - days_back: int = 30, + start_date: str | None = None, + end_date: str | None = None, ) -> tuple[list[dict[str, Any]], str | None]: """ - Fetch recent messages from Gmail within specified days. + Fetch recent messages from Gmail within specified date range. Args: max_results: Maximum number of messages to fetch (default: 50) - days_back: Number of days to look back (default: 30) + start_date: Start date in YYYY-MM-DD format (default: 30 days ago) + end_date: End date in YYYY-MM-DD format (default: today) Returns: Tuple containing (messages list with details, error message or None) """ try: - # Calculate date query from datetime import datetime, timedelta - cutoff_date = datetime.now() - timedelta(days=days_back) - date_query = cutoff_date.strftime("%Y/%m/%d") - query = f"after:{date_query}" + # Build date query + query_parts = [] + + if start_date: + # Parse start_date from YYYY-MM-DD to Gmail query format YYYY/MM/DD + start_dt = datetime.strptime(start_date, "%Y-%m-%d") + start_query = start_dt.strftime("%Y/%m/%d") + query_parts.append(f"after:{start_query}") + else: + # Default to 30 days ago + cutoff_date = datetime.now() - timedelta(days=30) + date_query = cutoff_date.strftime("%Y/%m/%d") + query_parts.append(f"after:{date_query}") + + if end_date: + # Parse end_date from YYYY-MM-DD to Gmail query format YYYY/MM/DD + end_dt = datetime.strptime(end_date, "%Y-%m-%d") + end_query = end_dt.strftime("%Y/%m/%d") + query_parts.append(f"before:{end_query}") + + query = " ".join(query_parts) # Get messages list messages_list, error = await self.get_messages_list( diff --git a/surfsense_backend/app/routes/search_source_connectors_routes.py b/surfsense_backend/app/routes/search_source_connectors_routes.py index fbed978b4..d0ee44f51 100644 --- a/surfsense_backend/app/routes/search_source_connectors_routes.py +++ b/surfsense_backend/app/routes/search_source_connectors_routes.py @@ -1250,14 +1250,22 @@ async def run_google_gmail_indexing( ): """Runs the Google Gmail indexing task and updates the timestamp.""" try: + # Convert days_back to start_date string in YYYY-MM-DD format + from datetime import datetime, timedelta + + start_date_obj = datetime.now() - timedelta(days=days_back) + start_date = start_date_obj.strftime("%Y-%m-%d") + end_date = None # No end date, index up to current time + indexed_count, error_message = await index_google_gmail_messages( session, connector_id, search_space_id, user_id, - max_messages, - days_back, + start_date=start_date, + end_date=end_date, update_last_indexed=False, + max_messages=max_messages, ) if error_message: logger.error( diff --git a/surfsense_backend/app/tasks/celery_tasks/connector_tasks.py b/surfsense_backend/app/tasks/celery_tasks/connector_tasks.py index e1a0b708e..5e6907499 100644 --- a/surfsense_backend/app/tasks/celery_tasks/connector_tasks.py +++ b/surfsense_backend/app/tasks/celery_tasks/connector_tasks.py @@ -445,14 +445,27 @@ async def _index_google_gmail_messages( end_date: str, ): """Index Google Gmail messages with new session.""" + from datetime import datetime + from app.routes.search_source_connectors_routes import ( run_google_gmail_indexing, ) - # Parse dates to get max_messages and days_back - # For now, we'll use default values + # Parse dates to calculate days_back max_messages = 100 - days_back = 30 + days_back = 30 # Default + + if start_date: + try: + # Parse start_date (format: YYYY-MM-DD) + start_dt = datetime.strptime(start_date, "%Y-%m-%d") + # Calculate days back from now + days_back = (datetime.now() - start_dt).days + # Ensure at least 1 day + days_back = max(1, days_back) + except ValueError: + # If parsing fails, use default + days_back = 30 async with get_celery_session_maker()() as session: await run_google_gmail_indexing( diff --git a/surfsense_backend/app/tasks/connector_indexers/google_gmail_indexer.py b/surfsense_backend/app/tasks/connector_indexers/google_gmail_indexer.py index 9d3823741..7e821dc9f 100644 --- a/surfsense_backend/app/tasks/connector_indexers/google_gmail_indexer.py +++ b/surfsense_backend/app/tasks/connector_indexers/google_gmail_indexer.py @@ -40,7 +40,7 @@ async def index_google_gmail_messages( start_date: str | None = None, end_date: str | None = None, update_last_indexed: bool = True, - max_messages: int = 100, + max_messages: int = 1000, ) -> tuple[int, str]: """ Index Gmail messages for a specific connector. @@ -60,14 +60,6 @@ async def index_google_gmail_messages( """ task_logger = TaskLoggingService(session, search_space_id) - # Calculate days back based on start_date - if start_date: - try: - start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") - days_back = (datetime.now() - start_date_obj).days - except ValueError: - days_back = 30 # Default to 30 days if start_date is invalid - # Log task start log_entry = await task_logger.log_task_start( task_name="google_gmail_messages_indexing", @@ -77,7 +69,8 @@ async def index_google_gmail_messages( "connector_id": connector_id, "user_id": str(user_id), "max_messages": max_messages, - "days_back": days_back, + "start_date": start_date, + "end_date": end_date, }, ) @@ -135,7 +128,7 @@ async def index_google_gmail_messages( # Fetch recent Google gmail messages logger.info(f"Fetching recent emails for connector {connector_id}") messages, error = await gmail_connector.get_recent_messages( - max_results=max_messages, days_back=days_back + max_results=max_messages, start_date=start_date, end_date=end_date ) if error: diff --git a/surfsense_backend/celery_worker.py b/surfsense_backend/celery_worker.py index 2d416a82f..dcc7599ba 100644 --- a/surfsense_backend/celery_worker.py +++ b/surfsense_backend/celery_worker.py @@ -1,11 +1,5 @@ """Celery worker startup script.""" -import os -import sys - -# Add the app directory to the Python path -sys.path.insert(0, os.path.join(os.path.dirname(__file__), "app")) - from app.celery_app import celery_app if __name__ == "__main__": diff --git a/surfsense_web/app/(home)/privacy/page.tsx b/surfsense_web/app/(home)/privacy/page.tsx index ffe1ba9e3..970f50e27 100644 --- a/surfsense_web/app/(home)/privacy/page.tsx +++ b/surfsense_web/app/(home)/privacy/page.tsx @@ -181,7 +181,7 @@ export default function PrivacyPolicy() { contact us at:

- Email: vermarohanfinal@gmail.com + Email: rohan@surfsense.com

diff --git a/surfsense_web/app/(home)/terms/page.tsx b/surfsense_web/app/(home)/terms/page.tsx index e1f317a4c..dbc4c0253 100644 --- a/surfsense_web/app/(home)/terms/page.tsx +++ b/surfsense_web/app/(home)/terms/page.tsx @@ -216,7 +216,7 @@ export default function TermsOfService() {

12. Contact Us

If you have any questions about these Terms, please contact us at:

- Email: vermarohanfinal@gmail.com + Email: rohan@surfsense.com

diff --git a/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx index 0ff0fb205..d7c2d0b3a 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx @@ -122,11 +122,11 @@ const OnboardPage = () => { {/* Header */}
- +

Welcome to SurfSense

- Let's configure your SurfSense to get started + Let's configure your LLM configurations to get started