diff --git a/package.json b/package.json index d124ff4..22918af 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "express": "^4.16.2", "global": "^4.3.2", + "google-images": "^2.1.0", "mongodb": "^2.2.33" }, "engines": { diff --git a/server.js b/server.js index 9267308..b33cc85 100644 --- a/server.js +++ b/server.js @@ -1,20 +1,44 @@ var express = require('express'); - +var GoogleImages = require('google-images'); +const client = new GoogleImages(process.env.SEARCH_ID, process.env.SEARCH_API_KEY); +const MAX_LATEST = 10; var app = express(); +var latest = []; +function addLatest(term) { + var data = {term: term, timestamp: new Date().toISOString()}; + latest.unshift(data); + while (latest.length > MAX_LATEST) { + latest.pop(); + } +} app.get("/", function (request, response) { response.sendFile(__dirname + '/views/index.html'); }); -app.get("/search*", function (request, response) { - +app.get("/search", function (request, response) { + var term = request.query.term; + var offset = request.query.offset; + if (offset == undefined) + offset = 0; + addLatest(term); + client.search(term, {start: offset, linkSite: "true"}) + .then(images => { + var data = []; + console.log(images); + for (var idx in images) { + data.push({url: images[idx].url, description: images[idx].description, originalurl: images[idx].parentPage}); + } + response.send(data); + }); }); app.get("/search/latest", function(request, response) { + response.send(latest); }) // listen for requests :) diff --git a/views/index.html b/views/index.html index b199b87..50a2915 100644 --- a/views/index.html +++ b/views/index.html @@ -37,6 +37,18 @@