1

我正在使用 Pybossa webhooks,并找到了这个插件来实时分析 Pybossa 结果。我分叉了它,但不知道它是如何执行的。

目前,我执行如下:

python app.py test_project

其中 test_project 是我的 project_short_name。但是,它让我回到这个存储库的 index.html 页面。

4

2 回答 2

2

我自己还没有设置它,但看起来你运行主要的 Pybossa 站点以及你可以从webhooks 项目派生的自定义微服务。

  1. 安装并运行主要的 Pybossa 服务器并创建一个管理员帐户。
  2. 安装并运行 webhooks fork
  3. 从您的主要 PyBossa 服务器上的管理员帐户页面获取您的 API 密钥。
  4. 在 webhook 中,克隆 settings.py.tmpl 并更新 API 密钥等信息。
  5. 运行微服务。
  6. 在 Pybossa 中,将您的项目配置为在您的设置中使用 webhook URL。
  7. 在 webhook 中,加载 index.html 页面。

您可以更改索引页面上的图表以显示您感兴趣的结果。但就像我说的,这正是我理解需要做的事情。我自己没有这样做,因为我只是要修改演示者 JS 以使用 API 来执行我希望依赖于提交答案的值的一些操作。祝你好运。

于 2017-01-03T07:08:49.330 回答
1

我找到了 !查看pybossa.model.event_listeners你会发现push_webhook功能,它将 webhook 推入队列。它由on_taskrun_submit, on_auditrun_submit同一文件中的函数调用。

如果您真的想手动执行 webhook,请查看pybossa.jobs,您会发现webhookfunction,它是执行 webhook 的地方。您可以像这样手动调用它:

def trigger_webhook(short_name, task_id=0, result_id=0):
    from pybossa.jobs import webhook
    from datetime import datetime
    from pybossa.core import project_repo

    with app.app_context():
        project = project_repo.get_by_shortname(short_name)

        payload = dict(event="task_completed",
                       project_short_name=project.short_name,
                       project_id=project.id,
                       task_id=task_id,
                       result_id=result_id,
                       fired_at=datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"))
        webhook(project.webhook, payload)

我把这个函数放在 cli.py 中,这样我就可以方便地调用它。

于 2017-08-26T09:23:59.097 回答