MCPcopy Create free account
hub / github.com/TimMcCool/scratchattach / mystuff_classes

Method mystuff_classes

scratchattach/site/session.py:933–961  ·  view source on GitHub ↗
(self, mode: str = "Last created", page: Optional[int] = None)

Source from the content-addressed store, hash-verified

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:

Callers 1

test_teacher_activityFunction · 0.80

Calls 4

get_class_sort_modeFunction · 0.90
jsonMethod · 0.80
updateMethod · 0.45
getMethod · 0.45

Tested by 1

test_teacher_activityFunction · 0.64