Module itchio.User

Expand source code
from itchio.Session import Session


class User:
    """
    An Object representing the User ressource
    """

    def __init__(
            self,
            username: str,
            gamer: bool,
            display_name: str,
            cover_url: str,
            url: str,
            press_user: bool,
            developer: bool,
            id: int,
            session: Session):
        self.username = username
        self.gamer = gamer
        self.display_name = display_name
        self.cover_url = cover_url
        self.url = url
        self.press_user = press_user
        self.developer = developer
        self.id = id
        self.session = session

    def sync(self) -> None:
        """
        Sync this object with the information in the API
        """
        data = self.session.get("me")
        new_user = self.parse_from_dict(data["user"], self.session)
        self.__dict__.update(new_user.__dict__)

    @classmethod
    def parse_from_dict(cls, data: dict, session: Session):
        # If there is no 'display_name', the value is the same as the username
        if "display_name" not in data:
            data["display_name"] = data["username"]

        return cls(
            username=data["username"],
            gamer=data["gamer"],
            display_name=data["display_name"],
            cover_url=data["cover_url"],
            url=data["url"],
            press_user=data["press_user"],
            developer=data["developer"],
            id=data["id"],
            session=session
        )

Classes

class User (username: str, gamer: bool, display_name: str, cover_url: str, url: str, press_user: bool, developer: bool, id: int, session: Session)

An Object representing the User ressource

Expand source code
class User:
    """
    An Object representing the User ressource
    """

    def __init__(
            self,
            username: str,
            gamer: bool,
            display_name: str,
            cover_url: str,
            url: str,
            press_user: bool,
            developer: bool,
            id: int,
            session: Session):
        self.username = username
        self.gamer = gamer
        self.display_name = display_name
        self.cover_url = cover_url
        self.url = url
        self.press_user = press_user
        self.developer = developer
        self.id = id
        self.session = session

    def sync(self) -> None:
        """
        Sync this object with the information in the API
        """
        data = self.session.get("me")
        new_user = self.parse_from_dict(data["user"], self.session)
        self.__dict__.update(new_user.__dict__)

    @classmethod
    def parse_from_dict(cls, data: dict, session: Session):
        # If there is no 'display_name', the value is the same as the username
        if "display_name" not in data:
            data["display_name"] = data["username"]

        return cls(
            username=data["username"],
            gamer=data["gamer"],
            display_name=data["display_name"],
            cover_url=data["cover_url"],
            url=data["url"],
            press_user=data["press_user"],
            developer=data["developer"],
            id=data["id"],
            session=session
        )

Static methods

def parse_from_dict(data: dict, session: Session)
Expand source code
@classmethod
def parse_from_dict(cls, data: dict, session: Session):
    # If there is no 'display_name', the value is the same as the username
    if "display_name" not in data:
        data["display_name"] = data["username"]

    return cls(
        username=data["username"],
        gamer=data["gamer"],
        display_name=data["display_name"],
        cover_url=data["cover_url"],
        url=data["url"],
        press_user=data["press_user"],
        developer=data["developer"],
        id=data["id"],
        session=session
    )

Methods

def sync(self) ‑> None

Sync this object with the information in the API

Expand source code
def sync(self) -> None:
    """
    Sync this object with the information in the API
    """
    data = self.session.get("me")
    new_user = self.parse_from_dict(data["user"], self.session)
    self.__dict__.update(new_user.__dict__)