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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 5
0
    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
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
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)
Ejemplo n.º 10
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)
Ejemplo n.º 11
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)
Ejemplo n.º 12
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
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
    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
Ejemplo n.º 16
0
def download_top100(request="top100in2weeks"):
    data_request = {"request": request}
    data = steamspypi.download(data_request)

    return data
Ejemplo n.º 17
0
def download_tag(tag):
    data_request = {"request": "tag", "tag": tag}
    data = steamspypi.download(data_request)

    return data
Ejemplo n.º 18
0
def download_appdetails(appid):
    data_request = {"request": "appdetails", "appid": appid}
    data = steamspypi.download(data_request)

    return data
Ejemplo n.º 19
0
def download_genre(genre):
    data_request = {"request": "genre", "genre": genre}
    data = steamspypi.download(data_request)

    return data
Ejemplo n.º 20
0
    def test_cancel_download(self):
        data_request = dict()
        data_request["request"] = "Hello, world!"

        self.assertEqual(len(steamspypi.download(data_request)), 0)