コード例 #1
0
 async def update_event(self, ctx, msg, event: TimedEvent, seconds=10):
     event = self.get_event(event)
     while seconds > 0:
         event.update_without_api()
         embed = await self.get_event_embed(ctx, event)
         await msg.edit(embed=embed)
         seconds -= 1
         await asyncio.sleep(1)
コード例 #2
0
    async def convert(self, ctx: commands.Context, argument):
        for url in TimedEvent.urls:
            if argument.lower() in url:
                return TimedEvent(url)

        raise commands.BadArgument(
            "Event not found. Events: " +
            ", ".join([event.event_name for event in ctx.bot.events]))
コード例 #3
0
 async def fetch_event_data(self):
     if self.bot.events and len(self.bot.events) == len(TimedEvent.urls):
         for event in self.bot.events:
             await event.set_data()
     else:
         for event in TimedEvent.urls:
             event = TimedEvent(event)
             await event.set_data()
             if event not in self.bot.events:
                 self.bot.events.append(event)
コード例 #4
0
    async def event(self, ctx, arg: EventConverter = None):
        if arg is None:
            events = []
            for event_url in TimedEvent.urls:
                events.append(self.get_event(TimedEvent(event_url)))
            embed = await self.get_events_embed(ctx, events)
            msg = await ctx.send(embed=embed)
            await self.update_events(ctx, msg, events)
            return

        embed = await self.get_event_embed(ctx, arg)
        msg = await ctx.send(embed=embed)
        await self.update_event(ctx, msg, arg)
コード例 #5
0
ファイル: skyblock.py プロジェクト: Manjot1151/Skybot-rewrite
    async def reminder_loop(self):
        docs = self.reminders.find({})
        async for doc in docs:
            event = self.get_event(TimedEvent(doc["event"]))
            if not event.event_on:
                return

            estimate = event.estimate - 300 #minutes before
            if estimate < time.time():
                user = self.bot.get_user(doc["id"])
                if user:
                    await user.send(f"This is a reminder for {event.event_name}. The event will be in 5 minutes, so get yourself ready. The reminder has been removed.")
                await self.reminders.delete_one(doc)
コード例 #6
0
ファイル: skyblock.py プロジェクト: Manjot1151/Skybot-rewrite
    async def list_reminder(self, ctx, user: discord.abc.User=None):
        if not user:
            user = ctx.author

        embed = Embed(self.bot, ctx.author, title=f"{str(user)} reminders")
        await embed.set_made_with_love_footer()
        docs = self.reminders.find({"id" : user.id})
        async for doc in docs:
            event = self.get_event(TimedEvent(doc["event"]))
            event_in = str(event.event_in - timedelta(minutes=5))[:-7] if event.event_in.microseconds else event.event_in
            embed.add_field(name=f"Reminder for {event.event_name}", value=f"Will be reminded in {event_in}")
        if len(embed.fields) > 0:
            await ctx.send(embed=embed)
        else:
            await ctx.send(f"{str(user)} has no reminders set.")