def __init__(<EOL>self, name=None, user=None, password=None, key=None, subscribe=True, other=None<EOL>):
self.name = name<EOL>self.password = password or "<STR_LIT>"<EOL>self.key = key or "<STR_LIT>"<EOL>self.admin = self.staff = self.owner = self.janitor = False<EOL>self.__user_info = dict()<EOL>self.__user_count = <NUM_LIT:0><EOL>self.__files = OrderedDict()<EOL>self.__upload_count = <NUM_LIT:0><EOL>self.__room_score = <NUM_LIT:0.0><EOL>self.config = Config()<EOL>self.conn = Connection(self)<EOL>if other:<EOL><INDENT>self.conn.cookies.update(other.conn.cookies)<EOL><DEDENT>try:<EOL><INDENT>self.room_id, owner, checksum = self.__get_config()<EOL>if not subscribe and not user:<EOL><INDENT>if other and other.user and other.user.name:<EOL><INDENT>user = other.user.name<EOL><DEDENT>else:<EOL><INDENT>user = random_id(<NUM_LIT:6>)<EOL><DEDENT><DEDENT>self.user = User(user, self.conn, self.config.max_nick)<EOL>self.conn.connect(<EOL>username=user, checksum=checksum, password=self.password, key=self.key<EOL>)<EOL>if not owner or self.user.nick is None:<EOL><INDENT>self.owner = False<EOL><DEDENT>else:<EOL><INDENT>self.owner = bool(owner.lower() == self.user.nick.lower())<EOL><DEDENT>if subscribe and other and other.user and other.user.logged_in:<EOL><INDENT>self.user.login_transplant(other.user)<EOL><DEDENT>if self.conn.exception:<EOL><INDENT>raise self.conn.exception<EOL><DEDENT><DEDENT>except Exception:<EOL><INDENT>self.close()<EOL>raise<EOL><DEDENT>
name is the room name, if none then makes a new room
        user is your user name, if none then generates one for you