| 931 | return int(count), int(ended_count) |
| 932 | |
| 933 | def mystuff_classes(self, mode: str = "Last created", page: Optional[int] = None) -> list[classroom.Classroom]: |
| 934 | if not self.is_teacher: |
| 935 | self.update() |
| 936 | |
| 937 | if not self.is_teacher: |
| 938 | raise exceptions.Unauthorized(f"{self.username} is not a teacher; can't have classes") |
| 939 | ascsort, descsort = get_class_sort_mode(mode) |
| 940 | |
| 941 | classes_data = requests.get( |
| 942 | "https://scratch.mit.edu/site-api/classrooms/all/", |
| 943 | params={"page": page, "ascsort": ascsort, "descsort": descsort}, |
| 944 | headers=self._headers, |
| 945 | cookies=self._cookies, |
| 946 | ).json() |
| 947 | classes = [] |
| 948 | for data in classes_data: |
| 949 | fields = data["fields"] |
| 950 | educator_pf = fields["educator_profile"] |
| 951 | classes.append( |
| 952 | classroom.Classroom( |
| 953 | id=data["pk"], |
| 954 | title=fields["title"], |
| 955 | classtoken=fields["token"], |
| 956 | datetime=datetime.datetime.fromisoformat(fields["datetime_created"]), |
| 957 | author=user.User(username=educator_pf["user"]["username"], id=educator_pf["user"]["pk"], _session=self), |
| 958 | _session=self, |
| 959 | ) |
| 960 | ) |
| 961 | return classes |
| 962 | |
| 963 | def mystuff_ended_classes(self, mode: str = "Last created", page: Optional[int] = None) -> list[classroom.Classroom]: |
| 964 | if not self.is_teacher: |