From 38f13d114b33fe19130e843cf0a7f9485f8ab45f Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Sun, 17 Jan 2021 11:58:58 +0100 Subject: [PATCH] Added check to the multi-scraper that some content type has actually been selected for scraping. --- es-app/src/guis/GuiScraperMenu.cpp | 56 +++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/es-app/src/guis/GuiScraperMenu.cpp b/es-app/src/guis/GuiScraperMenu.cpp index 69e2b69a5..25b25887f 100644 --- a/es-app/src/guis/GuiScraperMenu.cpp +++ b/es-app/src/guis/GuiScraperMenu.cpp @@ -556,12 +556,66 @@ void GuiScraperMenu::pressedStart() void GuiScraperMenu::start() { + if (mSystems->getSelectedObjects().empty()) { + mWindow->pushGui(new GuiMsgBox(mWindow, getHelpStyle(), + "PLEASE SELECT AT LEAST ONE SYSTEM TO SCRAPE")); + return; + } + + bool contentToScrape = false; + std::string scraperService = Settings::getInstance()->getString("Scraper"); + + // Check if there is actually any type of content selected for scraping. + do { + if (Settings::getInstance()->getBool("ScrapeGameNames")) { + contentToScrape = true; + break; + } + if (scraperService == "screenscraper" && + Settings::getInstance()->getBool("ScrapeRatings")) { + contentToScrape = true; + break; + } + if (Settings::getInstance()->getBool("ScrapeMetadata")) { + contentToScrape = true; + break; + } + if (scraperService == "screenscraper" && + Settings::getInstance()->getBool("ScrapeVideos")) { + contentToScrape = true; + break; + } + if (Settings::getInstance()->getBool("ScrapeScreenshots")) { + contentToScrape = true; + break; + } + if (Settings::getInstance()->getBool("ScrapeCovers")) { + contentToScrape = true; + break; + } + if (Settings::getInstance()->getBool("ScrapeMarquees")) { + contentToScrape = true; + break; + } + if (scraperService == "screenscraper" && + Settings::getInstance()->getBool("Scrape3DBoxes")) { + contentToScrape = true; + break; + } + } while (0); + + if (!contentToScrape) { + mWindow->pushGui(new GuiMsgBox(mWindow, getHelpStyle(), + "PLEASE SELECT AT LEAST ONE CONTENT TYPE TO SCRAPE")); + return; + } + std::queue searches = getSearches(mSystems->getSelectedObjects(), mFilters->getSelected()); if (searches.empty()) { mWindow->pushGui(new GuiMsgBox(mWindow, getHelpStyle(), - "NO GAMES TO SCRAPE")); + "ALL GAMES WERE FILTERED, NOTHING TO SCRAPE")); } else { GuiScraperMulti* gsm = new GuiScraperMulti(mWindow, searches,