⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aenetworkclassifier.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   AENetworkClassifier.java

package org.gudy.azureus2.core3.util;

import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.torrent.*;

// Referenced classes of package org.gudy.azureus2.core3.util:
//			AENetworkClassifierListener, Debug

public class AENetworkClassifier
{

	public static final String AT_PUBLIC = "Public";
	public static final String AT_I2P = "I2P";
	public static final String AT_TOR = "Tor";
	public static final String AT_NETWORKS[] = {
		"Public", "I2P", "Tor"
	};
	private static List listeners = new ArrayList();

	public AENetworkClassifier()
	{
	}

	public static String categoriseAddress(String str)
	{
		int last_dot = str.lastIndexOf('.');
		if (last_dot == -1)
			return "Public";
		String dom = str.substring(last_dot + 1).toLowerCase();
		if (dom.equals("i2p"))
			return "I2P";
		if (dom.equals("onion"))
			return "Tor";
		else
			return "Public";
	}

	public static String[] getNetworks(TOTorrent torrent, String display_name)
	{
		List urls = new ArrayList();
		urls.add(torrent.getAnnounceURL());
		TOTorrentAnnounceURLSet sets[] = torrent.getAnnounceURLGroup().getAnnounceURLSets();
		for (int i = 0; i < sets.length; i++)
		{
			URL u[] = sets[i].getAnnounceURLs();
			for (int j = 0; j < u.length; j++)
				urls.add(u[j]);

		}

		List available_networks = new ArrayList();
		for (int i = 0; i < urls.size(); i++)
		{
			URL u = (URL)urls.get(i);
			String network = categoriseAddress(u.getHost());
			if (!available_networks.contains(network))
				available_networks.add(network);
		}

		if (available_networks.size() == 1 && available_networks.get(0) == "Public")
			return (new String[] {
				"Public"
			});
		boolean prompt = COConfigurationManager.getBooleanParameter("Network Selection Prompt");
		List res = new ArrayList();
		if (prompt && listeners.size() > 0)
		{
			String t_nets[] = new String[available_networks.size()];
			available_networks.toArray(t_nets);
			for (int i = 0; i < listeners.size(); i++)
				try
				{
					String selected[] = ((AENetworkClassifierListener)listeners.get(i)).selectNetworks(display_name, t_nets);
					if (selected != null)
					{
						for (int j = 0; j < selected.length; j++)
							res.add(selected[j]);

					}
				}
				catch (Throwable e)
				{
					Debug.printStackTrace(e);
				}

		} else
		{
			for (int i = 0; i < available_networks.size(); i++)
				if (COConfigurationManager.getBooleanParameter((new StringBuilder()).append("Network Selection Default.").append(available_networks.get(i)).toString()))
					res.add(available_networks.get(i));

		}
		String x[] = new String[res.size()];
		res.toArray(x);
		return x;
	}

	public static void addListener(AENetworkClassifierListener l)
	{
		listeners.add(l);
	}

	public static void removeListener(AENetworkClassifierListener l)
	{
		listeners.remove(l);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -