def _get_localpart(alias: RoomAlias) -> str: if len(alias) == 0: raise ValueError("Alias is empty") elif alias[0] != "#": raise ValueError("Aliases start with #") try: sep = alias.index(":") except ValueError as e: raise ValueError("Alias must contain domain separator") from e if sep == len(alias) - 1: raise ValueError("Alias must contain domain") return alias[1:sep]
def alias(self) -> Optional[RoomAlias]: if not self.username: return None return RoomAlias(f"#{self.alias_localpart}:{self.hs_domain}")