diff --git a/cogs/badges.py b/cogs/badges.py index e024133..665d53c 100644 --- a/cogs/badges.py +++ b/cogs/badges.py @@ -160,10 +160,10 @@ def get_user_badges(self, discord_id): github_id = contributorData[0]["github_id"] prData = { "raised": SupabaseClient().read( - table="pull_requests", query_key="raised_by", query_value=github_id + table="connected_prs", query_key="raised_by", query_value=github_id ), - "merged": SupabaseClient(table="pull_requests").read( - table="pull_requests", query_key="merged_by", query_value=github_id + "merged": SupabaseClient(table="connected_prs").read( + table="connected_prs", query_key="merged_by", query_value=github_id ), } points = 0 diff --git a/cogs/serverManagement.py b/cogs/serverManagement.py index 2f0cbcd..440dd4a 100644 --- a/cogs/serverManagement.py +++ b/cogs/serverManagement.py @@ -27,6 +27,16 @@ async def getServerData(self, ctx): # add all chapters chapterRoles = [] guild = self.bot.get_guild(serverConfig.SERVER) + ## Clear Error + oldRole = guild.get_role(973852365188907048) + print("started") + print(f"{len(oldRole.members)} have the old contributor role") + for member in oldRole.members: + print(member.joined_at) + if member.joined_at.timestamp() > datetime(2022, 12, 25).timestamp(): + await member.remove_roles(oldRole, reason="mistakenly given") + print("Member removed") + for role in guild.roles: if role.name.startswith("College:"): orgName = role.name[len("College: ") :] @@ -43,23 +53,17 @@ async def getServerData(self, ctx): contributorsDiscord = SupabaseClient().read_all("contributors_discord") ## Give contributor role - print(1) contributorIds = [ contributor["discord_id"] for contributor in contributorsGithub ] - print(2) contributorRole = guild.get_role(serverConfig.Roles.CONTRIBUTOR_ROLE) - print(3) count = [0, 0, 0] for member in guild.members: count[0] += 1 if member.id in contributorIds: count[1] += 1 if contributorRole not in member.roles: - print(contributorRole) - print(member.roles) count[2] += 1 - print(4) await member.add_roles(contributorRole) print(count) @@ -68,8 +72,10 @@ async def getServerData(self, ctx): recordedMembers = [ contributor["discord_id"] for contributor in contributorsDiscord ] + print(f"{len(recordedMembers)} have their data saved") currentMembers = [member.id for member in guild.members] membersWhoLeft = list(set(recordedMembers) - set(currentMembers)) + print(f"{len(membersWhoLeft)} members left") SupabaseClient().deleteContributorDiscord(membersWhoLeft) print("Updated Contributors") diff --git a/cogs/userInteractions.py b/cogs/userInteractions.py index 60c4cea..9b11024 100644 --- a/cogs/userInteractions.py +++ b/cogs/userInteractions.py @@ -332,18 +332,6 @@ async def github_profile(self, ctx): ```[![C4GTGithubDisplay](https://kcavhjwafgtoqkqbbqrd.supabase.co/storage/v1/object/public/c4gt-github-profile/{ctx.author.id}githubdisplay.jpg)](https://github.com/Code4GovTech) Know more about: Code For GovTech ([Website](https://www.codeforgovtech.in) | [GitHub](https://github.com/Code4GovTech/C4GT/wiki)) | [Digital Public Goods (DPGs)](https://digitalpublicgoods.net/digital-public-goods/) | [India & DPGs](https://government.economictimes.indiatimes.com/blog/digital-public-goods-digital-public-infrastructure-an-evolving-india-story/99532036)```""" ) - # githubProfileInfoEmbed.set_footer(text="Respond with 🏆 to get the link") - # message = await ctx.send(embed=githubProfileInfoEmbed) - # await message.add_reaction("🏆") - # def check(reaction, user): - # return user == ctx.message.author and str(reaction.emoji) in ['🏆'] - # try: - # reaction, user = await self.bot.wait_for('reaction_add', timeout=60.0, check=check) - # except asyncio.TimeoutError: - # await ctx.send("You took too long to respond.") - # else: - # if str(reaction.emoji) == '🏆': - # await ctx.send(f'[![C4GTGithubDisplay](https://kcavhjwafgtoqkqbbqrd.supabase.co/storage/v1/object/public/c4gt-github-profile/{ctx.author.id}githubdisplay.jpg?maxAge=10)](https://github.com/Code4GovTech)') @update_contributors.before_loop async def before_update_loop(self): @@ -406,10 +394,10 @@ async def get_points(self, ctx): print(contributor) github_id = contributor[0]["github_id"] prs_raised = SupabaseClient().read( - table="pull_requests", query_key="raised_by", query_value=github_id + table="connected_prs", query_key="raised_by", query_value=github_id ) prs_merged = SupabaseClient().read( - table="pull_requests", query_key="merged_by", query_value=github_id + table="connected_prs", query_key="merged_by", query_value=github_id ) raise_points = 0 merge_points = 0 diff --git a/models/__init__.py b/models/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/models/product.py b/models/product.py deleted file mode 100644 index e010dd8..0000000 --- a/models/product.py +++ /dev/null @@ -1,59 +0,0 @@ -from helpers.supabaseClient import SupabaseClient - - -class Product: - def __init__(self, data=None, name=None): - if name is not None: - data = SupabaseClient().read( - table="products", query_key="name", query_value=name - ) - if not data: - raise Exception("There is no product with name = ", name) - else: - # Assuming is_unique constraint on name in Products table - data = data[0] - # Name of the product - self.name = data["name"] - # Description of the product - self.desc = data["description"] - # Organisation associated with the product - self.org = data["organisation"] - # The wili page url for the product on C4GT github - self.wiki_url = data["wiki_url"] - # Projects under this product - self.projects = data["projects"] - # Mentors assigned to projects associated with this product - self.mentors = data["mentors"] if data["mentors"] else [] - # Contributors assigned to projects under this product - self.contributers = data["contributors"] if data["contributors"] else [] - # discord channel id of the dedicated discord channel for this Product - self.channel = data["channel"] - - @classmethod - def is_product(cls, product_name): - db_client = SupabaseClient() - data = db_client.read( - table="products", query_key="name", query_value=product_name - ) - if len(data) == 1: - return True - if len(data) > 1: - raise Exception( - "Product name should be unique but recieved multiple items for this name." - ) - return False - - @classmethod - def get_all_products(cls): - db_client = SupabaseClient() - data = db_client.read_all(table="products") - return data - - def assign_channel(self, discord_id): - SupabaseClient().update( - table="products", - update={"channel": discord_id}, - query_key="name", - query_value=self.name, - ) - return diff --git a/models/project.py b/models/project.py deleted file mode 100644 index eb74f6e..0000000 --- a/models/project.py +++ /dev/null @@ -1,39 +0,0 @@ -from helpers.supabaseClient import SupabaseClient - - -class Project: - def __init__(self, data=None, name=None) -> None: - if name is not None: - data = SupabaseClient().read( - table="projects", query_key="name", query_value=name - )[0] - self.name = data["name"] - self.desc = data["description"] - self.repository = data["repository"] - self.contributor = data["contributor"] - self.mentor = data["mentor"] - self.product = data["product"] - self.issue_page_url = data["issue_page_url"] - - @classmethod - def is_project(project_name): - db_client = SupabaseClient() - data = db_client.read( - table="projects", query_key="name", query_value=project_name - ) - if len(data) == 1: - return True - if len(data) > 1: - raise Exception( - "Project name should be unique but recieved multiple items for this name." - ) - return False - - @classmethod - def get_all_projects(cls): - db_client = SupabaseClient() - data = db_client.read_all(table="projects") - return data - - -# test = Project(name='test') diff --git a/models/user.py b/models/user.py deleted file mode 100644 index 77eaa02..0000000 --- a/models/user.py +++ /dev/null @@ -1,33 +0,0 @@ -from helpers.supabaseClient import SupabaseClient - - -class User: - def __init__(self, userData): - # self.name = userData["name"] - self.discordId = userData["discordId"] - self.discordUserName = userData("discordUserName") - self.githubId = userData["githubId"] - - def exists(self, table): - data = SupabaseClient().read( - table, query_key="discord_id", query_value=self.discordID - ) - if len(data.data) > 0: - return True - else: - return False - - -class Contributor(User): - def __init__(self, userData): - super().__init__(userData) - - -class Mentor(User): - def __init__(self, userData): - super().__init__(userData) - - -class OrgMember(User): - def __init__(self, userData): - super().__init__(userData)