一个基于twisted的守护进程,用于向leftronic.com发送度量

leftronicd_db的Python项目详细描述


定期将信息发布到leftronic.com的脚本

安装

  • 制作一个virtualenv
  • pip install leftronicd

配置

配置在yaml中完成。

快捷键

您的Leftronic API访问密钥。

流配置列表。

每个流都需要以下值:

  • method:生成值的方法
  • type:值的类型(例如numberleaderboard
  • name:流的名称
  • verbosename:流的详细名称
  • interval:应该调用方法的时间间隔(秒)。

任何其他键值对都将传递到该方法中。

示例:

accesskey: SECRET
streams:
    - method: leftronicd.contrib.github.repo_metric
      verbosename: django CMS Watchers
      name: django-cms-watchers
      type: number
      interval: 86400
      repo: divio/django-cms
      metric: watchers
    - method: leftronicd.contrib.github.repo_metric
      verbosename: django CMS Forks
      type: number
      interval: 86400
      name: django-cms-forks
      repo: divio/django-cms
      metric: forks

内置方法

leftronicd.contrib.github.repo_metric

报告来自github存储库的度量。

配置:

  • repo:回购名称,例如ojii/leftronicd
  • metric:从repo中获取哪个值,例如forks

可选配置:

  • username:用户名(用于私有回购)
  • password:密码(用于私人回购)

运行

leftronicd <configfile> [-v]

自定义方法

自定义数据收集方法可以是任何返回 Twisted Deferred使用要发布的值调用附加回调 到leftronic.com。

python可调用的是所有附加配置参数 给一条小溪。

示例

此示例将显示用户拥有的github关注者数量。

python代码(假设它在一个名为“custom”的模块中):

from leftronicd.helpers import get_page
import json

def github_followers(username):
    def handler(data):
        return json.loads(data)['followers']
    return get_page(handler, 'https://api.github.com/users/%s' % username)

如您所见,我们在这里使用leftronicd.helpers.get_pagehelper 详情见下文。

流配置:

accesskey: SECRET
streams:
    - method: custom.github_followers
      verbosename: Github Followers
      name: my-github-followers
      type: number
      interval: 300
      username: ojii

助手

leftronicd.helpers.get_page

围绕twisted.web.client.getPage的包装。将处理程序函数作为 如果页面是 加载成功。然后,handler函数应该返回 传递给Leftronic。get_page返回可从 你的自定义方法。

处理程序参数之后的所有参数都与中的相同 twisted.web.client.getPage

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

推荐PyPI第三方库


热门话题
java在未知属性上的PUT和POST失败会引发不同的行为   java无法使GWTRPC正常工作   java如何在安卓中更改一个特定视图的主题?   机器学习为什么改变了java中等式的两面?   java继承和重定向标准输出   java为什么Clojure中嵌套循环/重复速度慢?   使用JavaParser解析Java代码并查找父节点的语句类型   java读取类的方法并在arraylist中存储Web服务的路径名   java模板聚合匹配和投影一个没有id的字段   java为什么给定数组不返回false   java如何链接JLabel和JSpinner以调整大小   在java中,当过滤器只返回一个对象时,如何使用流和过滤器将值填充到对象中   java为什么使用getInstance   如何得到我的。运行java命令的bat文件