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)