📄 aenetworkclassifier.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 + -