掲示板

Weather Portlet

12年前 に Monalisa Sahu によって更新されました。

Weather Portlet

New Member 投稿: 2 参加年月日: 12/02/28 最新の投稿
Can anybody send me weather portlet
thumbnail
12年前 に David H Nebinger によって更新されました。

RE: Weather Portlet

Liferay Legend 投稿: 14916 参加年月日: 06/09/02 最新の投稿
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.
12年前 に Monalisa Sahu によって更新されました。

RE: Weather Portlet

New Member 投稿: 2 参加年月日: 12/02/28 最新の投稿
where should i put the war file of weather portlet in order to deploy it
thumbnail
12年前 に David H Nebinger によって更新されました。

RE: Weather Portlet

Liferay Legend 投稿: 14916 参加年月日: 06/09/02 最新の投稿
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
11年前 に Dave Weitzel によって更新されました。

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
11年前 に Hitoshi Ozawa によって更新されました。

RE: Weather Portlet

Liferay Legend 投稿: 7942 参加年月日: 10/03/24 最新の投稿
It's already been fixed.

http://issues.liferay.com/browse/LPS-29542
thumbnail
11年前 に Jitendra Rajput によって更新されました。

RE: Weather Portlet

Liferay Master 投稿: 875 参加年月日: 11/01/07 最新の投稿
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;
	}