我正在使用 Pybossa webhooks,并找到了这个插件来实时分析 Pybossa 结果。我分叉了它,但不知道它是如何执行的。
目前,我执行如下:
python app.py test_project
其中 test_project 是我的 project_short_name。但是,它让我回到这个存储库的 index.html 页面。
我自己还没有设置它,但看起来你运行主要的 Pybossa 站点以及你可以从webhooks 项目派生的自定义微服务。
您可以更改索引页面上的图表以显示您感兴趣的结果。但就像我说的,这正是我理解需要做的事情。我自己没有这样做,因为我只是要修改演示者 JS 以使用 API 来执行我希望依赖于提交答案的值的一些操作。祝你好运。
我找到了 !查看pybossa.model.event_listeners
你会发现push_webhook
功能,它将 webhook 推入队列。它由on_taskrun_submit, on_auditrun_submit
同一文件中的函数调用。
如果您真的想手动执行 webhook,请查看pybossa.jobs
,您会发现webhook
function,它是执行 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 中,这样我就可以方便地调用它。