auto-claude: subtask-2-3 - Update SocialMediaAuditor to use GooglePlacesSearcher
- Add google_places_searcher attribute to SocialMediaAuditor - Initialize GooglePlacesSearcher if GOOGLE_PLACES_API_KEY env var is set - Update audit_company() to use Places API directly when available - Fallback to Brave Search when API key not configured - Log which data source is being used for reviews Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
b389287697
commit
3bdbde1621
@ -839,6 +839,15 @@ class SocialMediaAuditor:
|
||||
self.website_auditor = WebsiteAuditor()
|
||||
self.brave_searcher = BraveSearcher()
|
||||
|
||||
# Initialize Google Places searcher if API key is available
|
||||
google_places_api_key = os.getenv('GOOGLE_PLACES_API_KEY')
|
||||
if google_places_api_key:
|
||||
self.google_places_searcher = GooglePlacesSearcher(api_key=google_places_api_key)
|
||||
logger.info('Google Places API key found - using Places API for reviews')
|
||||
else:
|
||||
self.google_places_searcher = None
|
||||
logger.info('GOOGLE_PLACES_API_KEY not set - falling back to Brave Search for reviews')
|
||||
|
||||
def get_companies(self, company_ids: Optional[List[int]] = None,
|
||||
batch_start: Optional[int] = None,
|
||||
batch_end: Optional[int] = None) -> List[Dict]:
|
||||
@ -916,11 +925,31 @@ class SocialMediaAuditor:
|
||||
|
||||
result['social_media'] = website_social
|
||||
|
||||
# 4. Google reviews search
|
||||
# 4. Google reviews search - prefer Google Places API if available
|
||||
try:
|
||||
result['google_reviews'] = self.brave_searcher.search_google_reviews(
|
||||
company['name'], city
|
||||
)
|
||||
if self.google_places_searcher:
|
||||
# Use Google Places API directly for accurate data
|
||||
place_id = self.google_places_searcher.find_place(company['name'], city)
|
||||
if place_id:
|
||||
details = self.google_places_searcher.get_place_details(place_id)
|
||||
result['google_reviews'] = {
|
||||
'google_rating': details.get('google_rating'),
|
||||
'google_reviews_count': details.get('google_reviews_count'),
|
||||
'opening_hours': details.get('opening_hours'),
|
||||
'business_status': details.get('business_status'),
|
||||
}
|
||||
else:
|
||||
result['google_reviews'] = {
|
||||
'google_rating': None,
|
||||
'google_reviews_count': None,
|
||||
'opening_hours': None,
|
||||
'business_status': None,
|
||||
}
|
||||
else:
|
||||
# Fallback to Brave Search
|
||||
result['google_reviews'] = self.brave_searcher.search_google_reviews(
|
||||
company['name'], city
|
||||
)
|
||||
except Exception as e:
|
||||
result['errors'].append(f'Google reviews search failed: {str(e)}')
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user