pythonflaskrediswebhookspybossa

Issue in Pybossa webhooks, how to execute it


I am working with the Pybossa webhooks, and found this plugin to analyse the Pybossa results in real-time. I forked it but not getting how it is to be executed.

Currently, I am executing it as follows:

python app.py test_project

where test_project is my project_short_name. But, it is reverting me to index.html page of this repository.


Solution

  • I found it ! Look into pybossa.model.event_listeners you will find push_webhookfunction, it push webhook into queue. And it's called by on_taskrun_submit, on_auditrun_submit function in the same file.

    If you really want to execute webhook manually, look into pybossa.jobs, you will find webhook function, it's where the webhook execute. You can call it manually like this:

    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)
    

    I put this function in cli.py so I can call it handily.