async def upcoming(self, ctx: commands.Context, date: str = None): """ View upcoming availabilities for a week Can optionally specify a date to look up avails for said date Input date as: day/month/year #STAFF """ if date is None: gen_week = [(ctx.guild.get_member(avail.userid).display_name + ":\n" + stamp_to_str(avail.date_start) + " - " + stamp_to_str(avail.date_end)) for avail in self.availabilities if (dt.datetime.fromtimestamp(avail.date_start) < dt.datetime.utcnow() + dt.timedelta(weeks=1))] await (BotEmbedPaginator( ctx, pages(numbered(gen_week), n=10, title='Availabilities for this week'))).run() else: gen_date = [(ctx.guild.get_member(avail.userid).display_name + ":\n" + stamp_to_str(avail.date_start) + " - " + stamp_to_str(avail.date_end)) for avail in self.availabilities if (dt.datetime.fromtimestamp( avail.date_start).strftime("%Y-%m-%d") == parse( date, dayfirst=True).strftime("%Y-%m-%d"))] await (BotEmbedPaginator( ctx, pages( numbered(gen_date), n=10, title= f'Availabilities for {parse(date).strftime("%Y-%b-%d")}')) ).run()
async def listfilteredtoken(self, ctx: commands.Context): """ Lists filtered tokens #STAFF """ await BotEmbedPaginator( ctx, pages(numbered(config()["filters"]["token_blacklist"]), 10, "Filtered Tokens")).run()
async def listfilteredwords(self, ctx: commands.Context): """ Lists the filtered words #STAFF """ await BotEmbedPaginator( ctx, pages(numbered(config()["filters"]["word_blacklist"]), 10, "Filtered Words")).run()
async def availabilities(self, ctx: commands.Context, member: discord.Member): """ Shows the availabilities of a user #STAFF """ gen = [ stamp_to_str(avail.date_start) + " - " + stamp_to_str(avail.date_end) for avail in self.availabilities if avail.userid == member.id ] await (BotEmbedPaginator(ctx, pages(numbered( gen), n=10, title=f'{member.display_name}\'s availabilities'))).run()
async def liststatus(self, ctx): """ Lists kaede's statuses #OWNER """ await BotEmbedPaginator(ctx, pages(numbered(config()["statuses"]), 10, "Statuses")).run()