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)