diff --git a/brozzler/webconsole/__init__.py b/brozzler/webconsole/__init__.py index bff8532..5bd5705 100644 --- a/brozzler/webconsole/__init__.py +++ b/brozzler/webconsole/__init__.py @@ -27,7 +27,6 @@ except ImportError as e: 'brozzler[webconsole]".\nSee README.rst for more information.', type(e).__name__, e) sys.exit(1) - import rethinkstuff import json import os @@ -149,6 +148,16 @@ def sites(job_id): s["cookie_db"] = base64.b64encode(s["cookie_db"]).decode("ascii") return flask.jsonify(sites=sites_) +@app.route("/api/jobless-sites") +def jobless_sites(): + # XXX inefficient (unindexed) query + sites_ = list(r.table("sites").filter(~r.row.has_fields("job_id")).run()) + # TypeError: is not JSON serializable + for s in sites_: + if "cookie_db" in s: + s["cookie_db"] = base64.b64encode(s["cookie_db"]).decode("ascii") + return flask.jsonify(sites=sites_) + @app.route("/api/jobs/") @app.route("/api/job/") def job(job_id): diff --git a/brozzler/webconsole/static/js/app.js b/brozzler/webconsole/static/js/app.js index d30fad7..8ba76fc 100644 --- a/brozzler/webconsole/static/js/app.js +++ b/brozzler/webconsole/static/js/app.js @@ -79,6 +79,9 @@ brozzlerControllers.controller("HomeController", ["$scope", "$http", $http.get("/api/services").success(function(data) { $scope.services = data.services; }); + $http.get("/api/jobless-sites").success(function(data) { + $scope.joblessSites = data.sites; + }); }]); brozzlerControllers.controller("WorkersListController", ["$scope", "$http", diff --git a/brozzler/webconsole/static/partials/home.html b/brozzler/webconsole/static/partials/home.html index 561e40a..bb05ca4 100644 --- a/brozzler/webconsole/static/partials/home.html +++ b/brozzler/webconsole/static/partials/home.html @@ -41,7 +41,6 @@

Jobs

-
@@ -66,4 +65,23 @@
+ +

Jobless Sites

+
+
+ + + + + + + + + + + +
id
{{site.id}}
+
+
+ diff --git a/setup.py b/setup.py index 15bda25..50ba2ad 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ def find_package_data(package): setuptools.setup( name='brozzler', - version='1.1b6.dev72', + version='1.1b6.dev73', description='Distributed web crawling with browsers', url='https://github.com/internetarchive/brozzler', author='Noah Levitt',