فهرست منبع

Add script for skyscraper

Colin Powell 3 سال پیش
والد
کامیت
ca70996ee8
2فایلهای تغییر یافته به همراه26 افزوده شده و 0 حذف شده
  1. 8 0
      emus/settings.py
  2. 18 0
      emus/utils.py

+ 8 - 0
emus/settings.py

@@ -124,3 +124,11 @@ STATIC_URL = "/static/"
 MEDIA_URL = "/media/"
 MEDIA_ROOT = os.path.join(BASE_DIR, "media")
 ROMS_DIR = os.path.join(MEDIA_ROOT, "roms")
+
+SCRAPER_CONFIG = {
+    "site": os.getenv("SCRAPER_SITE", "screenscraper"),
+    "user": os.getenv("SCRAPER_USER", None),
+    "pass": os.getenv("SCRAPER_PASS", None),
+    "threads": os.getenv("SCRAPER_THREADS", 2),
+    "bin_path": os.getenv("SCRAPER_BINPATH", "Skyscraper"),
+}

+ 18 - 0
emus/utils.py

@@ -1,7 +1,25 @@
+import os
 from enum import Enum
 
+from django.conf import settings
+
 
 class ChoiceEnum(Enum):
     @classmethod
     def choices(cls):
         return tuple((x.name, x.value) for x in cls)
+
+
+def skyscrape_console(game_system_slug):
+    scraper_config = settings.SCRAPER_CONFIG
+    binary = scraper_config["bin_path"]
+    site = scraper_config["site"]
+    user = scraper_config["user"]
+    password = scraper_config["pass"]
+    threads = scraper_config["threads"]
+
+    scrape_cmd = f"{binary} -s {site} -u {user}:{password} -t {threads} -f emulationstation -p {game_system_slug}"
+    load_cmd = f"{binary} -f emulationstation -p {game_system_slug}"
+    scrape_output = os.popen(scrape_cmd)
+    load_output = os.popen(load_cmd)
+    return scrape_output, load_output