留言板

Weather Portlet

Monalisa Sahu,修改在12 年前。

Weather Portlet

New Member 帖子: 2 加入日期: 12-2-28 最近的帖子
Can anybody send me weather portlet
thumbnail
David H Nebinger,修改在12 年前。

RE: Weather Portlet

Liferay Legend 帖子: 14916 加入日期: 06-9-2 最近的帖子
Whatever you guys are working on, you should share notes.

Review all of the other recent posts on the weather portlet: where to get it, how to deploy it, how to configure it, and why invalid params result in blank screen.
Monalisa Sahu,修改在12 年前。

RE: Weather Portlet

New Member 帖子: 2 加入日期: 12-2-28 最近的帖子
where should i put the war file of weather portlet in order to deploy it
thumbnail
David H Nebinger,修改在12 年前。

RE: Weather Portlet

Liferay Legend 帖子: 14916 加入日期: 06-9-2 最近的帖子
Again, this has all been covered in recent weeks as your friends have been doing the same things.

Search the forum to find the info.
thumbnail
Dave Weitzel,修改在11 年前。

RE: Weather Portlet

Regular Member 帖子: 208 加入日期: 09-11-18 最近的帖子
Google has now stopped providing the weather api used in the portlet so it is not usable until updated to a new API
thumbnail
Hitoshi Ozawa,修改在11 年前。

RE: Weather Portlet

Liferay Legend 帖子: 7942 加入日期: 10-3-24 最近的帖子
It's already been fixed.

http://issues.liferay.com/browse/LPS-29542
thumbnail
Jitendra Rajput,修改在11 年前。

RE: Weather Portlet

Liferay Master 帖子: 875 加入日期: 11-1-7 最近的帖子
If you want to check code then look into WeatherWebCacheItem.java .
Old code with google API was like this


public Object convert(String key) throws WebCacheException {
		Weather weather = null;

		try {
			String text = HtmlUtil.stripComments(HttpUtil.URLtoString(
				"https://www.google.com/ig/api?weather=" +
					HttpUtil.encodeURL(_zip)));

			int x = text.indexOf("temp_f data");

			x = text.indexOf("\"", x) + 1;

			int y = text.indexOf("\"", x);

			float temperature = GetterUtil.getFloat(text.substring(x, y));

			x = text.indexOf("/images", x);
			y = text.indexOf("\"", x);

			String iconURL = "https://www.google.com" + text.substring(x, y);

			weather = new Weather(_zip, iconURL, temperature);
		}
		catch (Exception e) {
			throw new WebCacheException(_zip);
		}

		return weather;
	}


And new code with API change


 public Object convert(String key) throws WebCacheException {
		Weather weather = null;

		try {
			StringBundler sb = new StringBundler(5);

			sb.append("http://free.worldweatheronline.com/feed/weather.ashx?key=");
			sb.append(WeatherPropsUtil.get("world.weather.online.api.key"));
			sb.append("&q=");
			sb.append(HttpUtil.encodeURL(zipName));
			sb.append("&format=xml");
			
			String xml = HtmlUtil.stripComments(HttpUtil.URLtoString(sb.toString()));

			Document document = SAXReaderUtil.read(xml);

			Element rootElement = document.getRootElement();

			Element currentConditionElement = rootElement.element(
				"current_condition");

			Element temperatureElement = currentConditionElement.element("temp_F");

			float temperature = GetterUtil.getFloat(temperatureElement.getData());

			Element iconElement = currentConditionElement.element("weatherIconUrl");

			String iconURL = iconElement.getText();

			weather = new Weather(zipName, iconURL, temperature);
		}
		catch (Exception e) {
			throw new WebCacheException(zipName);
		}

		return weather;
	}