Package com.aelitis.azureus.util

Source Code of com.aelitis.azureus.util.ContentNetworkUtils

/**
* Created on Dec 10, 2008
*
* Copyright 2008 Vuze, Inc.  All rights reserved.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License only.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
*/

package com.aelitis.azureus.util;

import java.net.MalformedURLException;
import java.net.URL;

import com.aelitis.azureus.core.cnetwork.ContentNetwork;
import com.aelitis.azureus.core.cnetwork.ContentNetworkManagerFactory;

/**
* @author TuxPaper
* @created Dec 10, 2008
*
*/
public class ContentNetworkUtils
{

  /**
   * Get content network url based on service id.
   * @param cn
   * @param serviceID
   * @return null if service is not supported
   *
   * @since 4.0.0.5
   */
  public static String getUrl(ContentNetwork cn, int serviceID) {
    try {
      if (!cn.isServiceSupported(serviceID)) {
        return null;
      }
      return cn.getServiceURL(serviceID);
    } catch (Throwable t) {
      return null;
    }

  }
  public static String getUrl(ContentNetwork cn, int serviceID, Object[] params) {
    try {
      if (!cn.isServiceSupported(serviceID)) {
        return null;
      }
      return cn.getServiceURL(serviceID, params);
    } catch (Throwable t) {
      return null;
    }
  }

  public static ContentNetwork getContentNetworkFromTarget(String target) {
    ContentNetwork cn = null;
    if (target != null && target.startsWith("ContentNetwork.")) {
      long networkID = Long.parseLong(target.substring(15));
      cn = ContentNetworkManagerFactory.getSingleton().getContentNetwork(
          networkID);
    }

    if (cn == null) {
      cn = ConstantsVuze.getDefaultContentNetwork();
    }
    return cn;
  }

  public static String getTarget(ContentNetwork cn) {
    return "ContentNetwork."
        + (cn == null ? ConstantsVuze.getDefaultContentNetwork().getID()
            : cn.getID());
  }

  public static void setSourceRef(String target, String sourceRef,
      boolean override) {
    setSourceRef(getContentNetworkFromTarget(target), sourceRef, override);
  }

  public static void setSourceRef(ContentNetwork cn, String sourceRef,
      boolean override) {
    if (cn == ConstantsVuze.getDefaultContentNetwork()) {
      return;
    }
    // always override old source ref if the content network requires
    // authorization and the user hasn't authorized yet.
    if (cn.isServiceSupported(ContentNetwork.SERVICE_AUTHORIZE)) {
      boolean authShown = false;
      Object oAuthShown = cn.getPersistentProperty(ContentNetwork.PP_AUTH_PAGE_SHOWN);
      if (oAuthShown instanceof Boolean) {
        authShown = ((Boolean) oAuthShown).booleanValue();
      }
      if (!authShown) {
        override = true;
      }
    }
   
    String old = (String) cn.getPersistentProperty(ContentNetwork.PP_SOURCE_REF);
    if (old == null || override) {
      if (sourceRef != null && sourceRef.startsWith("http")) {
        // trim down
        try {
          URL url = new URL(sourceRef);
          sourceRef = url.getHost() + url.getPath();
        } catch (MalformedURLException e) {
        }
      }
      cn.setPersistentProperty(ContentNetwork.PP_SOURCE_REF, sourceRef);
    }
  }
}
TOP

Related Classes of com.aelitis.azureus.util.ContentNetworkUtils

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.