克罗恩的大脑不见了。有状态的、基于时间的脚本。

scriptter的Python项目详细描述


https://travis-ci.org/eykd/scriptter.svg?branch=masterhttps://coveralls.io/repos/eykd/scriptter/badge.svg

编剧是你的亲信。你写一个脚本(使用一个特殊的 YAML格式),指定要运行的命令序列和可读的 每组命令之间的延迟。然后,对脚本运行scriptter 每分钟(或尽可能频繁)。编剧会确保 命令按指定的顺序和定时运行。

用途:

我认为Scripter是一种编写Twitter机器人的方法,特别是Twitter 互相交谈的机器人。但Twitter没有限制: 在shell中可以做的任何事情,在scriptter中都可以。

示例:

这里有一个简单的脚本来运行两个twitter之间的日常对话 帐户,使用t Twitter CLI

defaults:
  delay: 1min
  activate: t set active
  update: t update
  cmd:
  - '{activate} {as}'
  - '{update} "{say}"'
  timezone: US/Eastern
---
as: Costello
say: "@Abbott I'm not... stay out of the infield! I want to know what's the guy's name in left field?"
---
as: Abbott
say: "@Costello No, What is on second."
---
as: Costello
say: "@Abbott I'm not asking you who's on second."
---
as: Abbott
say: "@Costello Who's on first!"
---
as: Costello
say: "@Abbott I don't know."
---
cmd:
- '{activate} Abbott'
- '{update} "@Costello Third base!"'
- '{activate} Costello'
- '{update} "@Abbott Third base!"'
---
delay: 10min
as: Costello
say: '@Abbott Look, you gotta outfield?'

经典,我知道。下面是发生的事情:每当脚本运行时 记住它在哪里停止了,下一个项目应该在什么时候运行。什么时候? 到时候,它会查看cmd成员。如果成员不在上 这个项目看起来是默认的。cmd可以是单个字符串,也可以是列表 弦。命令字符串可以是包含formatting instructions的模板。

模板化

命令模板的上下文来自项本身,由 文档中的任何全局默认值。我们就这样定义 activateupdate在顶部,任意使用它们 等一下。要使用的twitter帐户(as)和tweet的内容 (say)在每个项中定义。

延时

他们说喜剧是关于…时机!那么我们如何控制 我们的喜剧指挥?delay属性是人类可读的时间跨度或 延迟,例如“5分钟”、“5分钟”或“明天早上8点”,相对于 上一个项目。我们在顶部设置了默认值delay(或者如果不设置 默认情况下,默认值是5mins

第一个项的delay是特殊的:它确定 脚本将开始第一次调用。对于 是根据一天中的时间设置的–可以说tomorrow at 8am,脚本将 从早上开始,在你开始你的cron工作的第二天。

重复脚本

有些脚本应该只运行一次,有些应该永远重复。默认情况下,您的 脚本完成后将重复(返回到开头)。改变 此行为,包括在脚本顶部:

defaults:
    repeat: false

命令行

您通常会通过命令行与scriptter进行交互:

$ scriptter --help

正常运行

要实际运行计划,请执行命令并更改状态:

$ scriptter run schedule.yaml

试运行

要进行试运行并了解脚本程序在给定状态下将执行的操作:

$ scriptter trial schedule.yaml

这将以当前状态对计划进行一次试运行,但停止 实际执行任何动作或改变状态。

检查延迟

如果您需要了解项目列表将如何及时显示,请使用 check命令:

$ scriptter check schedule.yaml

这将首先验证完整的计划是否有效、格式是否正确,以及 可渲染。它将按顺序遍历和模拟每个项目,并报告 该项何时运行以及将执行哪些命令。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java