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

📄 jmupdater.java

📁 JMule是一个基于Java开发
💻 JAVA
字号:
/* *  JMule - Java file sharing client *  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org ) * *  Any parts of this program derived from other projects, or contributed *  by third-party developers are copyrighted by their respective authors. * *  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; either version 2 *  of the License, or (at your option) any later version. * *  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. * */package org.jmule.updater;import java.util.Hashtable;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.jmule.core.JMConstants;import org.jmule.ui.localizer._;/** * Created on Aug 20, 2008 * @author binary256 * @version $Revision: 1.2 $ * Last changed by $Author: binary256_ $ on $Date: 2008/09/28 16:24:16 $ */public class JMUpdater {	public static final String USER_AGENT = JMConstants.JMULE_FULL_NAME;	public static final String ENCODING   = "UTF-8";	private final String UPDATE_URL = "/update.php";		private final String VERSION_KEY = "Version";		private final String VERSION_REGEX = "<lastversion>(.*)</lastversion>";	private final String CHANGELOG_REGEX = "<changelog>(.*)</changelog>";		private String version = "";	private String changelog = "";	private int response_code;		private static Map<Integer,String> error_codes = new Hashtable<Integer,String>();		static {		error_codes.put(301, _._("updaterwindow.error301"));		error_codes.put(400, _._("updaterwindow.error400"));		error_codes.put(401, _._("updaterwindow.error401"));		error_codes.put(403, _._("updaterwindow.error403"));		error_codes.put(404, _._("updaterwindow.error404"));		error_codes.put(408, _._("updaterwindow.error408"));		error_codes.put(500, _._("updaterwindow.error500"));		error_codes.put(503, _._("updaterwindow.error503"));	}		private static JMUpdater updater = null;		private long last_update_time = 0;		public static JMUpdater getInstance() {		if (updater==null)			updater = new JMUpdater();		return updater;	}		private JMUpdater() {			}		/**	 * Check if new version of JMule is available 	 */	public void checkForUpdates() throws JMUpdaterException {		for(String jm_doamin : JMConstants.JMULE_DOMAINS) {			JMHTTPConnection connection = new JMHTTPConnection("http://" + jm_doamin + UPDATE_URL);			connection.addPostValue(VERSION_KEY, JMConstants.CURRENT_JMULE_VERSION);			try {				String result = connection.sendQuery();				last_update_time = System.currentTimeMillis();				response_code = connection.getHttpResponseCode();				Pattern pattern = Pattern.compile(VERSION_REGEX);				Matcher matcher = pattern.matcher(result);				if (!matcher.find())					throw new JMUpdaterException("Version tag not found");				version = matcher.group(1);				version = version.trim();				result = result.replace("\n", "<br>");				pattern = Pattern.compile(CHANGELOG_REGEX);				matcher = pattern.matcher(result);				if (!matcher.find())					throw new JMUpdaterException("Changelog tag not found");				changelog = matcher.group(1);				changelog = changelog.replace("<br>", "\n");				return ;			} catch (Throwable e) {				response_code = connection.getHttpResponseCode();			}		}		throw new JMUpdaterException("Unable to connect to update server");	}		public String getVersion() {		return version;	}		public String getChangeLog() {		return changelog;	}		public long getLastUpdateTime() {		return last_update_time;	}		public String getErrorCode() {		String result = error_codes.get(response_code);		return result == null ? "HTTP Error " + response_code : result;	}		public boolean isNewVersionAvailable() {		int result = JMConstants.compareVersions(version,JMConstants.JMULE_VERSION);		return result>=1;	}		public static void main(String...strings) throws JMUpdaterException {		JMUpdater.getInstance().checkForUpdates();		}	}

⌨️ 快捷键说明

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