Fix some errors in shop
This commit is contained in:
parent
5d4f180fa2
commit
802d4b3df0
2 changed files with 21 additions and 2 deletions
|
@ -28,7 +28,7 @@ class ShopApiCore(QObject):
|
||||||
self.next_browse_request = tuple(())
|
self.next_browse_request = tuple(())
|
||||||
|
|
||||||
def get_free_games(self, handle_func: callable):
|
def get_free_games(self, handle_func: callable):
|
||||||
url = f"https://store-site-backend-static.ak.epicgames.com/freeGamesPromotions?locale={self.language_code}&country={self.country_code}&allowCountries={self.country_code}"
|
url = f"https://store-site-backend-static-ipv4.ak.epicgames.com/freeGamesPromotions?locale={self.language_code}&country={self.country_code}&allowCountries={self.country_code}"
|
||||||
|
|
||||||
self.manager.get(url, lambda data: self._handle_free_games(data, handle_func))
|
self.manager.get(url, lambda data: self._handle_free_games(data, handle_func))
|
||||||
|
|
||||||
|
@ -85,6 +85,10 @@ class ShopApiCore(QObject):
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
handle_func([])
|
handle_func([])
|
||||||
|
except Exception as e:
|
||||||
|
logger.error("Search Api request failed: " + str(e))
|
||||||
|
handle_func([])
|
||||||
|
return
|
||||||
|
|
||||||
def browse_games(self, browse_model: BrowseModel, handle_func):
|
def browse_games(self, browse_model: BrowseModel, handle_func):
|
||||||
if self.browse_active:
|
if self.browse_active:
|
||||||
|
@ -104,12 +108,19 @@ class ShopApiCore(QObject):
|
||||||
|
|
||||||
def _handle_browse_games(self, data, handle_func):
|
def _handle_browse_games(self, data, handle_func):
|
||||||
self.browse_active = False
|
self.browse_active = False
|
||||||
|
if data is None:
|
||||||
|
data = {}
|
||||||
if not self.next_browse_request:
|
if not self.next_browse_request:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
handle_func(data["data"]["Catalog"]["searchStore"]["elements"])
|
handle_func(data["data"]["Catalog"]["searchStore"]["elements"])
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
handle_func([])
|
handle_func([])
|
||||||
|
except Exception as e:
|
||||||
|
logger.error("Browse games Api request failed: " + str(e))
|
||||||
|
handle_func([])
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
self.browse_games(*self.next_browse_request) # pylint: disable=E1120
|
self.browse_games(*self.next_browse_request) # pylint: disable=E1120
|
||||||
self.next_browse_request = tuple(())
|
self.next_browse_request = tuple(())
|
||||||
|
@ -119,7 +130,11 @@ class ShopApiCore(QObject):
|
||||||
self.manager.get(url, lambda data: self._handle_get_game(data, handle_func))
|
self.manager.get(url, lambda data: self._handle_get_game(data, handle_func))
|
||||||
|
|
||||||
def _handle_get_game(self, data, handle_func):
|
def _handle_get_game(self, data, handle_func):
|
||||||
handle_func(data)
|
try:
|
||||||
|
handle_func(data)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(str(e))
|
||||||
|
handle_func({})
|
||||||
|
|
||||||
# needs a captcha
|
# needs a captcha
|
||||||
def add_to_wishlist(self, namespace, offer_id, handle_func: callable):
|
def add_to_wishlist(self, namespace, offer_id, handle_func: callable):
|
||||||
|
|
|
@ -163,11 +163,15 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
||||||
if start_date > date:
|
if start_date > date:
|
||||||
coming_free_games.append(game)
|
coming_free_games.append(game)
|
||||||
# free games now
|
# free games now
|
||||||
|
now_free = 0
|
||||||
for free_game in free_games_now:
|
for free_game in free_games_now:
|
||||||
w = GameWidget(self.path, free_game)
|
w = GameWidget(self.path, free_game)
|
||||||
w.show_info.connect(self.show_game.emit)
|
w.show_info.connect(self.show_game.emit)
|
||||||
self.free_games_now.layout().addWidget(w)
|
self.free_games_now.layout().addWidget(w)
|
||||||
self.free_game_widgets.append(w)
|
self.free_game_widgets.append(w)
|
||||||
|
now_free += 1
|
||||||
|
if now_free == 0:
|
||||||
|
self.free_games_now.layout().addWidget(QLabel(self.tr("Could not find current free game")))
|
||||||
|
|
||||||
# free games next week
|
# free games next week
|
||||||
for free_game in coming_free_games:
|
for free_game in coming_free_games:
|
||||||
|
|
Loading…
Reference in a new issue