mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
Merge pull request #81 from KeksPirates/fix/steamrip-scraper-crash
(bug)fix: steamrip scraper freezing whole manager on second search and update notification
This commit is contained in:
@@ -17,12 +17,16 @@ def show_megadb_notification():
|
||||
text="Beware of malicious Ads. Make sure to have an adblocker installed.\n" '<br><a href="https://ublockorigin.com">Visit uBlock Origin</a>',
|
||||
darkmode=False if state.window_transparency else True
|
||||
)
|
||||
|
||||
notification_popup.setTextFormat(Qt.TextFormat.RichText)
|
||||
notification_popup.setTextInteractionFlags(Qt.TextInteractionFlag.TextBrowserInteraction)
|
||||
|
||||
if state.window_transparency is True:
|
||||
notification_popup.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||
|
||||
button = notification_popup.addButton("Don't show again", QMessageBox.ButtonRole.AcceptRole)
|
||||
button.clicked.connect(lambda: setattr(state, "show_megadb_notification", False))
|
||||
|
||||
save_settings(show_megadb_notification=state.show_megadb_notification)
|
||||
notification_popup.exec()
|
||||
|
||||
|
||||
@@ -9,23 +9,22 @@ import webbrowser
|
||||
import requests
|
||||
import time
|
||||
import re
|
||||
import copy
|
||||
|
||||
class SteamripScraper:
|
||||
name = "steamrip"
|
||||
headers = ["Game"]
|
||||
is_magnet = False
|
||||
|
||||
|
||||
def __init__(self):
|
||||
self.cache = { "data": [], "last_fetched": 0 }
|
||||
self.cache_expiry = 300
|
||||
|
||||
def scrape_steamrip_links(self):
|
||||
|
||||
current_time = time.time()
|
||||
|
||||
if self.cache["data"] != [] and (current_time - self.cache["last_fetched"] < self.cache_expiry):
|
||||
return self.cache["data"]
|
||||
if self.cache["data"] and (current_time - self.cache["last_fetched"] < self.cache_expiry):
|
||||
return copy.deepcopy(self.cache["data"])
|
||||
|
||||
try:
|
||||
url = f"https://steamrip.com/games-list-page/"
|
||||
@@ -71,7 +70,7 @@ class SteamripScraper:
|
||||
|
||||
soup = BeautifulSoup(response.text, "html.parser")
|
||||
download_link_elements = soup.find_all("a",class_="shortc-button")
|
||||
download_links = ["buzzheavier", "gofile", "vikingfile", "megadb"]
|
||||
download_links = ["", "", "", ""]
|
||||
|
||||
for download_link in download_link_elements:
|
||||
pure = download_link.attrs.get("href")
|
||||
@@ -89,7 +88,7 @@ class SteamripScraper:
|
||||
ret = []
|
||||
|
||||
for link in download_links:
|
||||
if len(link) != 1:
|
||||
if link != "":
|
||||
ret.append(link)
|
||||
|
||||
return ret
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from PySide6.QtWidgets import QMessageBox
|
||||
from utils.data.state import state
|
||||
import qdarktheme
|
||||
|
||||
class NotificationPopup(QMessageBox):
|
||||
@@ -6,7 +7,10 @@ class NotificationPopup(QMessageBox):
|
||||
super().__init__(parent)
|
||||
|
||||
if darkmode is True:
|
||||
qdarktheme.setup_theme("auto")
|
||||
custom_colors = {}
|
||||
if state.accent_color:
|
||||
custom_colors["primary"] = state.accent_color
|
||||
qdarktheme.setup_theme("auto", custom_colors=custom_colors if custom_colors else None)
|
||||
|
||||
self.setIcon(QMessageBox.Icon.Information)
|
||||
self.setWindowTitle(title)
|
||||
|
||||
Reference in New Issue
Block a user