import json from LoggerHelper import getLogger, getExceptionLogger from StoreHelper import searchForGames, registerGame, searchForGamesByScraper from constants import CONST_DlcQueriesFilePath, CONST_GamesQueriesFilePath from DatabaseHelper import GameDbObject from DiscordNotifier import notifyGameOnDiscord from CommonOperations import arePriceConditionsMetForNotification, isTheNsuidPresentInGameSettings, loadCsv logger = getLogger() exceptionsLogger = getExceptionLogger def updateDatasFromQueries(): updateGamesDatasFromQueries() #updateDlcDatasFromQueries() def updateGamesDatasFromQueries(): queriesList = getQueriesFromFile(mediaType="GAME") for query in queriesList: #games = searchForGames(query) games = searchForGamesByScraper(query) registerGame(games) def updateDlcDatasFromQueries(): queriesList = getQueriesFromFile(mediaType="DLC") for query in queriesList: games = searchForGames(query, mediaType="DLC") registerGame(games) def getQueriesFromFile(mediaType="GAME"): if(mediaType == "GAME"): queriesFile = CONST_GamesQueriesFilePath() elif(mediaType == "DLC"): queriesFile = CONST_DlcQueriesFilePath() queriesList = [] try: with open(queriesFile) as f: queriesList = f.read().splitlines() except Exception as err: logMessage = "Unable to open and/or read the file " + queriesFile logger.error(logMessage) exceptionsLogger.exception(str(err)) return queriesList def notifyAboutGamesInSales(): gamesSettings = loadCsv() for gameInSales in GameDbObject.select().where(GameDbObject.price_has_discount == True): strMessage = "Game : " + gameInSales.title + " (" + gameInSales.nsuid + ") Current Price : " + str(gameInSales.price_discounted) print(strMessage) isInSettings = isTheNsuidPresentInGameSettings(gamesSettings, gameInSales.nsuid) if(isInSettings == True): priceConditions = arePriceConditionsMetForNotification(gamesSettings, gameInSales.nsuid, gameInSales.price_discounted, gameInSales.price_discount_percentage) if(priceConditions == True): a = 0 notifyGameOnDiscord(gameInSales) def loadGamesInSales(): for gameInSales in GameDbObject.select().where(GameDbObject.price_has_discount == True): print(gameInSales.price_has_discount) notifyGameOnDiscord(gameInSales) a = "b" def exportGamesInJson(): gamesToExport = list(GameDbObject.select().where(GameDbObject.price_regular > 0).dicts()) json_data = json.dumps(gamesToExport, default=str, ensure_ascii=False) with open('./output.json', 'w', encoding="utf-8") as f: f.write(json_data) a = "b" exportGamesInJson()