"""The Great Escape model objects. Note that, depending on the forum software, terms might have different meanings. For example, sometimes "board" refers to the entire site and "forum" to a subsection. """ # pylint: disable=too-few-public-methods, too-many-arguments class Forum(object): """Forum represents an entire web forum.""" def __init__(self, title=None): self.title = title self.users = [] self.categories = [] class Post(object): """Post represents a singular post in a thread.""" def __init__(self, title=None, body=None, author=None, timestamp=None): self.title = title self.body = body self.author = author self.timestamp = timestamp class Thread(object): """Thread represents a thread, or topic, in a board, on a forum.""" def __init__(self, title=None): self.title = title self.children = [] class User(object): """User represents an individual user of a forum.""" def __init__(self, name=None, signature=None, avatar=None, title=None, subtitle=None): self.name = name self.signature = signature self.title = title self.subtitle = subtitle self.avatar = avatar class Category(object): """Category represents a category of boards. Note however in some forum software categories are a type of board.""" def __init__(self, title=None, description=None): self.title = title self.description = description self.children = [] class Board(object): """Board represents a board which contains threads.""" def __init__(self, title=None, description=None): self.title = title self.description = description self.children = []