def download_free_apps(method='price', verbose=True): if method == 'price': data = steamspypi.load() free_apps = [ int(game['appid']) for game in data.values() if game['initialprice'] is not None # I don't know what to do in the rare case that price is None. and int(game['initialprice']) == 0 ] else: data_request = dict() if method == 'genre': data_request['request'] = 'genre' data_request['genre'] = 'Free to Play' else: data_request['request'] = 'tag' data_request['tag'] = 'Free to Play' data = steamspypi.download(data_request) free_apps = [int(app_id) for app_id in data.keys()] if verbose: print('Free apps (based on {}): {}'.format(method, len(free_apps))) return free_apps
def download_steam_spy_data(json_filename="steamspy.json", genre=None): # Data folder data_path = "data/" # Reference of the following line: https://stackoverflow.com/a/14364249 pathlib.Path(data_path).mkdir(parents=True, exist_ok=True) data_filename = data_path + json_filename try: with open(data_filename, 'r', encoding="utf8") as in_json_file: data = json.load(in_json_file) except FileNotFoundError: print("Downloading and caching data from SteamSpy") if genre is None: data = steamspypi.load() else: data_request = dict() data_request['request'] = 'genre' data_request['genre'] = genre data = steamspypi.download(data_request) steamspypi.print_data(data, data_filename) return data
def get_top_100_app_ids(): data_request = dict() data_request["request"] = "top100in2weeks" data = steamspypi.download(data_request) top_100_app_ids = list(data.keys()) return top_100_app_ids
def get_app_ids_which_app_name_contains(name_str='Half-Life'): data_request = dict() data_request['request'] = 'all' data = steamspypi.download(data_request) app_ids = sorted( [data[d]['appid'] for d in data.keys() if name_str in data[d]['name']]) return app_ids
def test_print_data(self): data_request = dict() data_request["request"] = "appdetails" data_request["appid"] = "730" try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} self.assertTrue(steamspypi.print_data(data))
def get_top_100_app_ids(): # Reference: https://github.com/woctezuma/download-steam-banners/blob/master/retrieve_similar_features.py data_request = dict() data_request['request'] = 'top100in2weeks' data = steamspypi.download(data_request) top_100_app_ids = list(int(app_id) for app_id in data.keys()) return top_100_app_ids
def detect_review_language_for_top_100(verbose=True): data_request = dict() data_request['request'] = 'top100in2weeks' data = steamspypi.download(data_request) app_ids = list(data.keys()) for app_id in app_ids: _ = detect_review_language(app_id, verbose=verbose) return
def test_download_top100forever(self): data_request = dict() data_request["request"] = "top100forever" try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} print("[request = {}] #games = {}".format(data_request["request"], len(data))) self.assertGreater(len(data), 0)
def test_download_tag(self, tag="Early Access"): data_request = dict() data_request["request"] = "tag" data_request["tag"] = tag try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} print("[tag = {}] #games = {}".format(tag, len(data))) self.assertGreater(len(data), 0)
def test_download_genre(self, genre="Early Access"): data_request = dict() data_request["request"] = "genre" data_request["genre"] = genre try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} print("[genre = {}] #games = {}".format(genre, len(data))) self.assertGreater(len(data), 0)
def test_download_all(self): data_request = dict() data_request["request"] = "all" data_request["page"] = "0" try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} print("[Steam catalog] #games = {}".format(len(data))) self.assertGreater(len(data), 0)
def download_app_details_for_top_100(): # For each of the top 100 most played games, download app details data_request = dict() data_request['request'] = 'top100in2weeks' data = steamspypi.download(data_request) app_ids = list(data.keys()) for app_id in app_ids: (_, _, _) = steampi.api.load_app_details(app_id) return
def download_reviews_for_top_100(): # For each of the top 100 most played games, download English reviews, sorted by helpfulness, for the past 4 weeks data_request = dict() data_request['request'] = 'top100in2weeks' data = steamspypi.download(data_request) app_ids = list(data.keys()) request_params = dict() request_params['language'] = 'english' request_params['filter'] = 'recent' request_params['day_range'] = '28' # focus on reviews which were published during the past four weeks steamreviews.download_reviews_for_app_id_batch(app_ids, chosen_request_params=request_params) return
def test_download_appdetails(self, appid=730): data_request = dict() data_request["request"] = "appdetails" data_request["appid"] = str(appid) try: data = steamspypi.download(data_request) except json.decoder.JSONDecodeError: data = {"name": self.get_api_error_message()} print("[appID = {}] game name = {}".format(appid, data["name"])) expected_game_name = "Counter-Strike: Global Offensive" self.assertIn(data["name"], [expected_game_name, self.get_api_error_message()])
def main(): app_ids = [get_artifact_app_id()] data_request = dict() data_request['request'] = 'top100in2weeks' data = steamspypi.download(data_request) app_ids += list(data.keys()) for app_id in app_ids: english_review_dict = filter_reviews(app_id) concatenated_reviews = concatenate_reviews_as_a_large_text( english_review_dict) with open(get_output_file_name(app_id), 'w', encoding='utf8') as f: print(concatenated_reviews, file=f) return
def download_top100(request="top100in2weeks"): data_request = {"request": request} data = steamspypi.download(data_request) return data
def download_tag(tag): data_request = {"request": "tag", "tag": tag} data = steamspypi.download(data_request) return data
def download_appdetails(appid): data_request = {"request": "appdetails", "appid": appid} data = steamspypi.download(data_request) return data
def download_genre(genre): data_request = {"request": "genre", "genre": genre} data = steamspypi.download(data_request) return data
def test_cancel_download(self): data_request = dict() data_request["request"] = "Hello, world!" self.assertEqual(len(steamspypi.download(data_request)), 0)