这是indexloc提供的服务,不要输入任何密码
Skip to content

feat: add the ability to filter place reviews by newest. #468

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions googlemaps/places.py
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,14 @@ def _places(
return client._request(url, params)


def place(client, place_id, session_token=None, fields=None, language=None):
def place(
client,
place_id,
session_token=None,
fields=None,
language=None,
reviews_sort="most_relevant"
):
"""
Comprehensive details for an individual place.

Expand All @@ -416,6 +423,10 @@ def place(client, place_id, session_token=None, fields=None, language=None):
:param language: The language in which to return results.
:type language: string

:param reviews_sort: The sorting method to use when returning reviews.
Can be set to most_relevant (default) or newest.
:type reviews_sort: string

:rtype: result dict with the following keys:
result: dict containing place details
html_attributions: set of attributions which must be displayed
Expand Down Expand Up @@ -444,6 +455,8 @@ def place(client, place_id, session_token=None, fields=None, language=None):
params["language"] = language
if session_token:
params["sessiontoken"] = session_token
if reviews_sort:
params["reviews_sort"] = reviews_sort

return client._request("/maps/api/place/details/json", params)

Expand Down Expand Up @@ -657,4 +670,3 @@ def _autocomplete(

url = "/maps/api/place/%sautocomplete/json" % url_part
return client._request(url, params).get("predictions", [])

4 changes: 3 additions & 1 deletion tests/test_places.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def setUp(self):
self.type = "liquor_store"
self.language = "en-AU"
self.region = "AU"
self.reviews_sort="newest"
self.radius = 100

@responses.activate
Expand Down Expand Up @@ -165,11 +166,12 @@ def test_place_detail(self):
"ChIJN1t_tDeuEmsRUsoyG83frY4",
fields=["business_status", "geometry/location", "place_id"],
language=self.language,
reviews_sort=self.reviews_sort,
)

self.assertEqual(1, len(responses.calls))
self.assertURLEqual(
"%s?language=en-AU&placeid=ChIJN1t_tDeuEmsRUsoyG83frY4"
"%s?reviews_sort=newest&language=en-AU&placeid=ChIJN1t_tDeuEmsRUsoyG83frY4"
"&key=%s&fields=business_status,geometry/location,place_id"
% (url, self.key),
responses.calls[0].request.url,
Expand Down