Author: ssmalamb
Date: 2007-06-29 15:00:40 +0200 (Fri, 29 Jun 2007)
New Revision: 5469
Modified:
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VideoSearchCommand.java
Log:
Added alpha video language navigator
Modified:
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VideoSearchCommand.java
===================================================================
---
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VideoSearchCommand.java
2007-06-29 13:00:34 UTC (rev 5468)
+++
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/VideoSearchCommand.java
2007-06-29 13:00:40 UTC (rev 5469)
@@ -74,19 +74,23 @@
}
final String sortByString = this.getParameters().get("userSortBy") !=
null ? (String) this.getParameters().get("userSortBy") : "datetime";
final String videoSource = this.getParameters().get("videosource") !=
null ? (String) this.getParameters().get("videosource") : "";
- final String language = this.getParameters().get("language") != null ?
(String) this.getParameters().get("language") : "";
+ final String videoLanguage = this.getParameters().get("videoLanguage")
!= null ? (String) this.getParameters().get("videoLanguage") : "";
String biasDate = sortByString.equals("standard") ? "100" : "0"; //
default is normally datetime which is 0
// Sample url:
http://usp1.blinkx.com/partnerapi/sesam/?Anylanguage=true&Adultfilter=true&channelhits=true&printfields=media_duration&searchtype=enrichment&BiasDate=0&Start=1&text=pixies
// Please note that Schibsted is charged for every search on Blinkx!
+
+//
http://usp1.blinkx.com/partnerapi/sesam/?text=jack&printfields=media_format_string,language&fieldhits=language,media_format_string&highlight=terms,summaryterms&channelhits=true
+
StringBuilder url = new StringBuilder(255);
-
url.append("/partnerapi/sesam/?Anylanguage=true&Adultfilter=true&channelhits=true&printfields=media_duration");
+
url.append("/partnerapi/sesam/?Adultfilter=true&channelhits=true&printfields=media_duration,media_format_string,language&fieldhits=language,media_format_string&highlight=terms,summaryterms");
url.append("&searchtype="); url.append(searchType);
url.append(videoSource.length()>0?"&databasematch="+videoSource.toLowerCase():"");
+
url.append(videoLanguage.length()>0?"&language="+videoLanguage.toUpperCase():"&Anylanguage=true");
url.append("&BiasDate="); url.append(biasDate);
- url.append("&Start="); url.append(getCurrentOffset(1));
+ url.append("&Start="); url.append(getCurrentOffset(0));
url.append("&text="); url.append(query);
- LOG.debug("zz:VSC_URL: "+url);
+ LOG.debug("zz:VSC_URL: http://usp1.blinkx.com"+url);
return url.toString();
}
@@ -107,6 +111,8 @@
while(nextSibling != null ) {
if (nextSibling.getNodeName().equals("autn:channelhits")) {
addVideoSourcesNavigatorField(searchResult,
nextSibling);
+ } else if
(nextSibling.getNodeName().equals("autn:languagehits")) {
+ addVideoLanguageNavigatorField(searchResult,
nextSibling);
} else if
(nextSibling.getNodeName().equals("autn:totalhits")) {
searchResult.setHitCount(Integer.parseInt(nextSibling.getTextContent()));
} else if (nextSibling.getNodeName().equals("autn:hit")) {
@@ -166,6 +172,27 @@
}
}
+ private void addVideoLanguageNavigatorField(final
BasicResultList<ResultItem> searchResult, Node nextSibling) {
+ TreeMap<String, String> videoLanguage = new TreeMap<String, String>();
+ Node channelSibling = nextSibling.getFirstChild();
+ while(channelSibling != null ) {
+
videoLanguage.put(channelSibling.getAttributes().getNamedItem("name").getTextContent(),channelSibling.getTextContent());
+ channelSibling = channelSibling.getNextSibling();
+ }
+// TreeSet<Map.Entry> set = new TreeSet<Map.Entry>();
+ TreeSet<Map.Entry> set = new TreeSet<Map.Entry>(new
Comparator<Map.Entry>() {
+ public int compare(Map.Entry a, Map.Entry b) { // Sort descending
by hits, ascending by case insensitive channel name if number of hits is equal
+ int ret = ((Comparable)
Integer.parseInt((String)((Map.Entry)a).getValue())).compareTo(Integer.parseInt((String)((Map.Entry)b).getValue()))*-1;
+ if (ret == 0) {
+ ret = ((Comparable)
((Map.Entry)a).getKey()).toString().toLowerCase().compareTo(((Map.Entry)b).getKey().toString().toLowerCase());
+ }
+ return ret;
+ }
+ });
+ set.addAll(videoLanguage.entrySet());
+ searchResult.addObjectField("videoLanguages", set);
+ }
+
private void addVideoSourcesNavigatorField(final
BasicResultList<ResultItem> searchResult, Node nextSibling) {
TreeMap<String, String> videoSources = new TreeMap<String, String>();
Node channelSibling = nextSibling.getFirstChild();
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits