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