Added News,Video search support

This commit is contained in:
Lennard Westerveld 2015-03-24 15:50:02 +01:00
parent 352f36d7c9
commit 98fec2aa0f
2 changed files with 82 additions and 4 deletions

View file

@ -38,6 +38,34 @@ Bing.composite("xbox", function(error, res, body){
});
```
#### News Search:
```js
Bing.news("xbox", function(error, res, body){
console.log(body);
},
{
top: 10, // Number of results (max 50)
skip: 3, // Skip first 3 results
newssortby: "Date" //Choices are Date, Relevance
newscategory: "rt_Business" //Choices are rt_Business,rt_Entertainment,rt_Health,rt_Politics,rt_Sports,rt_US,rt_World,rt_ScienceAndTechnology
});
```
#### Video Search:
```js
Bing.videp("xbox", function(error, res, body){
console.log(body);
},
{
top: 10, // Number of results (max 50)
skip: 3, // Skip first 3 result
videofilters: {
duration: 'short',
resolution: 'high'
}
});
```
#### Images Search:
```js
Bing.images("Ninja Turtles", function(error, res, body){

View file

@ -64,10 +64,15 @@ var Bing = function( options ) {
+ "&$skip=" + opts.skip
+ (opts.sources ? "&Sources=%27" + opts.sources + "%27" : '')
+ (opts.newssortby ? "&NewsSortBy=%27" + opts.newssortby + "%27" : '')
+ (opts.newscategory ? "&NewsCategory=%27" + opts.newscategory + "%27" : '')
+ (opts.newslocationoverride ? "&NewsLocationOverride=%27" + opts.newslocationoverride + "%27" : '')
+ (opts.market ? "&Market=%27" + opts.market + "%27" : '')
+ (opts.adult ? "&Adult=%27" + opts.adult + "%27" : '')
+ (opts.imagefilters
? '&' + qs.stringify({ "ImageFilters": "'" + opts.imagefilters + "'" })
: '')
+ (opts.videofilters
? '&' + qs.stringify({ "VideoFilters": "'" + opts.videofilters + "'" })
: '');
request({
@ -148,9 +153,54 @@ Bing.prototype.composite = function(query, callback, options) {
this.searchVertical(query, "Composite", callback, options);
};
// Alias Bing.search to Bing.web
// Note: Keep this for compatibility with older versions
Bing.prototype.search = Bing.prototype.composite;
/**
* Performs a Bing search in the News vertical.
*
* @param {String} query Query term to search for.
*
* @param {requestCallback} callback Callback called with (potentially
* json-parsed) response.
*
* @param {Object} options Options to command, allows overriding
* of rootUri, accKey (Bing API key),
* userAgent, reqTimeout, top, skip,
* @function
*/
Bing.prototype.news = function(query, callback, options) {
this.searchVertical(query, "News", callback, options);
};
/**
* Performs a Bing search in the Video vertical.
*
* @param {String} query Query term to search for.
*
* @param {requestCallback} callback Callback called with (potentially
* json-parsed) response.
*
* @param {Object} options Options to command, allows overriding
* of rootUri, accKey (Bing API key),
* userAgent, reqTimeout, top, skip,
* @function
*/
Bing.prototype.video = function(query, callback, options) {
if (options
&& options.videofilters
&& typeof options.videofilters === 'object') {
var filterQuery = '';
var filters = Object.keys(options.videofilters);
filters.map(function(key, i) {
filterQuery += capitalizeFirstLetter(key) + ':';
filterQuery += capitalizeFirstLetter(options.videofilters[key]);
if (i < filters.length - 1)
filterQuery += '+';
});
options.videofilters = filterQuery;
}
this.searchVertical(query, "Video", callback, options);
};
/**
* Performs a Bing search in the Images vertical.