From 9d4cf79841363f42a8d7165362f20e611e2880d0 Mon Sep 17 00:00:00 2001 From: bossOfCode <95505913+bossOfCode@users.noreply.github.com> Date: Mon, 28 Jul 2025 18:46:00 -0500 Subject: [PATCH 01/11] Update 1 user.py (still wip on the file) Signed-off-by: bossOfCode <95505913+bossOfCode@users.noreply.github.com> --- scratchattach/site/user.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index ebc8abce..2d2f6ad4 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -24,6 +24,8 @@ from . import activity from . import classroom +from Enum import enum + class Verificator: def __init__(self, user: User, project_id: int): @@ -873,6 +875,16 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v + def rank(self, enum): + new_scratcher = 0 + scratcher = 1 + scratch_team = 2 + try: + ns = is_new_scratcher(self) + + + + # ------ # def get_user(username) -> User: From c6edffa47cb237da6e7454a67a3e4f54a85a9614 Mon Sep 17 00:00:00 2001 From: bossOfCode <95505913+bossOfCode@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:40:17 -0500 Subject: [PATCH 02/11] Update user.py Signed-off-by: bossOfCode <95505913+bossOfCode@users.noreply.github.com> --- scratchattach/site/user.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index 2d2f6ad4..15e4b4bb 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -24,7 +24,7 @@ from . import activity from . import classroom -from Enum import enum +from enum import Enum class Verificator: @@ -875,12 +875,12 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v - def rank(self, enum): + def rank(self, Enum): new_scratcher = 0 scratcher = 1 scratch_team = 2 try: - ns = is_new_scratcher(self) + ns = self.is_new_scratcher() From 0f0ba707d4e271f3410634ef229354a4c8fdb778 Mon Sep 17 00:00:00 2001 From: bossOfCode <95505913+bossOfCode@users.noreply.github.com> Date: Tue, 29 Jul 2025 15:26:18 -0500 Subject: [PATCH 03/11] Update user.py Signed-off-by: bossOfCode <95505913+bossOfCode@users.noreply.github.com> --- scratchattach/site/user.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index 15e4b4bb..d5b66b45 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -24,8 +24,6 @@ from . import activity from . import classroom -from enum import Enum - class Verificator: def __init__(self, user: User, project_id: int): @@ -875,15 +873,25 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v - def rank(self, Enum): - new_scratcher = 0 - scratcher = 1 - scratch_team = 2 - try: - ns = self.is_new_scratcher() - - + def rank(self): + """ + Finds the rank of the user. + May replace user.scratchteam and user.is_mew_scratcher in the future. + """ + ns = self.is_new_scratcher() + if ns == True: + return 0 + #is new scratcher# + elif ns == False: + ns = self.scratchteam + if ns == False: + return 1 + #is scratcher# + else: + return 2 + #is scratch team member# + # ------ # From 4f36bd87363107dd980f15adda8510db1d84af62 Mon Sep 17 00:00:00 2001 From: Boss-1s <95505913+Boss-1s@users.noreply.github.com> Date: Thu, 31 Jul 2025 16:06:26 -0500 Subject: [PATCH 04/11] Update user.py with the changes suggested by @TheCommCraft Signed-off-by: Boss-1s <95505913+Boss-1s@users.noreply.github.com> --- scratchattach/site/user.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index d5b66b45..344d0155 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -24,6 +24,16 @@ from . import activity from . import classroom +from enum import Enum + +class Rank(Enum): + """ + Possible ranks in scratch + """ + NEW_SCRATCHER = 0 + SCRATCHER = 1 + SCRATCH_TEAM = 2 + class Verificator: def __init__(self, user: User, project_id: int): @@ -873,24 +883,22 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v - def rank(self): + def rank(self): """ Finds the rank of the user. - May replace user.scratchteam and user.is_mew_scratcher in the future. + May replace user.scratchteam and user.is_new_scratcher in the future. """ + + if self.is_new_scratcher(): + return Rank.NEW_SCRATCHER + # Is New Scratcher - ns = self.is_new_scratcher() - if ns == True: - return 0 - #is new scratcher# - elif ns == False: - ns = self.scratchteam - if ns == False: - return 1 - #is scratcher# - else: - return 2 - #is scratch team member# + if not self.scratchteam: + return Rank.SCRATCHER + # Is Scratcher + + return Rank.SCRATCH_TEAM + # Is Scratch Team member # ------ # From 4b17b4f46cb1764bfa5a34ec4e8efa5ed3517e18 Mon Sep 17 00:00:00 2001 From: Boss-1s <95505913+Boss-1s@users.noreply.github.com> Date: Thu, 31 Jul 2025 16:10:44 -0500 Subject: [PATCH 05/11] Update user.py Signed-off-by: Boss-1s <95505913+Boss-1s@users.noreply.github.com> --- scratchattach/site/user.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index 344d0155..bb196b5f 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -193,6 +193,7 @@ def is_new_scratcher(self): Returns: boolean : True if the user has the New Scratcher status, else False """ + print("Warning: this function is partially deprecated. Use user.rank() instead.") try: res = requests.get(f"https://scratch.mit.edu/users/{self.username}/").text group=res[res.rindex(''):][:70] From a3dd02003a2ca5633ddb5f0d79e49b3a921445ae Mon Sep 17 00:00:00 2001 From: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> Date: Thu, 31 Jul 2025 23:24:07 +0200 Subject: [PATCH 06/11] Update user.py Signed-off-by: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> --- scratchattach/site/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index bb196b5f..cf0eedc8 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -884,7 +884,7 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v - def rank(self): + def rank(self): """ Finds the rank of the user. May replace user.scratchteam and user.is_new_scratcher in the future. From d10921c6992eeb5b5501ecc1ae82d19649dd9b00 Mon Sep 17 00:00:00 2001 From: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> Date: Thu, 31 Jul 2025 23:27:41 +0200 Subject: [PATCH 07/11] Update user.py Signed-off-by: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> --- scratchattach/site/user.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index cf0eedc8..d19c1429 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -7,6 +7,7 @@ import string from datetime import datetime, timezone +from typing_extensions import deprecated from bs4 import BeautifulSoup, Tag from ._base import BaseSiteComponent @@ -188,12 +189,12 @@ def does_exist(self): elif status_code == 404: return False + @deprecated("This function is partially deprecated. Use user.rank() instead.") def is_new_scratcher(self): """ Returns: boolean : True if the user has the New Scratcher status, else False """ - print("Warning: this function is partially deprecated. Use user.rank() instead.") try: res = requests.get(f"https://scratch.mit.edu/users/{self.username}/").text group=res[res.rindex(''):][:70] From f43bb6e71b89f766662236085d63f3e4e29a0045 Mon Sep 17 00:00:00 2001 From: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> Date: Thu, 31 Jul 2025 23:32:51 +0200 Subject: [PATCH 08/11] Update user.py Signed-off-by: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> --- scratchattach/site/user.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index d19c1429..65e6a189 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -189,7 +189,8 @@ def does_exist(self): elif status_code == 404: return False - @deprecated("This function is partially deprecated. Use user.rank() instead.") + # Will maybe be deprecated later, but for now still has its own purpose. + #@deprecated("This function is partially deprecated. Use user.rank() instead.") def is_new_scratcher(self): """ Returns: From b168ecc8218081448a80ba10231145909a70bc15 Mon Sep 17 00:00:00 2001 From: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> Date: Thu, 31 Jul 2025 23:36:08 +0200 Subject: [PATCH 09/11] Update user.py Signed-off-by: TheCommCraft <79996518+TheCommCraft@users.noreply.github.com> --- scratchattach/site/user.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index 65e6a189..5b3ccbb1 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -6,6 +6,7 @@ import re import string from datetime import datetime, timezone +from enum import Enum from typing_extensions import deprecated from bs4 import BeautifulSoup, Tag @@ -25,8 +26,6 @@ from . import activity from . import classroom -from enum import Enum - class Rank(Enum): """ Possible ranks in scratch From 69999f640116be85a07c3b633c72dfe5e7ab47a7 Mon Sep 17 00:00:00 2001 From: faretek <107722825+FAReTek1@users.noreply.github.com> Date: Fri, 1 Aug 2025 08:30:49 +0900 Subject: [PATCH 10/11] Update user.py Signed-off-by: faretek <107722825+FAReTek1@users.noreply.github.com> --- scratchattach/site/user.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index 5b3ccbb1..c66b5896 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -888,19 +888,17 @@ def verify_identity(self, *, verification_project_id=395330233): def rank(self): """ Finds the rank of the user. + Returns a member of the Rank enum: either Rank.NEW_SCRATCHER, Rank.SCRATCHER, or Rank.SCRATCH_TEAM. May replace user.scratchteam and user.is_new_scratcher in the future. """ if self.is_new_scratcher(): return Rank.NEW_SCRATCHER - # Is New Scratcher if not self.scratchteam: return Rank.SCRATCHER - # Is Scratcher return Rank.SCRATCH_TEAM - # Is Scratch Team member # ------ # From b5426001217c19eda9e59cf3c2b2710d4849d480 Mon Sep 17 00:00:00 2001 From: faretek <107722825+FAReTek1@users.noreply.github.com> Date: Fri, 1 Aug 2025 08:32:35 +0900 Subject: [PATCH 11/11] Add rank annotation Signed-off-by: faretek <107722825+FAReTek1@users.noreply.github.com> --- scratchattach/site/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scratchattach/site/user.py b/scratchattach/site/user.py index c66b5896..76b511c1 100644 --- a/scratchattach/site/user.py +++ b/scratchattach/site/user.py @@ -885,7 +885,7 @@ def verify_identity(self, *, verification_project_id=395330233): v = Verificator(self, verification_project_id) return v - def rank(self): + def rank(self) -> Rank: """ Finds the rank of the user. Returns a member of the Rank enum: either Rank.NEW_SCRATCHER, Rank.SCRATCHER, or Rank.SCRATCH_TEAM.