diff --git a/scratchattach/site/project.py b/scratchattach/site/project.py index e7d5e4ed..60f28232 100644 --- a/scratchattach/site/project.py +++ b/scratchattach/site/project.py @@ -9,7 +9,7 @@ import warnings import zipfile from io import BytesIO -from typing import Callable, Union +from typing import Callable, Union, cast from dataclasses import dataclass, field from typing import Any, Optional @@ -185,11 +185,11 @@ def is_shared(self): Returns: boolean: Returns whether the project is currently shared """ - try: - p = get_project(self.id) - return isinstance(p, Project) - except exceptions.ProjectNotFound: + response = requests.get(f"https://api.scratch.mit.edu/projects/{self.id}") + if response.status_code == 404: return False + response_json = cast(ProjectDict, response.json()) + return response_json["is_published"] def raw_json_or_empty(self) -> dict[str, Any]: return empty_project_json