Use the requests library consistently
This commit is contained in:
5
.github/workflows/windows.yml
vendored
5
.github/workflows/windows.yml
vendored
@@ -15,14 +15,13 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
msystem: UCRT64
|
msystem: UCRT64
|
||||||
update: true
|
update: true
|
||||||
install: mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-python-yaml mingw-w64-ucrt-x86_64-python-pip mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-ca-certificates mingw-w64-ucrt-x86_64-meson git
|
install: mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-python-yaml mingw-w64-ucrt-x86_64-python-requests mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-ca-certificates mingw-w64-ucrt-x86_64-meson git
|
||||||
- name: Compile
|
- name: Compile
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
pip install python-steamgriddb
|
|
||||||
meson setup _build
|
meson setup _build
|
||||||
ninja -C _build install
|
ninja -C _build install
|
||||||
pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-python-pip mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git
|
pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git
|
||||||
find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete
|
find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete
|
||||||
- name: "Inno Setup"
|
- name: "Inno Setup"
|
||||||
run: iscc ".\.windows\Cartridges.iss"
|
run: iscc ".\.windows\Cartridges.iss"
|
||||||
|
|||||||
@@ -36,55 +36,57 @@
|
|||||||
],
|
],
|
||||||
"modules" : [
|
"modules" : [
|
||||||
{
|
{
|
||||||
"name": "python3-pyyaml",
|
"name": "python3-modules",
|
||||||
"buildsystem": "simple",
|
"buildsystem": "simple",
|
||||||
"build-commands": [
|
"build-commands": [],
|
||||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyyaml\" --no-build-isolation"
|
"modules": [
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
{
|
||||||
"type": "file",
|
"name": "python3-pyyaml",
|
||||||
"url": "https://files.pythonhosted.org/packages/36/2b/61d51a2c4f25ef062ae3f74576b01638bebad5e045f747ff12643df63844/PyYAML-6.0.tar.gz",
|
"buildsystem": "simple",
|
||||||
"sha256": "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
|
"build-commands": [
|
||||||
}
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pyyaml\" --no-build-isolation"
|
||||||
]
|
],
|
||||||
},
|
"sources": [
|
||||||
{
|
{
|
||||||
"name": "python3-python-steamgriddb",
|
"type": "file",
|
||||||
"buildsystem": "simple",
|
"url": "https://files.pythonhosted.org/packages/36/2b/61d51a2c4f25ef062ae3f74576b01638bebad5e045f747ff12643df63844/PyYAML-6.0.tar.gz",
|
||||||
"build-commands": [
|
"sha256": "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
|
||||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"python-steamgriddb\" --no-build-isolation"
|
}
|
||||||
],
|
]
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "file",
|
|
||||||
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
|
|
||||||
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "file",
|
"name": "python3-requests",
|
||||||
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
|
"buildsystem": "simple",
|
||||||
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
|
"build-commands": [
|
||||||
},
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"requests\" --no-build-isolation"
|
||||||
{
|
],
|
||||||
"type": "file",
|
"sources": [
|
||||||
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
|
{
|
||||||
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
|
"type": "file",
|
||||||
},
|
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
|
||||||
{
|
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
|
||||||
"type": "file",
|
},
|
||||||
"url": "https://files.pythonhosted.org/packages/d6/90/a84d927799ca177d4f7a111f99fee0a3f19da63e42c3b325c9c1bfe3bba0/python-steamgriddb-1.0.5.tar.gz",
|
{
|
||||||
"sha256": "036db7bb09865da73b40b68cf04fb9675cd18b4908275092d91f37bf16245069"
|
"type": "file",
|
||||||
},
|
"url": "https://files.pythonhosted.org/packages/ff/d7/8d757f8bd45be079d76309248845a04f09619a7b17d6dfc8c9ff6433cac2/charset-normalizer-3.1.0.tar.gz",
|
||||||
{
|
"sha256": "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
|
||||||
"type": "file",
|
},
|
||||||
"url": "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl",
|
{
|
||||||
"sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"
|
"type": "file",
|
||||||
},
|
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
|
||||||
{
|
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
|
||||||
"type": "file",
|
},
|
||||||
"url": "https://files.pythonhosted.org/packages/7b/f5/890a0baca17a61c1f92f72b81d3c31523c99bec609e60c292ea55b387ae8/urllib3-1.26.15-py2.py3-none-any.whl",
|
{
|
||||||
"sha256": "aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl",
|
||||||
|
"sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/7b/f5/890a0baca17a61c1f92f72b81d3c31523c99bec609e60c292ea55b387ae8/urllib3-1.26.15-py2.py3-none-any.whl",
|
||||||
|
"sha256": "aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -18,12 +18,12 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import urllib.request
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from sqlite3 import connect
|
from sqlite3 import connect
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
|
import requests
|
||||||
from gi.repository import GdkPixbuf, Gio
|
from gi.repository import GdkPixbuf, Gio
|
||||||
|
|
||||||
|
|
||||||
@@ -53,9 +53,10 @@ def get_game(task, current_time, parent_widget, row):
|
|||||||
if row[3] or row[2]:
|
if row[3] or row[2]:
|
||||||
tmp_file = Gio.File.new_tmp(None)[0]
|
tmp_file = Gio.File.new_tmp(None)[0]
|
||||||
try:
|
try:
|
||||||
with urllib.request.urlopen(row[3] or row[2], timeout=5) as open_file:
|
with requests.get(row[3] or row[2], timeout=5) as cover:
|
||||||
Path(tmp_file.get_path()).write_bytes(open_file.read())
|
cover.raise_for_status()
|
||||||
except urllib.error.URLError:
|
Path(tmp_file.get_path()).write_bytes(cover.content)
|
||||||
|
except requests.exceptions.RequestException:
|
||||||
task.return_value((values, None))
|
task.return_value((values, None))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -17,18 +17,17 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import json
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import urllib.request
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
|
import requests
|
||||||
from gi.repository import Gio
|
from gi.repository import Gio
|
||||||
|
|
||||||
|
|
||||||
def update_values_from_data(content, values):
|
def update_values_from_data(content, values):
|
||||||
basic_data = json.loads(content)[values["appid"]]
|
basic_data = content[values["appid"]]
|
||||||
if not basic_data["success"]:
|
if not basic_data["success"]:
|
||||||
values["blacklisted"] = True
|
values["blacklisted"] = True
|
||||||
else:
|
else:
|
||||||
@@ -80,12 +79,13 @@ def get_game(task, datatypes, current_time, parent_widget, appmanifest, steam_di
|
|||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with urllib.request.urlopen(
|
with requests.get(
|
||||||
f'https://store.steampowered.com/api/appdetails?appids={values["appid"]}',
|
f'https://store.steampowered.com/api/appdetails?appids={values["appid"]}',
|
||||||
timeout=5,
|
timeout=5,
|
||||||
) as open_file:
|
) as open_file:
|
||||||
content = open_file.read().decode("utf-8")
|
open_file.raise_for_status()
|
||||||
except urllib.error.URLError:
|
content = open_file.json()
|
||||||
|
except requests.exceptions.RequestException:
|
||||||
task.return_value((values, image_path if image_path.exists() else None))
|
task.return_value((values, image_path if image_path.exists() else None))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from pathlib import Path
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
from gi.repository import Gio
|
from gi.repository import Gio
|
||||||
from steamgrid import SteamGridDB, http
|
|
||||||
|
|
||||||
from .create_dialog import create_dialog
|
from .create_dialog import create_dialog
|
||||||
from .save_cover import save_cover
|
from .save_cover import save_cover
|
||||||
@@ -11,7 +10,6 @@ from .save_cover import save_cover
|
|||||||
class SGDBSave:
|
class SGDBSave:
|
||||||
def __init__(self, parent_widget, games, importer=None):
|
def __init__(self, parent_widget, games, importer=None):
|
||||||
self.parent_widget = parent_widget
|
self.parent_widget = parent_widget
|
||||||
self.sgdb = SteamGridDB(self.parent_widget.schema.get_string("sgdb-key"))
|
|
||||||
self.importer = importer
|
self.importer = importer
|
||||||
self.exception = None
|
self.exception = None
|
||||||
|
|
||||||
@@ -41,29 +39,47 @@ class SGDBSave:
|
|||||||
if not self.importer:
|
if not self.importer:
|
||||||
self.parent_widget.loading = game[0]
|
self.parent_widget.loading = game[0]
|
||||||
|
|
||||||
|
url = "https://www.steamgriddb.com/api/v2/"
|
||||||
|
headers = {
|
||||||
|
"Authorization": f'Bearer {self.parent_widget.schema.get_string("sgdb-key")}'
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
search_result = self.sgdb.search_game(game[1])
|
search_result = requests.get(
|
||||||
|
f"{url}search/autocomplete/{game[1]}",
|
||||||
|
headers=headers,
|
||||||
|
timeout=5,
|
||||||
|
)
|
||||||
|
search_result.raise_for_status()
|
||||||
except requests.exceptions.RequestException:
|
except requests.exceptions.RequestException:
|
||||||
task.return_value(game[0])
|
if search_result.status_code != 200:
|
||||||
return
|
self.exception = str(
|
||||||
except http.HTTPException as exception:
|
search_result.json()["errors"][0]
|
||||||
self.exception = str(exception)
|
if "errors" in tuple(search_result.json())
|
||||||
|
else search_result.status_code
|
||||||
|
)
|
||||||
task.return_value(game[0])
|
task.return_value(game[0])
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
grid = self.sgdb.get_grids_by_gameid(
|
headers["dimensions"] = "600x900"
|
||||||
[search_result[0].id], is_nsfw=False
|
grid = requests.get(
|
||||||
)[0]
|
f'{url}grids/game/{search_result.json()["data"][0]["id"]}',
|
||||||
except (TypeError, IndexError):
|
headers=headers,
|
||||||
|
timeout=5,
|
||||||
|
)
|
||||||
|
except (requests.exceptions.RequestException, IndexError):
|
||||||
task.return_value(game[0])
|
task.return_value(game[0])
|
||||||
return
|
return
|
||||||
|
|
||||||
tmp_file = Gio.File.new_tmp(None)[0]
|
tmp_file = Gio.File.new_tmp(None)[0]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = requests.get(str(grid), timeout=5)
|
response = requests.get(
|
||||||
except requests.exceptions.RequestException:
|
grid.json()["data"][0]["url"],
|
||||||
|
timeout=5,
|
||||||
|
)
|
||||||
|
except (requests.exceptions.RequestException, IndexError):
|
||||||
task.return_value(game[0])
|
task.return_value(game[0])
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user