diff --git a/scrapyd/webservice.py b/scrapyd/webservice.py index 73af9f15d..637f807d7 100644 --- a/scrapyd/webservice.py +++ b/scrapyd/webservice.py @@ -87,3 +87,12 @@ class DeleteVersion(DeleteProject): self._delete_version(project, version) return {"status": "ok"} +class ListJobs(WsResource): + def render_POST(self, txrequest): + project = txrequest.args['project'][0] + spiders = self.root.launcher.processes.values() + jlist = list() + for s in spiders: + if project == s.project: + jlist.append({"job": {"id":s.job, "spider": s.spider}}) + return {"status":"ok", "jobs": jlist} diff --git a/scrapyd/website.py b/scrapyd/website.py index 4889ad1ca..db23de51f 100644 --- a/scrapyd/website.py +++ b/scrapyd/website.py @@ -22,6 +22,7 @@ class Root(resource.Resource): self.putChild('listspiders.json', webservice.ListSpiders(self)) self.putChild('delproject.json', webservice.DeleteProject(self)) self.putChild('delversion.json', webservice.DeleteVersion(self)) + self.putChild('listjobs.json', webservice.ListJobs(self)) self.putChild('logs', static.File(logsdir, 'text/plain')) self.putChild('procmon', ProcessMonitor(self)) self.update_projects()