Spaces:
Sleeping
Sleeping
from fastapi import FastAPI | |
from google.oauth2 import service_account | |
from googleapiclient.discovery import build | |
import json | |
import os | |
app = FastAPI() | |
# Load credentials from Hugging Face Secrets | |
google_credentials = json.loads(os.getenv("GOOGLE_CREDENTIALS")) | |
creds = service_account.Credentials.from_service_account_info( | |
google_credentials, scopes=["https://www.googleapis.com/auth/calendar.readonly"] | |
) | |
# Initialize Google Calendar API | |
service = build("calendar", "v3", credentials=creds) | |
# User preferences | |
user_interests = ["AI", "startup", "funding"] | |
preferred_locations = ["bangalore", "mumbai", "delhi", "pune", "chennai"] | |
event_types = ["webinar", "workshop", "accelerator", "summit"] | |
# Function to fetch events from Google Calendar | |
def get_events(): | |
events_result = service.events().list( | |
calendarId="primary", maxResults=10, singleEvents=True, orderBy="startTime" | |
).execute() | |
return events_result.get("items", []) | |
# Function to filter and format events | |
def filter_events(events): | |
recommended = [] | |
for event in events: | |
title = event.get("summary", "").lower() | |
location = event.get("location", "No location specified") | |
date = event["start"].get("dateTime", event["start"].get("date")) | |
if any(keyword in title for keyword in user_interests + event_types) and any( | |
city in location.lower() for city in preferred_locations | |
): | |
recommended.append({"title": event["summary"], "date": date, "location": location}) | |
return recommended | |
def home(): | |
return {"message": "Welcome to the Startup Event Recommender API!"} | |
def recommend_events(): | |
return {"message": "API is working!"} # Just a test response for now | |
if __name__ == "__main__": | |
import uvicorn | |
uvicorn.run(app, host="0.0.0.0", port=7860) | |
def list_routes(): | |
return {"available_routes": [route.path for route in app.routes]} | |
import uvicorn | |
if __name__ == "__main__": | |
uvicorn.run(app, host="0.0.0.0", port=7860) | |