from DatabaseHandler import DatabaseHandler as db filmIDDatabase = db.loadDatabase('idDatabase.csv') db.generateFilmInfoDatabase(filmIDDatabase, 'infoDatabase.csv')
def run(): if len(sys.argv) < 3: printUsage() command = sys.argv[1] inputFilePath = sys.argv[2] if not os.path.isfile(inputFilePath): print(inputFilePath, 'could not be found.') sys.exit(1) with open(inputFilePath) as json_file: data = json.load(json_file) filmIdDatabasePath = data['filmIdDatabase'] filmInfoDatabasePath = data['filmInfoDatabase'] likedFilmsPath = data['likedFilms'] dislikedFilmsPath = data['dislikedFilms'] outputFilePath = data['outputFile'] maxCount = int(data['count']) fileNotFound = False if command == 'updateIdDatabase' and not os.path.isfile(filmIdDatabasePath): fileNotFound = True print(filmIdDatabasePath, 'could not be found.') if (command == 'suggestFilms' or command == 'printSuggestions') and not os.path.isfile(filmInfoDatabasePath): fileNotFound = True print(filmInfoDatabasePath, 'could not be found.') if command == 'suggestFilms' and not os.path.isfile(likedFilmsPath): fileNotFound = True print(likedFilmsPath, 'could not be found.') # I may use films that are disliked by the user in the future to make suggestions # if not os.path.isfile(dislikedFilmsPath): # fileNotFound = True # print(dislikedFilmsPath, 'could not be found.') if command == 'printSuggestions' and not os.path.isfile(outputFilePath): fileNotFound = True print(outputFilePath, 'could not be found.') if fileNotFound: sys.exit(1) # Check the user parameters if command == 'suggestFilms': print('Making suggestions, please wait. This should only take a couple seconds.') suggestedFilms = ms.getTopSuggestedFilms(likedFilmsPath, filmInfoDatabasePath, maxCount) db.saveDatabase(suggestedFilms, outputFilePath) print('Done! Suggestions were saved to ' + outputFilePath + '.') elif command == 'updateIdDatabase': db.generateFilmDatabase(filmIdDatabasePath) elif command == 'updateInfoDatabase': filmIdDatabase = db.loadDatabase(filmIdDatabasePath) db.generateFilmInfoDatabase(filmIdDatabase, filmInfoDatabasePath) elif command == 'printSuggestions': printSuggestions(outputFilePath, filmInfoDatabasePath) else: printUsage()