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

📄 platformmanagerupdatechecker.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:   PlatformManagerUpdateChecker.java

package org.gudy.azureus2.platform.win32;

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.gudy.azureus2.core3.html.HTMLUtils;
import org.gudy.azureus2.core3.logging.*;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.platform.*;
import org.gudy.azureus2.plugins.Plugin;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.update.*;
import org.gudy.azureus2.plugins.utils.resourcedownloader.*;
import org.gudy.azureus2.pluginsimpl.local.utils.resourcedownloader.ResourceDownloaderFactoryImpl;
import org.gudy.azureus2.pluginsimpl.update.sf.*;

public class PlatformManagerUpdateChecker
	implements Plugin, UpdatableComponent
{

	private static final LogIDs LOGID;
	public static final String UPDATE_NAME = "Platform-specific support";
	public static final int RD_SIZE_RETRIES = 3;
	public static final int RD_SIZE_TIMEOUT = 10000;
	protected PluginInterface plugin_interface;

	public PlatformManagerUpdateChecker()
	{
	}

	public void initialize(PluginInterface _plugin_interface)
	{
		plugin_interface = _plugin_interface;
		plugin_interface.getPluginProperties().setProperty("plugin.name", "Platform-Specific Support");
		String version = "1.0";
		PlatformManager platform = PlatformManagerFactory.getPlatformManager();
		if (platform.getPlatformType() == 1)
		{
			if (platform.hasCapability(PlatformManagerCapabilities.GetVersion))
				try
				{
					version = platform.getVersion();
				}
				catch (Throwable e)
				{
					Debug.printStackTrace(e);
				}
			plugin_interface.getUpdateManager().registerUpdatableComponent(this, false);
		} else
		{
			plugin_interface.getPluginProperties().setProperty("plugin.version.info", "Not required for this platform");
		}
		plugin_interface.getPluginProperties().setProperty("plugin.version", version);
	}

	public String getName()
	{
		return "Platform-specific support";
	}

	public int getMaximumCheckTime()
	{
		return 30;
	}

	public void checkForUpdate(final UpdateChecker checker)
	{
		SFPluginDetails sf_details = SFPluginDetailsLoaderFactory.getSingleton().getPluginDetails(plugin_interface.getPluginID());
		String current_version = plugin_interface.getPluginVersion();
		if (Logger.isEnabled())
			Logger.log(new LogEvent(LOGID, (new StringBuilder()).append("PlatformManager:Win32 update check starts: current = ").append(current_version).toString()));
		boolean current_az_is_cvs = Constants.isCVSVersion();
		String sf_plugin_version = sf_details.getVersion();
		String sf_comp_version = sf_plugin_version;
		if (current_az_is_cvs)
		{
			String sf_cvs_version = sf_details.getCVSVersion();
			if (sf_cvs_version.length() > 0)
			{
				sf_plugin_version = sf_cvs_version;
				sf_comp_version = sf_plugin_version.substring(0, sf_plugin_version.length() - 4);
			}
		}
		String target_version = null;
		if (sf_comp_version.length() == 0 || !Character.isDigit(sf_comp_version.charAt(0)))
		{
			if (Logger.isEnabled())
				Logger.log(new LogEvent(LOGID, 1, (new StringBuilder()).append("PlatformManager:Win32 no valid version to check against (").append(sf_comp_version).append(")").toString()));
		} else
		if (Constants.compareVersions(current_version, sf_comp_version) < 0)
			target_version = sf_comp_version;
		checker.reportProgress((new StringBuilder()).append("Win32: current = ").append(current_version).append(", latest = ").append(sf_comp_version).toString());
		if (Logger.isEnabled())
			Logger.log(new LogEvent(LOGID, (new StringBuilder()).append("PlatformManager:Win32 update required = ").append(target_version != null).toString()));
		if (target_version != null)
		{
			String target_download = sf_details.getDownloadURL();
			if (current_az_is_cvs)
			{
				String sf_cvs_version = sf_details.getCVSVersion();
				if (sf_cvs_version.length() > 0)
					target_download = sf_details.getCVSDownloadURL();
			}
			ResourceDownloaderFactory rdf = ResourceDownloaderFactoryImpl.getSingleton();
			ResourceDownloader direct_rdl = rdf.create(new URL(target_download));
			String torrent_download = "http://torrents.aelitis.com:88/torrents/";
			int slash_pos = target_download.lastIndexOf("/");
			if (slash_pos == -1)
				torrent_download = (new StringBuilder()).append(torrent_download).append(target_download).toString();
			else
				torrent_download = (new StringBuilder()).append(torrent_download).append(target_download.substring(slash_pos + 1)).toString();
			torrent_download = (new StringBuilder()).append(torrent_download).append(".torrent").toString();
			ResourceDownloader torrent_rdl = rdf.create(new URL(torrent_download));
			torrent_rdl = rdf.getSuffixBasedDownloader(torrent_rdl);
			ResourceDownloader alternate_rdl = rdf.getAlternateDownloader(new ResourceDownloader[] {
				torrent_rdl, direct_rdl
			});
			rdf.getTimeoutDownloader(rdf.getRetryDownloader(alternate_rdl, 3), 10000).getSize();
			List update_desc = new ArrayList();
			List desc_lines = HTMLUtils.convertHTMLToText("", sf_details.getDescription());
			update_desc.addAll(desc_lines);
			List comment_lines = HTMLUtils.convertHTMLToText("    ", sf_details.getComment());
			update_desc.addAll(comment_lines);
			String update_d[] = new String[update_desc.size()];
			update_desc.toArray(update_d);
			final Update update = checker.addUpdate("Platform-specific support", update_d, target_version, alternate_rdl, 2);
			update.setDescriptionURL(sf_details.getInfoURL());
			alternate_rdl.addListener(new ResourceDownloaderAdapter() {

				final UpdateChecker val$checker;
				final Update val$update;
				final PlatformManagerUpdateChecker this$0;

				public boolean completed(ResourceDownloader downloader, InputStream data)
				{
					installUpdate(checker, update, downloader, data);
					return true;
				}

			
			{
				this$0 = PlatformManagerUpdateChecker.this;
				checker = updatechecker;
				update = update1;
				super();
			}
			});
		}
		checker.completed();
		break MISSING_BLOCK_LABEL_720;
		Throwable e;
		e;
		Debug.printStackTrace(e);
		checker.reportProgress((new StringBuilder()).append("Failed to load plugin details for the platform manager: ").append(Debug.getNestedExceptionMessage(e)).toString());
		checker.failed();
		checker.completed();
		break MISSING_BLOCK_LABEL_720;
		Exception exception;
		exception;
		checker.completed();
		throw exception;
	}

	protected void installUpdate(UpdateChecker checker, Update update, ResourceDownloader rd, InputStream data)
	{
		ZipInputStream zip = null;
		data = update.verifyData(data, true);
		rd.reportActivity("Data verified successfully");
		UpdateInstaller installer = checker.createInstaller();
		zip = new ZipInputStream(data);
		ZipEntry entry = null;
		do
		{
			if ((entry = zip.getNextEntry()) == null)
				break;
			String name = entry.getName();
			if (name.toLowerCase().startsWith("windows/"))
			{
				name = name.substring(8);
				if (name.length() > 0)
				{
					rd.reportActivity((new StringBuilder()).append("Adding update action for '").append(name).append("'").toString());
					if (Logger.isEnabled())
						Logger.log(new LogEvent(LOGID, (new StringBuilder()).append("PlatformManager:Win32 adding action for '").append(name).append("'").toString()));
					installer.addResource(name, zip, false);
					installer.addMoveAction(name, (new StringBuilder()).append(installer.getInstallDir()).append(File.separator).append(name).toString());
				}
			}
		} while (true);
		Throwable e;
		if (zip != null)
			try
			{
				zip.close();
			}
			// Misplaced declaration of an exception variable
			catch (Throwable e) { }
		break MISSING_BLOCK_LABEL_309;
		e;
		rd.reportActivity((new StringBuilder()).append("Update install failed:").append(e.getMessage()).toString());
		if (zip != null)
			try
			{
				zip.close();
			}
			// Misplaced declaration of an exception variable
			catch (Throwable e) { }
		break MISSING_BLOCK_LABEL_309;
		Exception exception;
		exception;
		if (zip != null)
			try
			{
				zip.close();
			}
			catch (Throwable e) { }
		throw exception;
	}

	protected List splitMultiLine(String indent, String text)
	{
		int pos = 0;
		String lc_text = text.toLowerCase();
		List lines = new ArrayList();
		int p1;
		do
		{
			p1 = lc_text.indexOf("<br>", pos);
			String line;
			if (p1 == -1)
			{
				line = text.substring(pos);
			} else
			{
				line = text.substring(pos, p1);
				pos = p1 + 4;
			}
			lines.add((new StringBuilder()).append(indent).append(line).toString());
		} while (p1 != -1);
		return lines;
	}

	static 
	{
		LOGID = LogIDs.CORE;
	}
}

⌨️ 快捷键说明

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