scheduler.py 文件源码

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

项目:mbot 作者: michaelkuty 项目源码 文件源码
def process(self, msg):
        """
        `schedule: 10s cmd: test`
        `schedule: every friday cmd: test`
        `schedule: every friday at 10:30 cmd: test`
        """

        params = msg.extract_parameters(
            ['schedule'], r"\s?(.*cmd:?|\S*['-]*|\w*.+|'[^']+')")

        params.update(msg.extract_parameters(['cmd']))

        if params['cmd'] is not None:
            cal = parsedatetime.Calendar()

            try:
                when, status = cal.parse(params['schedule'])
                when = datetime(*when[:6])
            except Exception as e:
                msg.reply("Cannot parse %s with %s" % (when, e))
                return True

            msg.bot.state.jobs.update(params['cmd'], {
                'every': "every" in params['schedule'],
                'when': when,
                'raw': params,
                'delta': when - datetime.now().replace(microsecond=0),
                'cmd': params['cmd'],
                'user': msg.user
            })
            msg.reply("Your job: %s is scheduled in %s. %s" % (
                params['cmd'], humanize.naturaltime(when), when))
        else:
            msg.reply("Your jobs: %s" % '\n'.join([
                j.__repr__() for j in msg.bot.state.jobs.all()]))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号