Shop info does not work, but the app does not crash
This commit is contained in:
parent
78474d18c3
commit
654788410a
2 changed files with 31 additions and 12 deletions
|
@ -1,18 +1,21 @@
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
from json import JSONDecodeError
|
||||||
|
|
||||||
from PyQt5.QtCore import QLocale, Qt
|
from PyQt5.QtCore import QLocale, Qt, QUrl
|
||||||
from PyQt5.QtGui import QPixmap
|
from PyQt5.QtGui import QPixmap
|
||||||
from PyQt5.QtNetwork import QNetworkAccessManager
|
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
|
||||||
from PyQt5.QtWidgets import QWidget
|
from PyQt5.QtWidgets import QWidget
|
||||||
|
|
||||||
from rare.ui.components.tabs.store.shop_game_info import Ui_shop_info
|
from rare.ui.components.tabs.store.shop_game_info import Ui_shop_info
|
||||||
from rare.utils import api_utils
|
|
||||||
|
|
||||||
|
|
||||||
class ShopGameInfo(QWidget, Ui_shop_info):
|
class ShopGameInfo(QWidget, Ui_shop_info):
|
||||||
slug = ""
|
slug = ""
|
||||||
|
|
||||||
|
# TODO GANZ VIEL
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(ShopGameInfo, self).__init__()
|
super(ShopGameInfo, self).__init__()
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
@ -20,16 +23,32 @@ class ShopGameInfo(QWidget, Ui_shop_info):
|
||||||
self.manager = QNetworkAccessManager()
|
self.manager = QNetworkAccessManager()
|
||||||
|
|
||||||
def update_game(self, slug: str):
|
def update_game(self, slug: str):
|
||||||
locale = QLocale.system().name().split("_")[0]
|
|
||||||
game = api_utils.get_product(slug, locale)
|
|
||||||
self.slug = slug
|
self.slug = slug
|
||||||
self.title.setText(game[0]["productName"])
|
locale = QLocale.system().name().split("_")[0]
|
||||||
|
url = f"https://store-content.ak.epicgames.com/api/{locale}/content/products/{slug}"
|
||||||
|
# game = api_utils.get_product(slug, locale)
|
||||||
|
self.request = self.manager.get(QNetworkRequest(QUrl(url)))
|
||||||
|
self.request.readyRead.connect(self.data_received)
|
||||||
|
self.request.finished.connect(self.request.deleteLater if self.request else None)
|
||||||
|
|
||||||
|
def data_received(self):
|
||||||
|
logging.info(f"Data of game {self.slug} received")
|
||||||
|
if self.request:
|
||||||
|
if self.request.error() == QNetworkReply.NoError:
|
||||||
|
try:
|
||||||
|
game = json.loads(self.request.readAll().data().decode())[0]
|
||||||
|
except JSONDecodeError:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
self.title.setText(game["productName"])
|
||||||
self.image.setPixmap(
|
self.image.setPixmap(
|
||||||
QPixmap(os.path.expanduser(f"~/.cache/rare/cache/{game[0]['productName']}.png")).scaled(180,
|
QPixmap(os.path.expanduser(f"~/.cache/rare/cache/{game['productName']}.png")).scaled(180,
|
||||||
int(180 * 9 / 16),
|
int(180 * 9 / 16),
|
||||||
transformMode=Qt.SmoothTransformation))
|
transformMode=Qt.SmoothTransformation))
|
||||||
|
self.dev.setText(game["data"]["meta"]["developer"][0])
|
||||||
self.dev.setText(game[0]["data"]["meta"]["developer"][0])
|
|
||||||
|
|
||||||
def button_clicked(self):
|
def button_clicked(self):
|
||||||
webbrowser.open("https://www.epicgames.com/store/de/p/" + self.slug)
|
webbrowser.open("https://www.epicgames.com/store/de/p/" + self.slug)
|
||||||
|
|
|
@ -6,7 +6,7 @@ from json import JSONDecodeError
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from PyQt5 import QtGui
|
from PyQt5 import QtGui
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal, QUrl, QByteArray, QJsonDocument, QJsonParseError, QObjectCleanupHandler, \
|
from PyQt5.QtCore import Qt, pyqtSignal, QUrl, QByteArray, QJsonDocument, QJsonParseError, \
|
||||||
QStringListModel
|
QStringListModel
|
||||||
from PyQt5.QtGui import QPixmap
|
from PyQt5.QtGui import QPixmap
|
||||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
|
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
|
||||||
|
|
Loading…
Reference in a new issue