Add compatibility with new Wallapop API changes
This commit is contained in:
@@ -16,8 +16,8 @@ class WallapopArticle:
|
|||||||
json_data['id'],
|
json_data['id'],
|
||||||
json_data['title'],
|
json_data['title'],
|
||||||
json_data['description'],
|
json_data['description'],
|
||||||
json_data['price'],
|
json_data['price']['amount'],
|
||||||
json_data['currency'],
|
json_data['price']['currency'],
|
||||||
json_data['location']['city'],
|
json_data['location']['city'],
|
||||||
json_data['shipping']['user_allows_shipping'],
|
json_data['shipping']['user_allows_shipping'],
|
||||||
json_data['web_slug']
|
json_data['web_slug']
|
||||||
|
|||||||
@@ -18,20 +18,30 @@ class Worker:
|
|||||||
self._notified_articles = self._request_articles()
|
self._notified_articles = self._request_articles()
|
||||||
self.telegram_manager = TelegramManager()
|
self.telegram_manager = TelegramManager()
|
||||||
|
|
||||||
def _request_articles(self):
|
def _create_url(self):
|
||||||
url = (
|
url = (
|
||||||
f"http://api.wallapop.com/api/v3/general/search?keywords={self._item_monitoring.get_search_query()}"
|
f"http://api.wallapop.com/api/v3/search"
|
||||||
f"&order_by=newest&latitude={self._item_monitoring.get_latitude()}"
|
f"?source=search_box"
|
||||||
f"&longitude={self._item_monitoring.get_longitude()}"
|
f"&keywords={self._item_monitoring._search_query}"
|
||||||
f"&distance={self._item_monitoring.get_max_distance()}"
|
f"&order_by=newest"
|
||||||
f"&min_sale_price={self._item_monitoring.get_min_price()}"
|
f"&latitude={self._item_monitoring._latitude}"
|
||||||
f"&max_sale_price={self._item_monitoring.get_max_price()}"
|
f"&longitude={self._item_monitoring._longitude}"
|
||||||
f"&filters_source=quick_filters&language=es_ES"
|
f"&min_sale_price={self._item_monitoring._min_price}"
|
||||||
|
f"&max_sale_price={self._item_monitoring._max_price}"
|
||||||
|
f"&language=es_ES"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self._item_monitoring._max_distance != "0":
|
||||||
|
url += f"&distance={self._item_monitoring._max_distance}"
|
||||||
|
|
||||||
if self._item_monitoring.get_condition() != "all":
|
if self._item_monitoring.get_condition() != "all":
|
||||||
url += f"&condition={self._item_monitoring.get_condition()}" # new, as_good_as_new, good, fair, has_given_it_all
|
url += f"&condition={self._item_monitoring.get_condition()}" # new, as_good_as_new, good, fair, has_given_it_all
|
||||||
|
|
||||||
|
return url
|
||||||
|
|
||||||
|
def _request_articles(self):
|
||||||
|
url = self._create_url()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
headers = {
|
headers = {
|
||||||
@@ -46,7 +56,8 @@ class Worker:
|
|||||||
time.sleep(REQUEST_RETRY_TIME)
|
time.sleep(REQUEST_RETRY_TIME)
|
||||||
|
|
||||||
json_response = response.json()
|
json_response = response.json()
|
||||||
articles = self._parse_json_response(json_response['search_objects'])
|
json_items = json_response['data']['section']['payload']['items']
|
||||||
|
articles = self._parse_json_response(json_items)
|
||||||
return articles
|
return articles
|
||||||
|
|
||||||
def _parse_json_response(self, json_response):
|
def _parse_json_response(self, json_response):
|
||||||
|
|||||||
Reference in New Issue
Block a user