📄 weatherutil.java
字号:
package com.redmoon.forum.miniplugin.weather;import java.net.URL;import java.net.HttpURLConnection;import java.io.BufferedReader;import java.io.InputStreamReader;import org.apache.log4j.Logger;import java.util.regex.Pattern;import java.util.regex.Matcher;import cn.js.fan.util.ErrMsgException;import cn.js.fan.web.Global;public class WeatherUtil { Logger logger = Logger.getLogger(WeatherUtil.class.getName()); public WeatherUtil() { } public String gather(String link) { String str = ""; try { URL url = new URL(link); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); String type = huc.getContentType(); String charset = "utf-8"; int index = type.indexOf("charset="); if (index!=-1) { index = index + 8; charset = type.substring(index).trim(); } else charset = "gb2312"; BufferedReader reader = new BufferedReader( new InputStreamReader(huc.getInputStream(), charset)); String line = reader.readLine(); while (line != null) { str += line; line = reader.readLine(); } reader.close(); huc.disconnect(); } catch (Exception e) { logger.error("gather: " + e.getMessage()); } return str; } public String getWeather() { WeatherConfig wc = new WeatherConfig(); String url = wc.getProperty("weather.url"); String content = gather(url); return parseWeatherChina(content); } public String getWeatherFull() { WeatherConfig wc = new WeatherConfig(); String urlFull = wc.getProperty("weather.urlFull"); String content = gather(urlFull); return parseWeatherChinaFull(content); } public String parseWeather163(String content) { String patternStr = "", replacementStr = ""; Pattern pattern; Matcher matcher; String str = ""; patternStr = "<div class=\\\"wetMain\\\">(.*)</div>"; pattern = Pattern.compile(patternStr, Pattern.DOTALL); matcher = pattern.matcher(content); if (matcher.find()) { str = matcher.group(1); str = str.replaceAll("\\.\\./images", "http://mimg.163.com/tianqi/images"); str = str.replaceAll("detail\\(\\);", ""); str = str.replaceAll("tomorrow\\(\\);", ""); } return str; } public String parseWeatherChina(String content) { String patternStr = ""; Pattern pattern; Matcher matcher; String str = ""; patternStr = "<table width=\\\"200\\\".* </table></td>"; pattern = Pattern.compile(patternStr, Pattern.DOTALL); matcher = pattern.matcher(content); if (matcher.find()) { str = matcher.group(0); str = str.replaceAll("/weathericons", "http://weather.china.com.cn/weathericons"); str = str.replaceAll("/city/58248_full.html", Global.getRootPath()+"/forum/miniplugin/weather/58248_full.htm"); str = str.replaceAll("<table width=\\\"200\\\"", "<table width=172"); str = str.replaceAll("<td height=\"20\">", "<td height=0>"); str = str.replaceFirst("<td width=\"29\" align=\"center\"><img src=\"/images/t_2.gif\" width=\"19\" height=\"13\">", "<td width=1>"); str = str.replaceFirst("未来天气", ""); str = str.replaceFirst("<td width=\\\"65\\\"", "<td width=15"); str = str.replaceFirst("<td width=\\\"67\\\"", "<td "); str = str.replaceFirst("<td width=\\\"73\\\"", "<td "); } return str; } public String parseWeatherChinaFull(String content) { String patternStr = ""; Pattern pattern; Matcher matcher; String str = ""; patternStr = "2.gif\\\">(.*)</td>(.*)bgcolor=\\\"#FFFFFF\\\"><img"; pattern = Pattern.compile(patternStr, Pattern.DOTALL); matcher = pattern.matcher(content); if (matcher.find()) { str = matcher.group(1); str = str.replaceAll("/weathericons", "http://weather.china.com.cn/weathericons"); } return str; } public void createIncFile(String content, String fullcontent) throws ErrMsgException { String str = ""; str += "<%@ page pageEncoding='utf-8' contentType='text/html;charset=utf-8' %>"; str += content; cn.js.fan.util.file.FileUtil fu = new cn.js.fan.util.file.FileUtil(); fu.WriteFileUTF8(Global.realPath + "forum/miniplugin/weather/58248.htm", str); str = "<%@ page pageEncoding='utf-8' contentType='text/html;charset=utf-8' %>"; str += "<style>TD {FONT-SIZE: 9pt;}</style>"; str += "<table align=center><tr><td>" + fullcontent + "</td></tr></table>"; fu.WriteFileUTF8(Global.realPath + "forum/miniplugin/weather/58248_full.htm", str); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -