1
0
Fork 0
mirror of synced 2024-06-23 08:40:45 +12:00

Fix some errors in shop

This commit is contained in:
Dummerle 2021-12-22 18:30:14 +01:00
parent 5d4f180fa2
commit 802d4b3df0
No known key found for this signature in database
GPG key ID: AB68CC59CA39F2F1
2 changed files with 21 additions and 2 deletions

View file

@ -28,7 +28,7 @@ class ShopApiCore(QObject):
self.next_browse_request = tuple(())
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))
@ -85,6 +85,10 @@ class ShopApiCore(QObject):
except KeyError as e:
logger.error(str(e))
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):
if self.browse_active:
@ -104,12 +108,19 @@ class ShopApiCore(QObject):
def _handle_browse_games(self, data, handle_func):
self.browse_active = False
if data is None:
data = {}
if not self.next_browse_request:
try:
handle_func(data["data"]["Catalog"]["searchStore"]["elements"])
except KeyError as e:
logger.error(str(e))
handle_func([])
except Exception as e:
logger.error("Browse games Api request failed: " + str(e))
handle_func([])
return
else:
self.browse_games(*self.next_browse_request) # pylint: disable=E1120
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))
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
def add_to_wishlist(self, namespace, offer_id, handle_func: callable):

View file

@ -163,11 +163,15 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
if start_date > date:
coming_free_games.append(game)
# free games now
now_free = 0
for free_game in free_games_now:
w = GameWidget(self.path, free_game)
w.show_info.connect(self.show_game.emit)
self.free_games_now.layout().addWidget(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
for free_game in coming_free_games: