Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
283
gaia/tv_apps/browser/js/search_util.js
Executable file
283
gaia/tv_apps/browser/js/search_util.js
Executable file
|
|
@ -0,0 +1,283 @@
|
|||
'use strict';
|
||||
|
||||
var SearchUtil = {
|
||||
// country code
|
||||
COUNTRY: 'US',
|
||||
|
||||
/* search engine list of the search bar */
|
||||
ENGINE_LIST: {
|
||||
'CN': [
|
||||
{id: 2, name: 'Baidu'},
|
||||
{id: 1, name: 'Bing'}
|
||||
],
|
||||
// default
|
||||
'US': [
|
||||
{id: 1, name: 'Bing'},
|
||||
{id: 0, name: 'Google'}
|
||||
]
|
||||
},
|
||||
// search engine
|
||||
engineList: null,
|
||||
searchId: null,
|
||||
searchIdx: null,
|
||||
|
||||
DOMAIN_LIST: {
|
||||
'US':'com' , 'CA':'ca' , 'DE':'de' , 'IE':'ie' ,
|
||||
'NL':'nl' , 'HU':'hu' , 'PL':'pl' , 'CZ':'cz' ,
|
||||
'SK':'sk' , 'IT':'it' , 'GB':'co.uk' , 'SI':'si' ,
|
||||
'GR':'gr' , 'PT':'pt' , 'DK':'dk' , 'FI':'fi' ,
|
||||
'HR':'hr' , 'NO':'no' , 'RO':'ro' , 'RU':'ru' ,
|
||||
'BG':'bg' , 'LT':'lt' , 'YU':'rs' , 'SE':'se' ,
|
||||
'LV':'lv' , 'EE':'ee' , 'TR':'com.tr' , 'BR':'com.br' ,
|
||||
'ID':'co.id' , 'CN':'com.hk' , 'TW':'com.tw' , 'HK':'com.hk' ,
|
||||
'VN':'com.vn' , 'TH':'co.th' , 'SA':'com.sa' , 'FR':'fr' ,
|
||||
'ES':'es' , 'SG':'com.sg' , 'AU':'com.au' , 'NZ':'co.nz' ,
|
||||
'IN':'co.in' , 'MY':'com.my' , 'AE':'ae' , 'KW':'com.kw' ,
|
||||
'MX':'com.mx' , 'AT':'at' , 'BE':'be' , 'CH':'ch' ,
|
||||
'MT':'com.mt' , 'AD':':' , 'LU':'lu' , 'IS':'is' ,
|
||||
'UA':'com.ua' , 'KZ':'kz' , 'CIS':'by' , 'UK':'co.uk' ,
|
||||
'CL':'cl' , 'PE':'com.pe' , 'CO':'com.co' , 'AR':'com.ar' ,
|
||||
'PA':'com.pa' , 'JP':'co.jp' , 'MK':'mk' , 'MM':'com.mm'
|
||||
},
|
||||
// search domain
|
||||
domainList: null,
|
||||
|
||||
/* URL of each search engine */
|
||||
SEARCH_URL: {
|
||||
//Google :
|
||||
0 : [
|
||||
"http://www.google.DOMAIN/search?ie=UTF-8&oe=UTF-8&q=",
|
||||
"http://www.google.DOMAIN/search?ie=UTF-8&oe=UTF-8&tbm=isch&q=",
|
||||
"http://www.google.DOMAIN/search?ie=UTF-8&oe=UTF-8&tbm=vid&q=",
|
||||
"http://www.google.DOMAIN/search?ie=UTF-8&oe=UTF-8&tbm=nws&q=",
|
||||
"http://maps.google.com/maps?q=",
|
||||
"http://www.youtube.DOMAIN/results?search_query="
|
||||
],
|
||||
//bing :
|
||||
1 : [
|
||||
"http://www.bing.com/search?FORM=PANSSB&PC=PANS&q=",
|
||||
"http://www.bing.com/images/search?FORM=PANSSB&PC=PANS&q=",
|
||||
//"http://www.bing.com/videos/search?FORM=PANSSB&PC=PANS&q=",
|
||||
"http://www.bing.com/?scope=video&FORM=PANSSB&PC=PANS&q=",
|
||||
"http://www.bing.com/news/search?FORM=PANSSB&PC=PANS&q=",
|
||||
"http://www.bing.com/maps/?FORM=PANSSB&PC=PANS&q=",
|
||||
"http://www.bing.com/videos/search?FORM=PANSSB&PC=PANS&q="
|
||||
],
|
||||
//Baidu :
|
||||
2 : [
|
||||
"http://www.baidu.com/s?word=",
|
||||
"http://image.baidu.com/i?word=",
|
||||
"http://video.baidu.com/v?word=",
|
||||
"http://news.baidu.com/ns?word=",
|
||||
"http://map.baidu.com/m?word=",
|
||||
"http://video.baidu.com/v?word="
|
||||
]
|
||||
},
|
||||
searchUrl: null,
|
||||
|
||||
// keyword for auto category selection at voice search
|
||||
SEARCH_CAT: {
|
||||
//Google :
|
||||
0 :
|
||||
[
|
||||
[ [ "www.google.", "/search", "" ] ],
|
||||
[ [ "www.google.", "/search", "tbm=isch" ],
|
||||
[ "www.google.", "/imghp", "" ] ],
|
||||
[ [ "www.google.", "/search", "tbm=vid" ],
|
||||
[ "www.google.", "/videohp","" ] ],
|
||||
[ [ "www.google.", "/search", "tbm=nws" ],
|
||||
[ "news.google.", "/nwshp", "" ] ],
|
||||
[ [ "maps.google.", "", "" ],
|
||||
[ "www.google.", "/maps", "" ] ],
|
||||
[ [ "www.youtube.", "", "" ] ]
|
||||
],
|
||||
//Bing :
|
||||
1 :
|
||||
[
|
||||
[ [ "www.bing.com", "/search", "" ] ],
|
||||
[ [ "www.bing.com", "/images", "" ],
|
||||
[ "www.bing.com", "", "scope=images" ] ],
|
||||
[ [ "www.bing.com", "/videos", "" ],
|
||||
[ "www.bing.com", "", "scope=video" ] ],
|
||||
[ [ "www.bing.com", "/news", "" ],
|
||||
[ "www.bing.com", "", "scope=news" ] ],
|
||||
[ [ "www.bing.com", "/maps", "" ] ],
|
||||
[ [ "www.bing.com", "/videos", "" ],
|
||||
[ "www.bing.com", "", "scope=video" ] ]
|
||||
],
|
||||
//Baidu :
|
||||
2 :
|
||||
[
|
||||
[ [ "www.baidu.com", "", "" ] ],
|
||||
[ [ "image.baidu.com", "", "" ] ],
|
||||
[ [ "video.baidu.com", "", "" ] ],
|
||||
[ [ "news.baidu.com", "", "" ] ],
|
||||
[ [ "map.baidu.com", "", "" ] ],
|
||||
[ [ "video.baidu.com", "", "" ] ]
|
||||
]
|
||||
},
|
||||
|
||||
displaySearchEngineName: false,
|
||||
|
||||
/**
|
||||
* init SearchUtil
|
||||
*/
|
||||
init: function searchUtil_init(country, cb) {
|
||||
// set country code
|
||||
this.COUNTRY = country;
|
||||
|
||||
// search engine (default US)
|
||||
this.engineList = (country in this.ENGINE_LIST)?
|
||||
this.ENGINE_LIST[country]: this.ENGINE_LIST['US'];
|
||||
|
||||
// search domain (default US)
|
||||
this.domainList = (country in this.DOMAIN_LIST)?
|
||||
this.DOMAIN_LIST[country]: this.DOMAIN_LIST['US'];
|
||||
|
||||
// search URL (default US)
|
||||
this.searchUrl = this.SEARCH_URL;
|
||||
var index;
|
||||
for(index in this.searchUrl[0]){
|
||||
this.searchUrl[0][index] =
|
||||
this.searchUrl[0][index].replace(/DOMAIN/, this.domainList);
|
||||
}
|
||||
|
||||
// get all database
|
||||
this.getAllDatabase(cb);
|
||||
},
|
||||
|
||||
/**
|
||||
* get all database
|
||||
*/
|
||||
getAllDatabase: function searchUtil_getAllDatabase(cb){
|
||||
// DB get all
|
||||
this.getSearchEngineId((function(){
|
||||
this.initDatabase((function(){
|
||||
if(cb){
|
||||
cb();
|
||||
}
|
||||
}).bind(this))
|
||||
}).bind(this));
|
||||
},
|
||||
|
||||
// init database
|
||||
initDatabase: function search_initDatabase(cb){
|
||||
// default search engine url
|
||||
if(this.searchId != null){
|
||||
this.convSearchIdToIdx(this.searchId);
|
||||
}else{
|
||||
this.searchIdx = 0;
|
||||
this.displaySearchEngineName = true;
|
||||
}
|
||||
if(cb){
|
||||
cb();
|
||||
}
|
||||
},
|
||||
|
||||
// get search engine id
|
||||
getSearchEngineId: function searchUtil_getSearchEngineId(cb){
|
||||
BrowserDB.getSetting('SEARCH_ENGINE', (function(result) {
|
||||
Browser.debug("SEARCH_ENGINE = " + result);
|
||||
if(result != undefined){
|
||||
this.searchId = result;
|
||||
this.convSearchIdToIdx(result);
|
||||
}
|
||||
if(cb){
|
||||
cb(result);
|
||||
}
|
||||
}).bind(this));
|
||||
},
|
||||
|
||||
// set search engine id
|
||||
setSearchEngineId: function searchUtil_setSearchEngineId(id, cb){
|
||||
this.searchId = id;
|
||||
this.convSearchIdToIdx(id);
|
||||
BrowserDB.updateSetting(id, 'SEARCH_ENGINE', cb);
|
||||
},
|
||||
|
||||
// get search engine index
|
||||
getSearchEngineIdx: function searchUtil_getSearchEngineIdx(cb){
|
||||
if(this.searchId){
|
||||
this.convSearchIdToIdx(this.searchId);
|
||||
if(cb){
|
||||
cb();
|
||||
}
|
||||
}else{
|
||||
BrowserDB.getSetting('SEARCH_ENGINE', (function(result) {
|
||||
if(result != undefined){
|
||||
this.convSearchIdToIdx(result);
|
||||
}
|
||||
if(cb){
|
||||
cb();
|
||||
}
|
||||
}).bind(this));
|
||||
}
|
||||
},
|
||||
|
||||
// Convert the search_id (DB) to search index.
|
||||
convSearchIdToIdx: function searchUtil_convSearchIdToIdx(search_id) {
|
||||
var index = null;
|
||||
for(var i in this.engineList){
|
||||
if(search_id == this.engineList[i].id){
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(index == null){
|
||||
// terminated search service of Web. so select default.
|
||||
this.searchIdx = 0;
|
||||
this.searchId = this.engineList[0].id;
|
||||
BrowserDB.updateSetting(undefined, 'SEARCH_ENGINE');
|
||||
this.displaySearchEngineName = false;
|
||||
}else{
|
||||
this.searchIdx = index;
|
||||
this.displaySearchEngineName = true;
|
||||
}
|
||||
},
|
||||
|
||||
// Get Search Engine List.
|
||||
getEngineList: function searchUtil_getEngineList(){
|
||||
return this.engineList;
|
||||
},
|
||||
// Get Current Search Engine List.
|
||||
getCurrentEngineList: function searchUtil_getCurrentEngineList(){
|
||||
if(this.searchIdx != null && this.searchIdx < this.engineList.length) {
|
||||
return this.engineList[this.searchIdx];
|
||||
}else{
|
||||
return this.engineList[0];
|
||||
}
|
||||
},
|
||||
// Get Current Search Engine Name.
|
||||
getCurrentEngineName: function searchUtil_getCurrentEngineName(){
|
||||
if(this.searchIdx != null && this.searchIdx < this.engineList.length) {
|
||||
return this.engineList[this.searchIdx].name;
|
||||
}else{
|
||||
return this.engineList[0].name;
|
||||
}
|
||||
},
|
||||
// Get Search Id.
|
||||
getSearchId: function searchUtil_getSearchId(){
|
||||
return this.searchId;
|
||||
},
|
||||
// Get Search Index.
|
||||
getSearchIdx: function searchUtil_getSearchIdx(){
|
||||
return this.searchIdx;
|
||||
},
|
||||
// Get Search Url.
|
||||
getSearchUrl: function searchUtil_getSearchUrl(){
|
||||
return this.searchUrl;
|
||||
},
|
||||
// Get Current Search Url.
|
||||
getCurrentSearchUrl: function searchUtil_getCurrentSearchUrl(){
|
||||
if(this.searchId != null && (this.searchId in this.searchUrl)){
|
||||
return this.searchUrl[this.searchId];
|
||||
}else{
|
||||
return this.searchUrl[this.engineList[0].id];
|
||||
}
|
||||
},
|
||||
// Get Display Search Engine Name flag.
|
||||
getDispFlag: function searchUtil_getDispFlag(){
|
||||
return this.displaySearchEngineName;
|
||||
},
|
||||
};
|
||||
|
||||
Loading…
Reference in a new issue