📄 configurationchecker.java
字号:
if (nbOldMinSeeds != -1)
COConfigurationManager.setParameter("StartStopManager_iIgnoreSeedCount", nbOldMinSeeds);
changed = true;
}
//migrate from older BPs setting to newer KBs setting
int speed = COConfigurationManager.getIntParameter("Max Upload Speed", -1);
if ( speed > -1 ) {
COConfigurationManager.setParameter("Max Upload Speed KBs", speed / 1024);
COConfigurationManager.setParameter("Max Upload Speed", -1);
changed = true;
}
//migrate to new dual connection limit option
int maxclients = COConfigurationManager.getIntParameter("Max Clients", -1);
if ( maxclients > -1 ) {
COConfigurationManager.setParameter("Max.Peer.Connections.Per.Torrent", maxclients);
COConfigurationManager.setParameter("Max Clients", -1);
changed = true;
}
//if previous config did not use shared port, grab the port
if (!COConfigurationManager.getBooleanParameter("Server.shared.port", true)) {
int lp = COConfigurationManager.getIntParameter("Low Port", 6881);
COConfigurationManager.setParameter("TCP.Listen.Port", lp);
COConfigurationManager.setParameter("Server.shared.port", true);
changed = true;
}
*/
// migrate to split tracker client/server key config
if ( !COConfigurationManager.doesParameterDefaultExist( "Tracker Key Enable Client")){
boolean old_value = COConfigurationManager.getBooleanParameter("Tracker Key Enable");
COConfigurationManager.setParameter("Tracker Key Enable Client", old_value);
COConfigurationManager.setParameter("Tracker Key Enable Server", old_value);
changed = true;
}
int maxUpSpeed = COConfigurationManager.getIntParameter("Max Upload Speed KBs",0);
int maxDownSpeed = COConfigurationManager.getIntParameter("Max Download Speed KBs",0);
if( maxUpSpeed > 0 &&
maxUpSpeed < COConfigurationManager.CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED &&
( maxDownSpeed == 0 || maxDownSpeed > (2*maxUpSpeed ))){
changed = true;
COConfigurationManager.setParameter("Max Upload Speed KBs", COConfigurationManager.CONFIG_DEFAULT_MIN_MAX_UPLOAD_SPEED);
}
int peersRatio = COConfigurationManager.getIntParameter("Stop Peers Ratio",0);
if(peersRatio > 14) {
COConfigurationManager.setParameter("Stop Peers Ratio", 14);
changed = true;
}
int minQueueingShareRatio = COConfigurationManager.getIntParameter("StartStopManager_iFirstPriority_ShareRatio");
if (minQueueingShareRatio < 500) {
COConfigurationManager.setParameter("StartStopManager_iFirstPriority_ShareRatio", 500);
changed = true;
}
int iSeedingMin = COConfigurationManager.getIntParameter("StartStopManager_iFirstPriority_SeedingMinutes");
if (iSeedingMin < 90 && iSeedingMin != 0) {
COConfigurationManager.setParameter("StartStopManager_iFirstPriority_SeedingMinutes", 90);
changed = true;
}
int iDLMin = COConfigurationManager.getIntParameter("StartStopManager_iFirstPriority_DLMinutes");
if (iDLMin < 60*3 && iDLMin != 0) {
COConfigurationManager.setParameter("StartStopManager_iFirstPriority_DLMinutes", 60*3);
changed = true;
}
String uniqueId = COConfigurationManager.getStringParameter("ID",null);
if(uniqueId == null || uniqueId.length() != 20) {
uniqueId = generatePeerId();
COConfigurationManager.setParameter("ID", uniqueId);
changed = true;
}
/**
* Special Patch for OSX users
*/
if (Constants.isOSX) {
boolean sound = COConfigurationManager.getBooleanParameter("Play Download Finished",true);
boolean close = COConfigurationManager.getBooleanParameter("Close To Tray",true);
boolean min = COConfigurationManager.getBooleanParameter("Minimize To Tray",true);
boolean confirmExit = COConfigurationManager.getBooleanParameter("confirmationOnExit",false);
if ( sound || close || min || confirmExit ) {
COConfigurationManager.setParameter("Play Download Finished",false);
COConfigurationManager.setParameter("Close To Tray",false);
COConfigurationManager.setParameter("Minimize To Tray",false);
COConfigurationManager.setParameter("confirmationOnExit",false);
changed = true;
}
}
//remove a trailing slash, due to user manually entering the path in config
String[] path_params = { "Default save path",
"General_sDefaultTorrent_Directory",
"Watch Torrent Folder Path",
"Completed Files Directory" };
for( int i=0; i < path_params.length; i++ ) {
if( path_params[i].endsWith( SystemProperties.SEP ) ) {
String new_path = path_params[i].substring( 0, path_params[i].length() - 1 );
COConfigurationManager.setParameter( path_params[i], new_path );
changed = true;
}
}
//2105 removed the language file web-update functionality,
//but old left-over MessagesBundle.properties files in the user dir
//cause display text problems, so let's delete them.
if( ConfigurationManager.getInstance().doesParameterNonDefaultExist( "General_bEnableLanguageUpdate" ) ) {
File user_dir = new File( SystemProperties.getUserPath() );
File[] files = user_dir.listFiles( new FilenameFilter() {
public boolean accept(File dir, String name) {
if( name.startsWith( "MessagesBundle" ) && name.endsWith( ".properties" ) ) {
return true;
}
return false;
}
});
for( int i=0; i < files.length; i++ ) {
File file = files[ i ];
if( file.exists() ) {
LGLogger.log( "ConfigurationChecker:: removing old language file: " + file.getAbsolutePath() );
file.renameTo( new File( file.getParentFile(), "delme" + file.getName() ) );
}
}
ConfigurationManager.getInstance().removeParameter( "General_bEnableLanguageUpdate" );
changed = true;
}
if(changed) {
COConfigurationManager.save();
}
}finally{
class_mon.exit();
}
}
public static String generatePeerId() {
String uniqueId = "";
long currentTime = SystemTime.getCurrentTime();
for(int i = 0 ; i < currentTime % 1000 ; i++)
Math.random();
//Allocate a 10 random chars ID
String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for(int i = 0 ; i < 20 ; i++) {
int pos = (int) ( Math.random() * chars.length());
uniqueId += chars.charAt(pos);
}
return uniqueId;
}
public static void main(String args[]) {
Integer obj = new Integer(1);
HashMap test = new HashMap();
int collisions = 0;
for(int i = 0 ; i < 1000000 ; i++) {
String id = generatePeerId();
if(test.containsKey(id)) {
collisions++;
} else {
test.put(id,obj);
}
if(i%1000 == 0) {
System.out.println(i + " : " + id + " : " + collisions);
}
}
System.out.println("\n" + collisions);
}
/*
* Migrates old user files/dirs from application dir to user dir
*
private static void migrateOldConfigFiles() {
if ( COConfigurationManager.getBooleanParameter("Already_Migrated", false)) {
return;
}
String results = "";
//migrate from old buggy APPDATA dir to new registry-culled dir
if( Constants.isWindows ) {
String old_dir = SystemProperties.getEnvironmentalVariable( "APPDATA" );
if( old_dir != null && old_dir.length() > 0 ) {
old_dir = old_dir + SystemProperties.SEP + "Azureus" + SystemProperties.SEP;
results += migrateAllFiles( old_dir, SystemProperties.getUserPath() );
}
}
//migrate from old ~/Library/Azureus/ to ~/Library/Application Support/Azureus/
if( Constants.isOSX ) {
String old_dir = System.getProperty("user.home") + "/Library/Azureus/";
results += migrateAllFiles( old_dir, SystemProperties.getUserPath() );
}
//migrate from old ~/Azureus/ to ~/.Azureus/
if( Constants.isLinux ) {
String old_dir = System.getProperty("user.home") + "/Azureus/";
results += migrateAllFiles( old_dir, SystemProperties.getUserPath() );
}
ConfigurationManager.getInstance().load();
COConfigurationManager.setParameter("Already_Migrated", true);
if( results.length() > 0 ) {
String[] params = { results };
LGLogger.logAlertUsingResource(LGLogger.INFORMATION, "AutoMigration.useralert", params);
}
}
private static String migrateAllFiles( String source_path, String dest_path ) {
String result = "";
File source_dir = new File( source_path );
File dest_dir = new File( dest_path );
if( source_dir.exists() && !source_path.equals( dest_path ) ) {
if( !dest_dir.exists() ) dest_dir.mkdirs();
File[] files = source_dir.listFiles();
for( int i=0; i < files.length; i++ ) {
File source_file = files[ i ];
File dest_file = new File( dest_dir, source_file.getName() );
boolean ok = FileUtil.renameFile( source_file, dest_file );
if( ok ) result += source_file.toURI().getPath() + "\n---> " + dest_file.toURI().getPath() + " : OK\n";
else result += source_file.toURI().getPath() + "\n---> " + dest_file.toURI().getPath() + " : FAILED\n";
}
source_dir.delete();
}
return result;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -