From 73b7477b74f6cacc43d47997e21bf565422aaddf Mon Sep 17 00:00:00 2001 From: Dan Grossman Date: Sun, 9 Jan 2011 21:00:29 -0500 Subject: [PATCH] Fixed var, special case for google image search --- searchparser.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/searchparser.js b/searchparser.js index 1569a91..beb6e14 100644 --- a/searchparser.js +++ b/searchparser.js @@ -1,5 +1,4 @@ -var patterns = new Array(); - +var patterns = []; patterns.push( { 'name': 'Google', 'pattern': 'google', 'var': 'q' } ); patterns.push( { 'name': 'Live', 'pattern': 'search.live', 'var': 'q' } ); patterns.push( { 'name': 'Bing', 'pattern': 'bing', 'var': 'q' } ); @@ -42,21 +41,23 @@ patterns.push( { 'name': 'Baidu', 'pattern': 'baidu', 'var': 'wd' } ); exports.parse = function(url) { var parts = require('url').parse(url, true); - console.log(require('util').inspect(parts)); var found = false; var info = []; - console.log("Patterns: \n" + require('util').inspect(patterns) + "\nLength: " + patterns.length); - for (var i = 0; i < patterns.length; i++) { var search = patterns[i]; - console.log("Checking " + require('util').inspect(search)); - if (parts.hostname.search(search.pattern) != -1) { info['search_engine'] = search.name; - info['search_keywords'] = parts.query['q']; + info['search_keywords'] = parts.query[search.var]; + + /* Special case for Google Image Search */ + if (typeof parts.query['prev'] != 'undefined' && parts.query['prev'].length > 0) { + var dparts = require('url').parse(parts.query['prev'], true); + info['search_keywords'] = dparts.query[search.var]; + } + found = true; break; }