if ( subs.getHistory().getLastScanTime() == 0 ){
subs.getManager().getScheduler().download(
subs,
false,
new SubscriptionDownloadListener()
{
public void
complete(
Subscription subs )
{
if ( !handleSubscriptionAuth( subs, result )){
encodeResults( subs, result );
sendBrowserMessage( "metasearch", "readSubscriptionResultsCompleted", result );
openCloseSearchDetailsListener.resizeMainBrowser();
}
}
public void
failed(
Subscription subs,
SubscriptionException error )
{
result.put( "error", "read failed: " + Debug.getNestedExceptionMessage(error));
sendBrowserMessage( "metasearch", "readSubscriptionResultsFailed", result );
}
});
}else{
encodeResults( subs, result );
sendBrowserMessage( "metasearch", "readSubscriptionResultsCompleted", result );
openCloseSearchDetailsListener.resizeMainBrowser();
}
}
}
}catch( Throwable e ){
result.put( "error", "read failed: " + Debug.getNestedExceptionMessage(e));
sendBrowserMessage("metasearch", "readSubscriptionFailed",result);
}
}else if( OP_DELETE_SUBSCRIPTION_RESULTS.equals(opid)){
Map decodedMap = message.getDecodedMap();
String sid = (String)decodedMap.get("id");
List rids = (List)decodedMap.get( "rids" );
try{
Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( sid );
if ( subs == null ){
Map params = new HashMap();
params.put( "error", "Subscription not found" );
sendBrowserMessage("metasearch", "deleteSubscriptionResultsFailed",params);
}else{
String[] rids_a = (String[])rids.toArray( new String[rids.size()]);
subs.getHistory().deleteResults( rids_a );
Map result = new HashMap();
result.put( "rids", rids);
sendBrowserMessage( "metasearch", "deleteSubscriptionResultsCompleted", result );
}
} catch( Throwable e ){
Map params = new HashMap();
params.put( "error", "delete failed: " + Debug.getNestedExceptionMessage(e));
sendBrowserMessage("metasearch", "deleteSubscriptionResultsFailed",params);
}
}else if( OP_MARK_SUBSCRIPTION_RESULTS.equals(opid)){
Map decodedMap = message.getDecodedMap();
String sid = (String)decodedMap.get("id");
List rids = (List)decodedMap.get( "rids" );
List reads = (List)decodedMap.get( "reads" );
Map result = new HashMap();
try{
Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( sid );
if ( subs == null ){
result.put( "error", "Subscription not found" );
sendBrowserMessage("metasearch", "markSubscriptionResultsFailed",result);
}else{
String[] rids_a = (String[])rids.toArray( new String[rids.size()]);
boolean[] reads_a = new boolean[reads.size()];
for (int i=0;i<reads.size();i++){
reads_a[i] = ((Boolean)reads.get(i)).booleanValue();
}
subs.getHistory().markResults( rids_a, reads_a );
result.put( "rids", rids);
result.put( "reads", reads);
sendBrowserMessage( "metasearch", "markSubscriptionResultsCompleted", result );
}
} catch( Throwable e ){
result.put( "error", "mark failed: " + Debug.getNestedExceptionMessage(e));
sendBrowserMessage("metasearch", "markSubscriptionResultsFailed",result);
}
}else if( OP_DOWNLOAD_SUBSCRIPTION.equals(opid)) {
Map decodedMap = message.getDecodedMap();
final Long tid = (Long) decodedMap.get("tid");
final String sid = (String) decodedMap.get("id");
final Map result = new HashMap();
if ( tid != null )result.put( "tid", tid );
try{
Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( sid );
if ( subs == null ){
result.put( "error", "Subscription not found" );
sendBrowserMessage("metasearch", "downloadSubscriptionFailed", result );
}else{
result.put( "id", subs.getID());
if ( !handleSubscriptionAuth( subs, result )){
subs.getManager().getScheduler().download(
subs,
false,
new SubscriptionDownloadListener()
{
public void
complete(
Subscription subs )
{