Comment on The Legends is among us

<- View Parent
CannedYeet@lemmy.world ⁨1⁩ ⁨week⁩ ago

I worked with chatgpt to since I’m not a python dev, and this is what I came up with

from time import time

class PlaySession:
    def __init__(self, data: dict):
        self.guild_id = int(data['guild_id'])
        self.user_id = int(data['user_id'])
        self.timestamp = data['time']

    def is_longer_than_half_hour(self) -> bool:
        return self.timestamp + 1800 < time()

    async def resolve_member(self, bot) -> "discord.Member | None":
        guild = bot.get_guild(self.guild_id)
        return guild.get_member(self.user_id) if guild else None

    @staticmethod
    def is_playing_league(member) -> bool:
        activity = getattr(member, 'activity', None)
        name = getattr(activity, 'name', None)
        return name and name.lower() == "league of legends"

async def ban_for_league(member):
    await member.send("The 30 minutes has elapsed and you are still playing league, get banned.")
    await member.ban(delete_message_days=0, reason="playing league")

async def process_entries(bot, entry_dicts):
    sessions = [PlaySession(d) for d in entry_dicts if PlaySession(d).is_longer_than_half_hour()]
    for session in sessions:
        member = await session.resolve_member(bot)
        if member and PlaySession.is_playing_league(member):
            await ban_for_league(member)

source
Sort:hotnewtop