Use the requests library consistently
This commit is contained in:
@@ -18,12 +18,12 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import os
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
from shutil import copyfile
|
||||
from sqlite3 import connect
|
||||
from time import time
|
||||
|
||||
import requests
|
||||
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]:
|
||||
tmp_file = Gio.File.new_tmp(None)[0]
|
||||
try:
|
||||
with urllib.request.urlopen(row[3] or row[2], timeout=5) as open_file:
|
||||
Path(tmp_file.get_path()).write_bytes(open_file.read())
|
||||
except urllib.error.URLError:
|
||||
with requests.get(row[3] or row[2], timeout=5) as cover:
|
||||
cover.raise_for_status()
|
||||
Path(tmp_file.get_path()).write_bytes(cover.content)
|
||||
except requests.exceptions.RequestException:
|
||||
task.return_value((values, None))
|
||||
return
|
||||
|
||||
|
||||
@@ -17,18 +17,17 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
from time import time
|
||||
|
||||
import requests
|
||||
from gi.repository import Gio
|
||||
|
||||
|
||||
def update_values_from_data(content, values):
|
||||
basic_data = json.loads(content)[values["appid"]]
|
||||
basic_data = content[values["appid"]]
|
||||
if not basic_data["success"]:
|
||||
values["blacklisted"] = True
|
||||
else:
|
||||
@@ -80,12 +79,13 @@ def get_game(task, datatypes, current_time, parent_widget, appmanifest, steam_di
|
||||
)
|
||||
|
||||
try:
|
||||
with urllib.request.urlopen(
|
||||
with requests.get(
|
||||
f'https://store.steampowered.com/api/appdetails?appids={values["appid"]}',
|
||||
timeout=5,
|
||||
) as open_file:
|
||||
content = open_file.read().decode("utf-8")
|
||||
except urllib.error.URLError:
|
||||
open_file.raise_for_status()
|
||||
content = open_file.json()
|
||||
except requests.exceptions.RequestException:
|
||||
task.return_value((values, image_path if image_path.exists() else None))
|
||||
return
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ from pathlib import Path
|
||||
|
||||
import requests
|
||||
from gi.repository import Gio
|
||||
from steamgrid import SteamGridDB, http
|
||||
|
||||
from .create_dialog import create_dialog
|
||||
from .save_cover import save_cover
|
||||
@@ -11,7 +10,6 @@ from .save_cover import save_cover
|
||||
class SGDBSave:
|
||||
def __init__(self, parent_widget, games, importer=None):
|
||||
self.parent_widget = parent_widget
|
||||
self.sgdb = SteamGridDB(self.parent_widget.schema.get_string("sgdb-key"))
|
||||
self.importer = importer
|
||||
self.exception = None
|
||||
|
||||
@@ -41,29 +39,47 @@ class SGDBSave:
|
||||
if not self.importer:
|
||||
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:
|
||||
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:
|
||||
task.return_value(game[0])
|
||||
return
|
||||
except http.HTTPException as exception:
|
||||
self.exception = str(exception)
|
||||
if search_result.status_code != 200:
|
||||
self.exception = str(
|
||||
search_result.json()["errors"][0]
|
||||
if "errors" in tuple(search_result.json())
|
||||
else search_result.status_code
|
||||
)
|
||||
task.return_value(game[0])
|
||||
return
|
||||
|
||||
try:
|
||||
grid = self.sgdb.get_grids_by_gameid(
|
||||
[search_result[0].id], is_nsfw=False
|
||||
)[0]
|
||||
except (TypeError, IndexError):
|
||||
headers["dimensions"] = "600x900"
|
||||
grid = requests.get(
|
||||
f'{url}grids/game/{search_result.json()["data"][0]["id"]}',
|
||||
headers=headers,
|
||||
timeout=5,
|
||||
)
|
||||
except (requests.exceptions.RequestException, IndexError):
|
||||
task.return_value(game[0])
|
||||
return
|
||||
|
||||
tmp_file = Gio.File.new_tmp(None)[0]
|
||||
|
||||
try:
|
||||
response = requests.get(str(grid), timeout=5)
|
||||
except requests.exceptions.RequestException:
|
||||
response = requests.get(
|
||||
grid.json()["data"][0]["url"],
|
||||
timeout=5,
|
||||
)
|
||||
except (requests.exceptions.RequestException, IndexError):
|
||||
task.return_value(game[0])
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user