steam-review-scraper / steam_review_scraper / review_model.py
review_model.py
Raw

class SteamReview(object):
    """Class storing steam review data."""
    def __init__(
            self,
            id,
            review_url,
            steam_appid,
            **kwargs):
        self.id = id
        self.review_url = review_url
        self.steam_appid = steam_appid

        self.recommended = kwargs.get("recommended", None)
        self.user_name = kwargs.get("user_name", None)
        self.content = kwargs.get("content", None)
        self.hours_played = kwargs.get("hours_played", None)
        self.date_posted = kwargs.get("date_posted", None)
        self.date_updated = kwargs.get("date_updated", None)
        self.games_owned = kwargs.get("games_owned", None)
        self.user_link = kwargs.get("user_link", None)
        self.is_early_access_review = kwargs.get("early_access_review", None)
        self.helpful_amount = kwargs.get("helpful_amount", None)
        self.helpful_total = kwargs.get("helpful_total", None)
        self.lang_key = kwargs.get("lang_key", None)
        self.received_compensation = kwargs.get("received_compensation", False)
        self.responded_by = kwargs.get("responded_by", None)
        self.responded_date = kwargs.get("responded_date", None)

        self.can_be_turned = kwargs.get("can_be_turned", None)
        self.issue_list = kwargs.get("issue_list", None)

    def __eq__(self, other):
        return self.id == other.id

    def __hash__(self):
        return hash(self.id)

    def __str__(self):
        # Because Steam allows all sorts of crazy characters, we need to .encode() the string before printing and writing.
        steam_encoding = "utf-8"
        return "{0}: '{1}' ({2})".format(self.id, self.user_name.encode(steam_encoding), self.review_url)