Examples of Subscription


Examples of com.aelitis.azureus.core.subs.Subscription

     
      if ( subscriptionId != null ){
       
        engines = new Engine[0];
       
        Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( subscriptionId );
       
        if ( subs != null ){
       
          try{
            Engine engine = subs.getEngine();
           
            if ( engine != null ){
             
              engines = new Engine[]{ engine };
            }
          }catch( Throwable e ){
         
            Debug.out( e );
          }
        }
      }
     
      if ( engines == null ){
       
        engines = metaSearchManager.getMetaSearch().getEngines( true, true );
      }
     
      List params = new ArrayList();
      for(int i = 0 ; i < engines.length ; i++) {
        Engine engine = engines[i];
       
        if ( !engine.isActive() || engine.getSource() == Engine.ENGINE_SOURCE_UNKNOWN ){
         
            // don't skip if this is an explicit get
         
          if ( subscriptionId == null ){
         
            continue;
          }
        }
        Map engineMap = new HashMap();
        engineMap.put("id", new Long(engine.getId()));
        engineMap.put("name", engine.getName());
        engineMap.put("favicon", engine.getIcon());
        engineMap.put("dl_link_css", engine.getDownloadLinkCSS());
        engineMap.put("selected", Engine.SEL_STATE_STRINGS[ engine.getSelectionState()]);
        engineMap.put("type", Engine.ENGINE_SOURCE_STRS[ engine.getSource()]);
        engineMap.put("shareable", new Boolean( engine.isShareable()));
        params.add(engineMap);
      }
      sendBrowserMessage("metasearch", "enginesUsed",params);
     
    } else if(OP_GET_ALL_ENGINES.equals(opid)) {

      Engine[] engines = metaSearchManager.getMetaSearch().getEngines( false, true );
      List params = new ArrayList();
      for(int i = 0 ; i < engines.length ; i++) {
        Engine engine = engines[i];
       
        if ( engine.getSource() == Engine.ENGINE_SOURCE_UNKNOWN ){
          continue;
        }
       
        Map engineMap = new HashMap();
        engineMap.put("id", new Long(engine.getId()));
        engineMap.put("name", engine.getName());
        engineMap.put("favicon", engine.getIcon());
        engineMap.put("dl_link_css", engine.getDownloadLinkCSS());
        engineMap.put("selected", Engine.SEL_STATE_STRINGS[ engine.getSelectionState()]);
        engineMap.put("type", Engine.ENGINE_SOURCE_STRS[ engine.getSource()]);
        engineMap.put("shareable", new Boolean( engine.isShareable()));
        params.add(engineMap);
      }
      sendBrowserMessage("metasearch", "engineList",params);
     
    } else if( OP_SET_SELECTED_ENGINES.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      List template_ids = (List)decodedMap.get( "template_ids" );
     
      long[] ids = new long[template_ids.size()];
     
      for (int i=0;i<ids.length;i++ ){
       
        Map m = (Map)template_ids.get(i);
       
        ids[i] = ((Long)m.get("id")).longValue();
      }
     
      boolean  auto = ((Boolean)decodedMap.get( "auto" )).booleanValue();
     
        // there's some code that attempts to switch to 'auto=true' on first use as
        // when 3110 defaults to false and the decision was made to switch this
        // disable the behaviour if we are customised
     
     
      Boolean  is_default = (Boolean)decodedMap.get( "set_default" );
     
      boolean skip = false;
     
      if ( is_default != null && is_default.booleanValue()){
       
        if ( CustomizationManagerFactory.getSingleton().getActiveCustomization() != null ){
         
          skip = true;
        }
      }
     
      try{
        if ( !skip ){
         
          metaSearchManager.setSelectedEngines( ids, auto );
        }
       
        Map params = new HashMap();
        sendBrowserMessage("metasearch", "setSelectedCompleted",params);

      }catch( Throwable e ){
       
        Map params = new HashMap();
        params.put("error",Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "setSelectedFailed",params);
      }
    } else if( OP_CHANGE_ENGINE_SELECTION.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      MetaSearch ms = metaSearchManager.getMetaSearch();
     
      Engine[] engines = ms.getEngines( false, true );
     
      Set selected = new HashSet();
     
      for (int i=0;i<engines.length;i++){
       
        Engine e = engines[i];
       
        if ( e.getSelectionState() == Engine.SEL_STATE_MANUAL_SELECTED ){
         
          selected.add( new Long( e.getId()));
        }
      }
     
      List l_engines = (List)decodedMap.get( "engines" );
     
      for (int i=0;i<l_engines.size();i++){
       
        Map  map = (Map)l_engines.get(i);
       
        long id = ((Long)map.get("id")).longValue();

        String str = (String)map.get( "selected");
       
        if ( str.equalsIgnoreCase( Engine.SEL_STATE_STRINGS[Engine.SEL_STATE_MANUAL_SELECTED])){
         
          selected.add( new Long( id ));
         
        }else if ( str.equalsIgnoreCase( Engine.SEL_STATE_STRINGS[Engine.SEL_STATE_DESELECTED])){
         
          selected.remove( new Long( id ));
        }
      }
     
      long[] ids = new long[selected.size()];
     
      Iterator it = selected.iterator();
     
      int  pos = 0;
     
      while( it.hasNext()){
       
        long   id = ((Long)it.next()).longValue();
       
        ids[pos++] = id;
      }
           
      try{
        metaSearchManager.setSelectedEngines( ids, metaSearchManager.isAutoMode());
       
        Map params = new HashMap();
        sendBrowserMessage("metasearch", "changeEngineSelectionCompleted",params);

      }catch( Throwable e ){
       
        Map params = new HashMap();
        params.put("error",Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "changeEngineSelectionFailed",params);
     
    } else if(OP_GET_AUTO_MODE.equals(opid)) {
           
      boolean mode = metaSearchManager.isAutoMode();
     
      Map params = new HashMap();
     
      params.put( "auto", new Boolean( mode ));

      boolean custom = CustomizationManagerFactory.getSingleton().getActiveCustomization() != null;
           
      params.put( "is_custom", new Boolean( custom ));

      sendBrowserMessage("metasearch", "getAutoModeResult",params);
     
    } else if( OP_SAVE_TEMPLATE.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      String  type_str = (String)decodedMap.get( "type" );
     
      String  name = (String)decodedMap.get( "name" );
     
      Long  l_id  = (Long)decodedMap.get( "id" );
     
      long  id = l_id == null?-1:l_id.longValue();
     
      String  json = (String)decodedMap.get( "value" );
     
      String  cookies = (String)decodedMap.get( "current_cookie" );
     
     
      try{
        Engine engine =
          metaSearchManager.addEngine(
              id,
              type_str.equals( "json" )?Engine.ENGINE_TYPE_JSON:Engine.ENGINE_TYPE_REGEX,
              name,
              json );
       
        engine.setMine( true );
       
        if(cookies!= null && engine instanceof WebEngine) {
          WebEngine we = (WebEngine) engine;
          we.setCookies(cookies);
        }
       
        Map params = new HashMap();
        params.put( "id", new Long( engine.getId() ));
 
        sendBrowserMessage( "metasearch", "saveTemplateCompleted", params );
       
      }catch( Throwable e ){
       
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        params.put("error",Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "saveTemplateFailed",params);
      }
    } else if( OP_LOAD_TEMPLATE.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      long  id  = ((Long)decodedMap.get( "id" )).longValue();
     
      Engine engine = metaSearchManager.getMetaSearch().getEngine( id );
   
      if ( engine == null ){
     
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        params.put("error","Template not found");

        sendBrowserMessage("metasearch", "loadTemplateFailed",params);
       
      }else{
       
        try{
          Map params = new HashMap();
          params.put("id", new Long(engine.getId()));
          params.put("name", engine.getName());
          params.put("type", Engine.ENGINE_TYPE_STRS[ engine.getType()]);
          params.put("value", JSONObject.escape( engine.exportToJSONString()));
          params.put("shareable", new Boolean( engine.isShareable()));
         
          params.put("uid", engine.getUID());
         
          params.put("supports_direct_download",
                  new Boolean(   engine.supportsField( Engine.FIELD_TORRENTLINK ) ||
                          engine.supportsField( Engine.FIELD_DOWNLOADBTNLINK )));
         
          params.put( "auto_dl_supported", new Boolean( engine.getAutoDownloadSupported() == Engine.AUTO_DL_SUPPORTED_YES ));

          sendBrowserMessage( "metasearch", "loadTemplateCompleted", params );
         
        }catch( Throwable e ){
         
          Map params = new HashMap();
          params.put( "id", new Long( id ));
          params.put("error",Debug.getNestedExceptionMessage(e));

          sendBrowserMessage("metasearch", "loadTemplateFailed",params);
        }
      }   
    } else if( OP_DELETE_TEMPLATE.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      long  id  = ((Long)decodedMap.get( "id" )).longValue();
     
      Engine engine = metaSearchManager.getMetaSearch().getEngine( id );
     
      if ( engine == null ){
     
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        params.put( "error", "Template not found" );

        sendBrowserMessage("metasearch", "deleteTemplateFailed",params);
     
      }else if ( engine.getSource() != Engine.ENGINE_SOURCE_LOCAL ){
     
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        params.put( "error", "Template is not local" );

        sendBrowserMessage("metasearch", "deleteTemplateFailed",params);
       
      }else{
       
        engine.delete();
       
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        sendBrowserMessage( "metasearch", "deleteTemplateCompleted", params );
      }
    } else if( OP_TEST_TEMPLATE.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      final long  id    = ((Long)decodedMap.get( "id" )).longValue();
      long  match_count  = ((Long)decodedMap.get( "max_matches" )).longValue();
     
      String searchText   = (String) decodedMap.get("searchText");
      String headers    = (String) decodedMap.get("headers");

      final Long  sid = (Long)decodedMap.get( "sid" );

      Engine engine = metaSearchManager.getMetaSearch().getEngine( id );
     
      if ( engine == null ){
     
        Map params = new HashMap();
        params.put( "id", new Long( id ));
        params.put( "error", "Template not found" );
        if ( sid != null )params.put( "sid", sid );

        sendBrowserMessage("metasearch", "testTemplateFailed",params);
     
      }else{
       
        SearchParameter parameter = new SearchParameter("s",searchText);
        SearchParameter[] parameters = new SearchParameter[] {parameter};

        try{
       
          engine.search(
              parameters,
              new HashMap(),
              (int)match_count,
              (int)match_count,
              headers,
              new ResultListener()
              {
                private String  content;
                private List  matches = new ArrayList();
               
                public void
                contentReceived(
                  Engine     engine,
                  String     _content )
                {
                  content = _content;
                }
               
                public void
                matchFound(
                  Engine     engine,
                  String[]   fields)
                {
                  matches.add( fields );
                }
               
                public void
                resultsReceived(
                  Engine     engine,
                  Result[]   results )
                {               
                }
               
                public void
                resultsComplete(
                  Engine     engine )
                {
                  Map params = new HashMap();
                  params.put( "id", new Long( id ));
                  if ( sid != null )params.put( "sid", sid );
                  params.put( "content", JSONObject.escape( content ));
 
                  JSONArray  l_matches = new JSONArray();
                 
                  params.put( "matches", l_matches );
                 
                  for (int i=0;i<matches.size();i++){
                   
                    String[]  match = (String[])matches.get(i);
                   
                    JSONArray  l_match = new JSONArray();
                   
                    l_matches.add( l_match );
                   
                    for (int j=0;j<match.length;j++){
                     
                      l_match.add( match[j] );
                    }
                  }
                               
                  sendBrowserMessage( "metasearch", "testTemplateCompleted", params );
       
                }
               
                public void
                engineFailed(
                  Engine     engine,
                  Throwable   e )
                {
                  Map params = new HashMap();
                  params.put( "id", new Long( id ));
                  params.put( "error", Debug.getNestedExceptionMessage( e ));
                  if ( sid != null )params.put( "sid", sid );
 
                  sendBrowserMessage("metasearch", "testTemplateFailed",params);
                }
               
                public void
                engineRequiresLogin(
                  Engine     engine,
                  Throwable   e )
                {
                  Map params = new HashMap();
                  params.put( "id", new Long( id ));
                  params.put( "error", Debug.getNestedExceptionMessage( e ));
                  if ( sid != null )params.put( "sid", sid );
 
                  sendBrowserMessage("metasearch", "testTemplateRequiresLogin",params);
                }
              });
        }catch( SearchException e ){
            // listener handles
        }
      } 
    } else if ( OP_EXPORT_TEMPLATE.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();

      final long  id    = ((Long)decodedMap.get( "id" )).longValue();
     
      final Engine engine = metaSearchManager.getMetaSearch().getEngine( id );
     
      if ( engine == null ){
       
        Map params = new HashMap();
        params.put( "error", "template '" + id + "' not found" );

        sendBrowserMessage("metasearch", "exportTemplateFailed",params);
       
      }else{
        final Shell shell = Utils.findAnyShell();
       
        shell.getDisplay().asyncExec(
          new AERunnable()
          {
            public void
            runSupport()
            {
              FileDialog dialog =
                new FileDialog( shell, SWT.SYSTEM_MODAL | SWT.SAVE );
             
              dialog.setFilterPath( TorrentOpener.getFilterPathData() );
                         
              dialog.setText(MessageText.getString("metasearch.export.select.template.file"));
             
              dialog.setFilterExtensions(new String[] {
                  "*.vuze",
                  "*.vuz",
                  Constants.FILE_WILDCARD
                });
              dialog.setFilterNames(new String[] {
                  "*.vuze",
                  "*.vuz",
                  Constants.FILE_WILDCARD
                });
             
              String path = TorrentOpener.setFilterPathData( dialog.open());
   
              if ( path != null ){
               
                String lc = path.toLowerCase();
               
                if ( !lc.endsWith( ".vuze" ) && !lc.endsWith( ".vuz" )){
                 
                  path += ".vuze";
                }
               
                try{
                  engine.exportToVuzeFile( new File( path ));
                 
                  Map params = new HashMap();
                  params.put( "id", new Long( id ));
                  sendBrowserMessage( "metasearch", "exportTemplateCompleted", params );

                }catch( Throwable e ){
                 
                  Map params = new HashMap();
                  params.put( "id", new Long( id ));
                  params.put( "error", "save failed: " + Debug.getNestedExceptionMessage(e));

                  sendBrowserMessage("metasearch", "exportTemplateFailed",params);
                }
              }else{
               
                Map params = new HashMap();
                params.put( "id", new Long( id ));
                params.put( "error", "operation cancelled" );

                sendBrowserMessage("metasearch", "exportTemplateFailed",params);
              }
            }
          });
      }
    }else if ( OP_IMPORT_TEMPLATE.equals(opid)){
           
      final Shell shell = Utils.findAnyShell();
     
      shell.getDisplay().asyncExec(
        new AERunnable()
        {
          public void
          runSupport()
          {
            FileDialog dialog =
              new FileDialog( shell, SWT.SYSTEM_MODAL | SWT.OPEN );
           
            dialog.setFilterPath( TorrentOpener.getFilterPathData() );
                       
            dialog.setText(MessageText.getString("metasearch.import.select.template.file"));
           
            dialog.setFilterExtensions(new String[] {
                "*.vuze",
                "*.vuz",
                Constants.FILE_WILDCARD
              });
            dialog.setFilterNames(new String[] {
                "*.vuze",
                "*.vuz",
                Constants.FILE_WILDCARD
              });
           
            String path = TorrentOpener.setFilterPathData( dialog.open());
 
            if ( path != null ){
             
              VuzeFileHandler vfh = VuzeFileHandler.getSingleton();
             
              VuzeFile vf = vfh.loadAndHandleVuzeFile( path, VuzeFileComponent.COMP_TYPE_METASEARCH_TEMPLATE );
             
              if ( vf == null ){
               
                Map params = new HashMap();
                params.put( "error", "invalid .vuze file" );

                sendBrowserMessage("metasearch", "importTemplateFailed",params);
               
              }else{
               
                VuzeFileComponent[] comps = vf.getComponents();
               
                for (int i=0;i<comps.length;i++){
                 
                  VuzeFileComponent comp = comps[i];
                 
                  if ( comp.getType() == VuzeFileComponent.COMP_TYPE_METASEARCH_TEMPLATE ){
                   
                    Engine engine = (Engine)comp.getData( Engine.VUZE_FILE_COMPONENT_ENGINE_KEY );
                   
                    if ( engine != null ){
                     
                      Map params = new HashMap();
                      params.put( "id", new Long( engine.getId()));
                      sendBrowserMessage( "metasearch", "importTemplateCompleted", params );

                      return;
                    }
                  }
                }
               
                Map params = new HashMap();
                params.put( "error", "invalid search template file" );

                sendBrowserMessage("metasearch", "importTemplateFailed",params);
              }
            }else{
             
              Map params = new HashMap();
                // don't change this message as the UI uses it!
              params.put( "error", "operation cancelled" );

              sendBrowserMessage("metasearch", "importTemplateFailed",params);
            }
          }
        });
    }else if ( OP_OPEN_SEARCH_RESULTS.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();
      openCloseSearchDetailsListener.openSearchResults(decodedMap);
    }else if ( OP_CLOSE_SEARCH_RESULTS.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();
      openCloseSearchDetailsListener.closeSearchResults(decodedMap);
    }else if(OP_LOAD_TORRENT.equals(opid)) {
      Map decodedMap = message.getDecodedMap();
     
      String torrentUrl    = (String) decodedMap.get( "torrent_url" );
      String referer_str  = (String) decodedMap.get( "referer_url" );
     
      if ( UrlFilter.getInstance().isWhitelisted( torrentUrl )){
       
        ContentNetwork cn = ContentNetworkManagerFactory.getSingleton().getContentNetworkForURL( torrentUrl );
       
        if ( cn == null ){
         
          cn = ConstantsVuze.getDefaultContentNetwork();
        }
       
        torrentUrl = cn.appendURLSuffix( torrentUrl, false, true );
      }
     
      try {
     
        Map headers = UrlUtils.getBrowserHeaders( referer_str );
       
        String subscriptionId    = ((String)decodedMap.get("subs_id"));
        String subscriptionResultId = ((String)decodedMap.get("subs_rid"));
       
        if ( subscriptionId != null ){
         
          Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( subscriptionId );
         
          if ( subs != null ){
         
            try{
              Engine engine = subs.getEngine();
             
              if ( engine != null && engine instanceof WebEngine ){
               
                WebEngine webEngine = (WebEngine) engine;
               
                if ( webEngine.isNeedsAuth()){
                 
                  headers.put( "Cookie",webEngine.getCookies());
                }
              }
            }catch( Throwable e ){
           
              Debug.out( e );
            }
           
            if ( subscriptionResultId != null ){
           
              subs.addPotentialAssociation( subscriptionResultId, torrentUrl );
            }
          }
        }else{
          try{
            long engineID    = ((Long)decodedMap.get("engine_id")).longValue();

            Engine engine = metaSearchManager.getMetaSearch().getEngine( engineID );
           
            if ( engine != null ){
             
              engine.addPotentialAssociation( torrentUrl );
            }
           
            if ( engine != null && engine instanceof WebEngine ){
             
              WebEngine webEngine = (WebEngine) engine;
             
              if ( webEngine.isNeedsAuth()){
               
                headers.put( "Cookie",webEngine.getCookies());
              }
            }
          }catch( Throwable e ){
         
            Debug.printStackTrace(e);
          }
        }
       
        Boolean  play_now = (Boolean)decodedMap.get( "play-now" );
       
        if ( play_now != null && play_now.booleanValue()){
         
          synchronized( MetaSearchListener.class ){
           
            pending_play_now_urls.add( torrentUrl );
          }
        }
       
        PluginInitializer.getDefaultInterface().getDownloadManager().addDownload(
            new URL(torrentUrl),
            headers );
       
        Map params = new HashMap();
        params.put("torrent_url",torrentUrl);
        params.put("referer_url",referer_str);
        sendBrowserMessage("metasearch", "loadTorrentCompleted",params);
       
      } catch(Exception e) {
        Map params = new HashMap();
        params.put("torrent_url",torrentUrl);
        params.put("referer_url",referer_str);
        params.put( "error", e.getMessage() );
        sendBrowserMessage("metasearch", "loadTorrentFailed",params);
      }
       
    }else if(OP_HAS_LOAD_TORRENT.equals(opid)) {
     
      Map params = new HashMap();
      params.put("result","1");
      sendBrowserMessage("metasearch", "hasLoadTorrent",params);
     
    }else if(OP_CREATE_SUBSCRIPTION.equals(opid)) {
     
      Map decodedMap = message.getDecodedMap();
     
      Long   tid = (Long) decodedMap.get("tid");

      String     name     = (String) decodedMap.get( "name" );
      Boolean   isPublic  = (Boolean) decodedMap.get( "is_public" );
      Map      options    = (Map)decodedMap.get( "options" );
     
      Boolean   isEnabled    = (Boolean)options.get( "is_enabled" );
      Boolean   autoDownload  = (Boolean)options.get( "auto_dl" );

      Map result = new HashMap();

      if ( tid != null )result.put( "tid", tid );

      try{
        JSONObject  payload = new JSONObject();
       
          // change this you need to change update too below
       
        payload.put( "engine_id", decodedMap.get( "engine_id" ));
        payload.put( "search_term", decodedMap.get( "search_term" ));
        payload.put( "filters", decodedMap.get( "filters" ));
        payload.put( "schedule", decodedMap.get( "schedule" ));
        payload.put( "options", decodedMap.get( "options" ));
       
        Subscription subs = SubscriptionManagerFactory.getSingleton().create(name, isPublic.booleanValue(), payload.toString());
       
        subs.getHistory().setDetails(
          isEnabled==null?true:isEnabled.booleanValue(),
          autoDownload==null?false:autoDownload.booleanValue());
               
        result.put( "id", subs.getID());
       
        sendBrowserMessage( "metasearch", "createSubscriptionCompleted", result );

      } catch( Throwable e ){
       
        result.put( "error", "create failed: " + Debug.getNestedExceptionMessage(e));

        sendBrowserMessage( "metasearch", "createSubscriptionFailed", result );
      }
    }else if( OP_READ_SUBSCRIPTION.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();
     
      final Long   tid = (Long) decodedMap.get("tid");

      final String sid = (String) decodedMap.get("id");
     
      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", "readSubscriptionFailed",result);
         
        }else{
               
          boolean  shareable = subs.isShareable();
         
            // override public flag if not shareable
         
          result.put( "id", subs.getID());
          result.put( "name", subs.getName());
          result.put( "is_public", new Boolean( shareable && subs.isPublic()));
          result.put( "is_author", new Boolean( subs.isMine()));
          result.put( "is_shareable", new Boolean( shareable ));
          result.put( "auto_dl_supported", new Boolean( subs.isAutoDownloadSupported()));
         
          SubscriptionHistory history = subs.getHistory();
         
          Map  options = new HashMap();

          result.put( "options", options );

          options.put( "is_enabled", new Boolean( history.isEnabled()));
          options.put( "auto_dl", new Boolean( history.isAutoDownload()));
         
          Map  info = new HashMap();

          result.put( "info", info );
         
          info.put( "last_scan", new Long( history.getLastScanTime()));
          info.put( "last_new", new Long( history.getLastNewResultTime()));
          info.put( "num_unread", new Long( history.getNumUnread()));
          info.put( "num_read", new Long( history.getNumRead()));
         
          String json = subs.getJSON();
         
          Map map = JSONUtils.decodeJSON( json );
         
          result.put( "engine_id", map.get( "engine_id" ));
          result.put( "search_term", map.get( "search_term" ));
          result.put( "filters", map.get( "filters" ));
          result.put( "schedule", map.get( "schedule" ));
         
          sendBrowserMessage( "metasearch", "readSubscriptionCompleted", result );
        }
      } catch( Throwable e ){
       
        result.put( "error", "read failed: " + Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "readSubscriptionFailed",result);
      }
    }else if (OP_UPDATE_SUBSCRIPTION.equals(opid)) {
     
      Map decodedMap = message.getDecodedMap();
     
      final Long   tid = (Long) decodedMap.get("tid");
     
      final String   name     = (String)decodedMap.get("name");
      final Boolean   isPublic  = (Boolean)decodedMap.get( "is_public" );
      final String   sid     = (String)decodedMap.get("id");
     
      Map      options    = (Map)decodedMap.get( "options" );
     
      Boolean   isEnabled    = (Boolean)options.get( "is_enabled" );
      Boolean   autoDownload  = (Boolean)options.get( "auto_dl" );

      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", "updateSubscriptionFailed",result);
         
        }else{
         
          JSONObject  payload = new JSONObject();
         
            // change this you need to change create too above
       
          payload.put( "engine_id", decodedMap.get( "engine_id" ));
          payload.put( "search_term", decodedMap.get( "search_term" ));
          payload.put( "filters", decodedMap.get( "filters" ));
          payload.put( "schedule", decodedMap.get( "schedule" ));
          payload.put( "options", decodedMap.get( "options" ));
       
          boolean  changed = subs.setDetails( name, isPublic.booleanValue(), payload.toString());
         
          subs.getHistory().setDetails(
              isEnabled==null?true:isEnabled.booleanValue(),
              autoDownload==null?false:autoDownload.booleanValue());

          if ( changed ){
           
            subs.reset();
           
            try{
              subs.getManager().getScheduler().downloadAsync(subs, true);
             
            }catch( Throwable e ){
             
              Debug.out(e);
            }
          }
         
          result.put( "id", subs.getID());
         
          sendBrowserMessage( "metasearch", "updateSubscriptionCompleted", result );
        }
      } catch( Throwable e ){
       
        result.put( "error", "update failed: " + Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "updateSubscriptionFailed",result);
      }
     
    }else if (OP_SUBSCRIPTION_SET_AUTODL.equals(opid)){
     
      Map decodedMap = message.getDecodedMap();
     
      String   sid = (String)decodedMap.get("id");
     
      Long  tid = (Long) decodedMap.get("tid");

      Boolean   autoDownload  = (Boolean)decodedMap.get( "auto_dl" );

      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", "setSubscriptionAutoDownloadFailed",result);
         
        }else{
         
          subs.getHistory().setAutoDownload( autoDownload.booleanValue());
         
          sendBrowserMessage( "metasearch", "setSubscriptionAutoDownloadCompleted", result );
        }
      } catch( Throwable e ){
       
        result.put( "error", "update failed: " + Debug.getNestedExceptionMessage(e));

        sendBrowserMessage("metasearch", "setSubscriptionAutoDownloadFailed",result);
      }
     
    }else if(OP_READ_SUBSCRIPTION_RESULTS.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{
        final Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID( sid );
       
        if ( subs == null ){
               
          result.put( "error", "Subscription not found" );

          sendBrowserMessage("metasearch", "readSubscriptionResultsFailed",result);
         
        }else{
           
          result.put( "id", subs.getID());
                   
          if ( !handleSubscriptionAuth( subs, result )){
         
            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
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

          boolean    is_public,
          String    creator_ref )
       
          throws Exception
        {
          Subscription subs =
            SubscriptionManagerFactory.getSingleton().createSingletonRSS(
            name, url, interval );
         
          if ( subs.isPublic() != is_public ){
           
            subs.setPublic( is_public );
          }
         
          if ( creator_ref != null ){
           
            subs.setCreatorRef( creator_ref );
          }
        }
       
        public boolean
        canPlay(
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

      String subID = MapUtils.getMapString(decodedMap, "subscription-id", null);
      String subresID = MapUtils.getMapString(decodedMap,
          "subscription-result-id", null);

      if (subID != null && subresID != null) {
        Subscription subs = SubscriptionManagerFactory.getSingleton().getSubscriptionByID(
            subID);
        if (subs != null) {
          subs.addPotentialAssociation(subresID, dlURL);
        }
      }

      // pass decodeMap down to TorrentUIUtilsV3.loadTorrent in case
      // is needs some other params
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    info.setProficiency(TableColumnInfo.PROFICIENCY_BEGINNER);
  }

  // @see org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener#cellPaint(org.eclipse.swt.graphics.GC, org.gudy.azureus2.plugins.ui.tables.TableCell)
  public void cellPaint(GC gc, TableCellSWT cell) {
    Subscription sub = (Subscription) cell.getDataSource();

    if (sub.getHistory().getNumUnread() > 0) {
      Rectangle cellBounds = cell.getBounds();
      gc.drawImage(imgNew, cellBounds.x
          + ((cellBounds.width - imgBounds.width) / 2), cellBounds.y
          + ((cellBounds.height - imgBounds.height) / 2));
    }
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    cell.setMarginHeight(0);
  }

  // @see org.gudy.azureus2.plugins.ui.tables.TableCellRefreshListener#refresh(org.gudy.azureus2.plugins.ui.tables.TableCell)
  public void refresh(TableCell cell) {
    Subscription sub = (Subscription) cell.getDataSource();

    boolean isRead = sub.getHistory().getNumUnread() > 0;
    int sortVal = isRead ? 1 : 0;

    if (!cell.setSortValue(sortVal) && cell.isValid()) {
      return;
    }
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    setMinWidth(300);
  }

  public void refresh(TableCell cell) {
    String name = null;
    Subscription sub = (Subscription) cell.getDataSource();
    if (sub != null) {
      name = sub.getName();
    }
    if (name == null) {
      name = "";
    }
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

   
    bounds.width -= (imageWidth + 5);
   
    GCStringPrinter.printString(gc, cell.getSortValue().toString(), bounds,true,false,SWT.LEFT);
   
    Subscription sub = (Subscription) cell.getDataSource();
   
    if ( sub != null && !sub.isSearchTemplate()){

      gc.drawImage(viewImage, bounds.x + bounds.width, bounds.y + bounds.height / 2 - imageHeight / 2);
    }
   
    imageLoader.releaseImage("ic_view");
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    if (event.eventType == TableCellMouseEvent.EVENT_MOUSEUP
        && event.button == 1) {
      TableCell cell = event.cell;
      int cellWidth = cell.getWidth();
      if(event.x > cellWidth - imageWidth - 5 && event.x < cellWidth - 5) {
        Subscription sub = (Subscription) cell.getDataSource();
        if(sub != null && !sub.isSearchTemplate()){
          String key = "Subscription_" + ByteFormatter.encodeString(sub.getPublicKey());
          MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();
          if (mdi != null) {
            mdi.showEntryByID(key);
          }
        }
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    setAlignment(ALIGN_TRAIL);
  }

  public void refresh(TableCell cell) {
    int nbResults = 0;
    Subscription sub = (Subscription) cell.getDataSource();
    if (sub != null) {
      nbResults = sub.getHistory().getNumUnread();
    }

    if (!cell.setSortValue(nbResults) && cell.isValid()) {
      return;
    }
View Full Code Here

Examples of com.aelitis.azureus.core.subs.Subscription

    setMaxWidth(100);
  }

  public void refresh(TableCell cell) {
    boolean autoDownload = false;
    Subscription sub = (Subscription) cell.getDataSource();
    if (sub != null) {
      SubscriptionHistory history = sub.getHistory();
      if(history != null) {
        autoDownload = history.isAutoDownload();
      }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.