reminder_clockwork.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:apex-sigma-core 作者: lu-ci 项目源码 文件源码
def clockwork_function_reminder_clockwork(ev):
    while True:
        reminders = await ev.db[ev.db.db_cfg.database]['Reminders'].find({}).to_list(None)
        for reminder in reminders:
            current_stamp = arrow.utcnow().timestamp
            execution_stamp = reminder['ExecutionStamp']
            if current_stamp > execution_stamp:
                await ev.db[ev.db.db_cfg.database]['Reminders'].delete_one({'ReminderID': reminder['ReminderID']})
                channel = discord.utils.find(lambda x: x.id == reminder['ChannelID'], ev.bot.get_all_channels())
                author = discord.utils.find(lambda x: x.id == reminder['UserID'], ev.bot.get_all_members())
                if channel:
                    target = channel
                elif author:
                    target = author
                else:
                    target = None
                if target:
                    dt_stamp = arrow.get(reminder['CreationStamp']).datetime
                    title = f'? Your Reminder'
                    response = discord.Embed(color=0xff3333, title=title, timestamp=dt_stamp)
                    response.description = reminder.get('TextMessage')
                    if author:
                        response.set_author(name=author.name, icon_url=user_avatar(author))
                    response.set_footer(text=f'Reminder: {reminder.get("ReminderID")}')
                    try:
                        if author:
                            await target.send(f'{author.mention}, your reminder executed.', embed=response)
                        else:
                            await target.send(embed=response)
                    except discord.ClientException:
                        pass
        await asyncio.sleep(1)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号