Ticket #3327: mythweather2.patch
File mythweather2.patch, 25.5 KB (added by , 17 years ago) |
---|
-
mythweather/mythweather/Makefile
diff -rup ../mythplugins-orig/mythweather/mythweather/Makefile ./mythweather/mythweather/Makefile
old new install_installimages: all 187 187 -$(INSTALL_FILE) "images/sunny.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 188 188 -$(INSTALL_FILE) "images/thunshowers.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 189 189 -$(INSTALL_FILE) "images/unknown.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 190 -$(INSTALL_FILE) "images/0.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 191 -$(INSTALL_FILE) "images/1.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 192 -$(INSTALL_FILE) "images/2.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 193 -$(INSTALL_FILE) "images/3.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 194 -$(INSTALL_FILE) "images/4.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 195 -$(INSTALL_FILE) "images/5.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 196 -$(INSTALL_FILE) "images/6.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 197 -$(INSTALL_FILE) "images/7.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 198 -$(INSTALL_FILE) "images/8.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 199 -$(INSTALL_FILE) "images/9.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 200 -$(INSTALL_FILE) "images/10.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 201 -$(INSTALL_FILE) "images/11.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 202 -$(INSTALL_FILE) "images/12.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 203 -$(INSTALL_FILE) "images/13.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 204 -$(INSTALL_FILE) "images/14.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 205 -$(INSTALL_FILE) "images/15.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 206 -$(INSTALL_FILE) "images/16.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 207 -$(INSTALL_FILE) "images/17.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 208 -$(INSTALL_FILE) "images/18.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 209 -$(INSTALL_FILE) "images/19.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 210 -$(INSTALL_FILE) "images/20.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 211 -$(INSTALL_FILE) "images/21.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 212 -$(INSTALL_FILE) "images/22.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 213 -$(INSTALL_FILE) "images/23.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 214 -$(INSTALL_FILE) "images/24.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 215 -$(INSTALL_FILE) "images/25.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 216 -$(INSTALL_FILE) "images/26.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 217 -$(INSTALL_FILE) "images/27.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 218 -$(INSTALL_FILE) "images/28.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 219 -$(INSTALL_FILE) "images/29.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 220 -$(INSTALL_FILE) "images/30.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 221 -$(INSTALL_FILE) "images/31.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 222 -$(INSTALL_FILE) "images/32.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 223 -$(INSTALL_FILE) "images/33.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 224 -$(INSTALL_FILE) "images/34.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 225 -$(INSTALL_FILE) "images/35.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 226 -$(INSTALL_FILE) "images/36.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 227 -$(INSTALL_FILE) "images/37.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 228 -$(INSTALL_FILE) "images/38.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 229 -$(INSTALL_FILE) "images/39.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 230 -$(INSTALL_FILE) "images/40.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 231 -$(INSTALL_FILE) "images/41.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 232 -$(INSTALL_FILE) "images/42.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 233 -$(INSTALL_FILE) "images/43.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 234 -$(INSTALL_FILE) "images/44.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 235 -$(INSTALL_FILE) "images/45.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 236 -$(INSTALL_FILE) "images/46.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 237 -$(INSTALL_FILE) "images/na.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 238 -$(INSTALL_FILE) "images/weather_logo.png" "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 239 190 240 191 241 192 242 uninstall_installimages: … … uninstall_installimages: 210 260 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/sunny.png" 211 261 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/thunshowers.png" 212 262 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/unknown.png" 263 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/0.png" 264 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/1.png" 265 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/2.png" 266 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/3.png" 267 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/4.png" 268 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/5.png" 269 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/6.png" 270 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/7.png" 271 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/8.png" 272 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/9.png" 273 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/10.png" 274 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/11.png" 275 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/12.png" 276 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/13.png" 277 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/14.png" 278 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/15.png" 279 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/16.png" 280 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/17.png" 281 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/18.png" 282 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/19.png" 283 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/20.png" 284 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/21.png" 285 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/22.png" 286 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/23.png" 287 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/24.png" 288 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/25.png" 289 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/26.png" 290 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/27.png" 291 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/28.png" 292 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/29.png" 293 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/30.png" 294 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/31.png" 295 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/32.png" 296 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/33.png" 297 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/34.png" 298 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/35.png" 299 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/36.png" 300 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/37.png" 301 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/38.png" 302 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/39.png" 303 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/40.png" 304 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/41.png" 305 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/42.png" 306 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/43.png" 307 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/44.png" 308 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/45.png" 309 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/46.png" 310 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/na.png" 311 -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/weather_logo.png" 213 312 -$(DEL_DIR) "$(INSTALL_ROOT)/usr/share/mythtv/themes/default/" 214 313 215 314 -
mythweather/mythweather/weather.cpp
diff -rup ../mythplugins-orig/mythweather/mythweather/weather.cpp ./mythweather/mythweather/weather.cpp
old new void Weather::cursorRight() 1549 1549 1550 1550 if (tp == 6) 1551 1551 tp = 1; 1552 1552 /* 1553 1553 if (tp == 3 && pastTime == true) 1554 1554 tp = 4; 1555 1555 1556 1556 if (tp == 4 && pastTime == false) 1557 1557 tp = 5; 1558 1558 */ 1559 1559 showLayout(tp); 1560 1560 } 1561 1561 else if (deepSetup == false) … … void Weather::cursorLeft() 1659 1659 1660 1660 if (tp == 0) 1661 1661 tp = 5; 1662 1662 /* 1663 1663 if (tp == 3 && pastTime == true) 1664 1664 tp = 2; 1665 1665 1666 1666 if (tp == 4 && pastTime == false) 1667 1667 tp = 3; 1668 1668 */ 1669 1669 showLayout(tp); 1670 1670 } 1671 1671 else if (deepSetup == true) … … void Weather::nextpage_timeout() 1736 1736 tp++; 1737 1737 if (tp > 5) 1738 1738 tp = 1; 1739 1739 /* 1740 1740 if (tp == 3 && pastTime == true) 1741 1741 tp = 4; 1742 1742 if (tp == 4 && pastTime == false) 1743 1743 tp = 5; 1744 1744 */ 1745 1745 showLayout(tp); 1746 1746 1747 1747 } … … void Weather::update_timeout() 1783 1783 1784 1784 if (result == true) 1785 1785 { 1786 1786 /* 1787 1787 if (pastTime == true && currentPage == 3 && inSetup == false) 1788 1788 nextpage_timeout(); 1789 1789 if (pastTime == false && currentPage == 4 && inSetup == false) 1790 1790 nextpage_timeout(); 1791 1791 */ 1792 1792 if (firstRun == true && inSetup == false) 1793 1793 nextpage_Timer->start((int)(1000 * nextpageInterval)); 1794 1794 … … void Weather::update_timeout() 1891 1891 1892 1892 QString todayDesc; 1893 1893 1894 todayDesc = tr("Today a high of ") + highTemp[0] + tr(" and a low of "); 1894 if (highTemp[0] != "N/A") 1895 todayDesc = tr("Today expect a high of ") + highTemp[0] + tr(" and a low of "); 1896 else 1897 todayDesc = tr("Today expect a low of "); 1898 1895 1899 todayDesc += lowTemp[0] + tr(". Currently there is a humidity of "); 1896 1900 todayDesc += curHumid + tr("% and the winds are"); 1897 1901 … … void Weather::update_timeout() 1905 1909 todayDesc += tr(" coming in at ") + curWind + tr(" Km/h from the ") + tr(winddir) + "."; 1906 1910 } 1907 1911 1908 if (visibility .toFloat() == 999.00)1912 if (visibility == "Unlimited") 1909 1913 todayDesc += tr(" Visibility will be unlimited for today."); 1910 1914 else 1911 1915 { … … void Weather::update_timeout() 1926 1930 QString tomDesc; 1927 1931 1928 1932 QString tomDate; 1929 if (date[0].upper() == "SUN") 1933 /* 1934 if (date[1].upper() == "SUN") 1930 1935 tomDate = tr("Sunday"); 1931 else if (date[ 0].upper() == "MON")1936 else if (date[1].upper() == "MON") 1932 1937 tomDate = tr("Monday"); 1933 else if (date[ 0].upper() == "TUE")1938 else if (date[1].upper() == "TUE") 1934 1939 tomDate = tr("Tuesday"); 1935 else if (date[ 0].upper() == "WED")1940 else if (date[1].upper() == "WED") 1936 1941 tomDate = tr("Wednesday"); 1937 else if (date[ 0].upper() == "THU")1942 else if (date[1].upper() == "THU") 1938 1943 tomDate = tr("Thursday"); 1939 else if (date[ 0].upper() == "FRI")1944 else if (date[1].upper() == "FRI") 1940 1945 tomDate = tr("Friday"); 1941 else if (date[ 0].upper() == "SAT")1946 else if (date[1].upper() == "SAT") 1942 1947 tomDate = tr("Saturday"); 1943 1948 else 1944 1949 tomDate = tr("Date Error"); 1950 */ 1945 1951 1946 tomDesc = tr("Tomorrow expect a high of ") + highTemp[0] + tr(" and a low of "); 1947 tomDesc += lowTemp[0] + tr("."); 1952 tomDate = tr(" ") + date[1]; 1953 tomDesc = tr("Expect high of ") + highTemp[1] + tr(", low of "); 1954 tomDesc += lowTemp[1] + tr(" and humidity ") + humid[1]; 1955 // tomDesc += tr("%. The prob of precip is ") + precip[1]; 1956 tomDesc += tr("%. Winds ") + wind[1]; 1957 if (convertData == false) 1958 tomDesc += tr(" mph ") + tr(wdir[1]) + "."; 1959 else 1960 tomDesc += tr(" Km/h ") + tr(wdir[1]) + "."; 1948 1961 1949 QString tomCond = tr("Expected conditions: ") + weatherType[0]; 1962 QString tomCond = tr("Expected conditions: ") + weatherType[1]; 1963 tomCond += tr(" pp ") + precip[1] + tr("%"); 1950 1964 1951 1965 container = theme->GetSet("weatherpages"); 1952 1966 if (container) … … void Weather::update_timeout() 1959 1973 itype = (UIImageType *)container->GetType("todaypic"); 1960 1974 if (itype) 1961 1975 { 1962 itype->SetImage(weatherIcon[ 0]);1976 itype->SetImage(weatherIcon[1]); 1963 1977 itype->LoadImage(); 1964 1978 } 1965 1979 … … void Weather::update_timeout() 1998 2012 SetText(container, "low1", lowTemp[1]); 1999 2013 SetText(container, "low2", lowTemp[2]); 2000 2014 SetText(container, "low3", lowTemp[3]); 2015 SetText(container, "precip1", precip[1]); 2016 SetText(container, "precip2", precip[2]); 2017 SetText(container, "precip3", precip[3]); 2001 2018 } 2002 2019 2003 2020 container = theme->GetSet("weatherpages"); 2004 2021 if (container) 2005 2022 { 2006 SetText(container, "updatetime", tr("Weather data from: ") + updated);2023 SetText(container, "updatetime", tr("Weather data last updated: ") + updated); 2007 2024 } 2008 2025 2009 2026 if (firstRun == true) … … bool Weather::UpdateData() 2127 2144 2128 2145 if (haveData == true) 2129 2146 { 2147 getCurrentConditions(); 2148 2149 getForecast(); 2150 2151 return true; 2152 } 2153 2154 return false; 2155 } 2130 2156 2131 //updated = GetString("this.swLastUp"); 2132 updated = QDateTime::currentDateTime().toString(gContext->GetSetting("dateformat") + 2133 " " + gContext->GetSetting("timeformat")); 2134 city = GetString("this.swCity"); 2135 state = GetString("this.swSubDiv"); 2136 country = GetString("this.swCountry"); 2137 curTemp = GetString("this.swTemp"); 2138 if (curTemp.length() == 0) 2157 void Weather::getCurrentConditions() 2158 { 2159 QString cc, wind, bar, uv; 2160 2161 // updated = QDateTime::currentDateTime().toString(gContext->GetSetting("dateformat") + " " + gContext->GetSetting("timeformat")); 2162 city = GetString(httpData, "<dnam>", "</dnam>"); 2163 // state = GetString("this.swSubDiv"); 2164 // country = GetString("this.swCountry"); 2165 updated = GetString(httpData, "<lsup>", "</lsup>"); 2166 cc = GetString(httpData, "<cc>", "</cc>"); 2167 curTemp = GetString(cc, "<tmp>", "</tmp>"); 2168 2169 if ( (curTemp.length() == 0) || (curTemp == "N/A") ) 2139 2170 { 2140 2171 curTemp = "-na-"; 2141 2172 updated = updated + tr(" (Not All Information Available)"); … … bool Weather::UpdateData() 2152 2183 } 2153 2184 } 2154 2185 2155 curIcon = GetString("this.swCIcon"); 2156 curWind = GetString("this.swWindS"); 2186 curIcon = "weather/" + GetString(cc, "<icon>", "</icon>") + ".png"; 2187 2188 wind = GetString(cc, "<wind>", "</wind>"); 2189 bar = GetString(cc, "<bar>", "</bar>"); 2190 uv = GetString(cc, "<uv>", "</uv>"); 2191 2192 curWind = GetString(wind, "<s>", "</s>"); 2157 2193 if (convertData == true) 2158 2194 { 2159 char tempHold[32];2160 double t Temp= curWind.toDouble();2161 double n Temp = (double)(tTemp*1.6);2162 sprintf ( tempHold, "%d", (int)nTemp);2163 curWind = tempHold;2195 char windHold[32]; 2196 double tWind = curWind.toDouble(); 2197 double nWind = (double)(tWind*1.6); 2198 sprintf (windHold, "%d", (int)nWind); 2199 curWind = windHold; 2164 2200 } 2165 2201 2166 winddir = GetString( "this.swWindD");2202 winddir = GetString(wind, "<t>", "</t>"); 2167 2203 2168 barometer = GetString( "this.swBaro");2204 barometer = GetString(bar, "<r>", "</r>"); 2169 2205 if (convertData == true) 2170 2206 { 2171 2207 char tempHold[32]; … … bool Weather::UpdateData() 2175 2211 barometer = tempHold; 2176 2212 } 2177 2213 2178 curHumid = GetString( "this.swHumid");2179 curFeel = GetString( "this.swReal");2214 curHumid = GetString(cc, "<hmid>", "</hmid>"); 2215 curFeel = GetString(cc, "<flik>", "</flik>"); 2180 2216 if (convertData == true) 2181 2217 { 2182 2218 char tempHold[32]; … … bool Weather::UpdateData() 2186 2222 curFeel = tempHold; 2187 2223 } 2188 2224 2189 uvIndex = GetString( "this.swUV");2190 visibility = GetString( "this.swVis");2191 if (convertData == true && visibility.toDouble() != 999.0 )2225 uvIndex = GetString(uv, "<i>", "</i>"); 2226 visibility = GetString(cc, "<vis>", "</vis>"); 2227 if (convertData == true && visibility.toDouble() != 999.0 && visibility != "Unlimited") 2192 2228 { 2193 2229 char tempHold[32]; 2194 2230 double tTemp = visibility.toDouble(); … … bool Weather::UpdateData() 2197 2233 visibility = tempHold; 2198 2234 } 2199 2235 2200 description = GetString( "this.swConText");2236 description = GetString(cc, "<t>", "</t>"); 2201 2237 if (description.length() == 0) 2202 description = curIcon; 2238 description = "N/A"; 2239 } 2240 2241 void Weather::getForecast() 2242 { 2243 QString forecast, d, day, start_tag, wd; 2244 char str[24]; 2203 2245 2204 QString forecastData; 2205 forecastData = GetString("this.swFore"); 2206 2207 QStringList holdings = QStringList::split("|", forecastData); 2208 2209 int years, mons, days; 2210 2211 int dayNum = (holdings[0]).toInt(); 2212 QDate curDay(QDate::currentDate()); 2213 int curDayNum = curDay.dayOfWeek(); 2214 if (curDayNum == 7) 2215 curDayNum = 1; 2216 else 2217 curDayNum++; 2218 2219 if (curDayNum != dayNum) 2220 pastTime = true; 2221 else 2222 pastTime = false; 2223 2224 for (int i = 5; i < 9; i++) 2225 { 2226 QStringList dates = QStringList::split("/", holdings[i]); 2227 years = dates[2].toInt(); 2228 mons = dates[0].toInt(); 2229 days = dates[1].toInt(); 2230 QDate doDate(years, mons, days); 2231 switch (doDate.dayOfWeek()) 2232 { 2233 case 1: date[i - 5] = QString("MON"); break; 2234 case 2: date[i - 5] = QString("TUE"); break; 2235 case 3: date[i - 5] = QString("WED"); break; 2236 case 4: date[i - 5] = QString("THU"); break; 2237 case 5: date[i - 5] = QString("FRI"); break; 2238 case 6: date[i - 5] = QString("SAT"); break; 2239 case 7: date[i - 5] = QString("SUN"); break; 2240 } 2241 } 2242 2243 for (int i = 9; i < 13; i++) 2244 weatherIcon[i - 9] = holdings[i]; 2245 2246 for (int i = 20; i < 24; i++) 2246 pastTime = true; 2247 2248 for (int i = 0; i < 5; i++) 2247 2249 { 2248 if (convertData == true) 2250 sprintf(str, "<day d=\"%i\"", i); 2251 start_tag = QString(str); 2252 forecast = GetString(httpData, start_tag, "</day>"); 2253 highTemp[i] = GetString(forecast, "<hi>", "</hi>"); 2254 lowTemp[i] = GetString(forecast, "<low>", "</low>"); 2255 2256 d = GetString(forecast, "<part p=\"d\">", "</part>"); 2257 wd = GetString(d, "<wind>", "</wind>"); 2258 2259 precip[i] = GetString(d, "<ppcp>", "</ppcp>"); 2260 humid[i] = GetString(d, "<hmid>", "</hmid>"); 2261 wind[i] = GetString(wd, "<d>", "</d>"); 2262 wdir[i] = GetString(wd, "<t>", "</t>"); 2263 weatherIcon[i] = "weather/" + GetString(d, "<icon>", "</icon>") + ".png"; 2264 2265 weatherType[i] = GetString(d, "<t>", "</t>"); 2266 date[i] = GetString(forecast, "t=\"", "\" dt="); 2267 2268 if ( (convertData == true) && (highTemp[i] != "N/A") ) 2249 2269 { 2250 2270 char tempHold[32]; 2251 double tTemp = h oldings[i].toDouble();2271 double tTemp = highTemp[i].toDouble(); 2252 2272 double nTemp = (double)(5.0/9.0)*(tTemp - 32.0); 2253 2273 sprintf (tempHold, "%d", (int)nTemp); 2254 h oldings[i] = tempHold;2274 highTemp[i] = tempHold; 2255 2275 } 2256 highTemp[i - 20] = holdings[i]; 2257 } 2258 2259 for (int i = 40; i < 44; i++) 2260 { 2261 if (convertData == true) 2276 2277 if ( (convertData == true) && (lowTemp[i] != "N/A") ) 2262 2278 { 2263 2279 char tempHold[32]; 2264 double tTemp = holdings[i].toDouble();2280 double tTemp = lowTemp[i].toDouble(); 2265 2281 double nTemp = (double)(5.0/9.0)*(tTemp - 32.0); 2266 2282 sprintf (tempHold, "%d", (int)nTemp); 2267 holdings[i] = tempHold; 2283 lowTemp[i] = tempHold; 2284 } 2285 if (convertData == true) 2286 { 2287 char windHold[32]; 2288 double tWind = wind[i].toDouble(); 2289 double nWind = (double)(tWind*1.6); 2290 sprintf (windHold, "%d", (int)nWind); 2291 wind[i] = windHold; 2268 2292 } 2269 lowTemp[i - 40] = holdings[i];2293 2270 2294 } 2271 2272 for (int i = 15; i < 19; i++)2273 weatherType[i - 15] = holdings[i];2274 2275 setWeatherTypeIcon(weatherType);2276 setWeatherIcon(description);2277 2278 return true;2279 2280 }2281 2282 return false;2283 2295 } 2284 2296 2285 2297 void Weather::setWeatherTypeIcon(QString wt[5]) … … void Weather::setWeatherIcon(QString txt 2334 2346 curIcon = "weather/unknown.png"; 2335 2347 } 2336 2348 2337 QString Weather::GetString(QString tag) 2349 2350 QString Weather::GetString(QString data, QString tag_begin, QString tag_end) 2338 2351 { 2339 QString data;2352 QString str; 2340 2353 int start = 0; 2354 int end = 0; 2341 2355 int len = 0; 2342 2356 2343 start = httpData.find(tag, 0); 2344 len = httpData.find("\"", start + tag.length() + 4) - start - tag.length() - 4; 2357 start = data.find(tag_begin, 0) + tag_begin.length(); 2358 end = data.find(tag_end, start); 2359 len = end - start; 2345 2360 2346 data = httpData.mid(start + tag.length() + 4, len);2361 str = data.mid(start, len); 2347 2362 2348 return data;2363 return str; 2349 2364 } 2350 2365 2351 int Weather::GetInt(QString tag)2366 int Weather::GetInt(QString data, QString tag_start, QString tag_end) 2352 2367 { 2353 QString data; 2354 int start = 0; 2355 int len = 0; 2356 2357 start = httpData.find(tag, 0); 2358 len = httpData.find("\"", start + tag.length() + 4) - start - tag.length() - 4; 2359 data = httpData.mid(start + tag.length() + 4, len); 2360 int ret = data.toInt(); 2368 QString str; 2369 2370 str = GetString(data, tag_start, tag_end); 2371 2372 int ret = str.toInt(); 2361 2373 2362 2374 return ret; 2363 2375 } 2364 2376 2365 float Weather::GetFloat(QString tag)2377 float Weather::GetFloat(QString data, QString tag_start, QString tag_end) 2366 2378 { 2367 QString data; 2368 int start = 0; 2369 int len = 0; 2379 QString str; 2370 2380 2371 start = httpData.find(tag, 0); 2372 len = httpData.find("\"", start + tag.length() + 4) - start - tag.length() - 4; 2373 data = httpData.mid(start + tag.length() + 4, len); 2374 float ret = data.toFloat(); 2381 str = GetString(data, tag_start, tag_end); 2382 2383 float ret = str.toFloat(); 2375 2384 2376 2385 return ret; 2377 2386 } … … float Weather::GetFloat(QString tag) 2379 2388 bool Weather::GetWeatherData() 2380 2389 { 2381 2390 2382 QString weatherDataURL = "http://www.msnbc.com/m/chnk/d/weather_d_src.asp?acid=" + locale; 2391 QString weatherDataURL = "http://xoap.weather.com/weather/local/" + locale + "?cc=*&unit=f&dayf=5"; 2392 2393 // 2394 // Technically we should include the partner id and key 2395 // if this stops working, change to the following: 2396 // http://xoap.weather.com/weather/local/".$this->acid."?cc=*&unit=F&dayf=5&prod=xoap&par=1036905921&key=f68c2657a4fd3e2e" 2397 // may need to get a new one from http://www.weather.com/services/xmloap.html 2398 // 2383 2399 2384 2400 VERBOSE(VB_NETWORK, QString("Grabbing weather from: %1").arg(weatherDataURL)); 2385 2401 … … bool Weather::GetWeatherData() 2390 2406 2391 2407 httpData = HttpComms::getHttp(weatherDataURL, weatherTimeoutInt, 3, 3); 2392 2408 2393 if (httpData.find(" this.swAcid = \"\";") != -1 ||2394 httpData.find("< html>") != -1 ||2409 if (httpData.find("<loc id=") == -1 || 2410 httpData.find("<?xml") == -1 || 2395 2411 httpData.find("Microsoft VBScript runtime") != -1 || 2396 2412 httpData.find("Internal Server Error") != -1 || 2397 2413 httpData.find("Bad Request", 0) != -1) -
mythweather/mythweather/weather.h
diff -rup ../mythplugins-orig/mythweather/mythweather/weather.h ./mythweather/mythweather/weather.h
old new class Weather : public MythDialog 135 135 void updateLetters(); 136 136 void loadAccidBreaks(); 137 137 bool GetWeatherData(); 138 void getCurrentConditions(); 139 void getForecast(); 138 140 bool GetAnimatedRadarMap(); 139 141 bool GetStaticRadarMap(); 140 142 bool gotDataHook; … … class Weather : public MythDialog 145 147 void showCityName(); 146 148 void setSetting(QString, QString, bool); 147 149 148 QString GetString(QString );149 int GetInt(QString );150 float GetFloat(QString );150 QString GetString(QString, QString, QString); 151 int GetInt(QString, QString, QString); 152 float GetFloat(QString, QString, QString); 151 153 152 154 void loadWeatherTypes(); 153 155 weatherTypes *wData; … … class Weather : public MythDialog 179 181 QString highTemp[5]; 180 182 QString lowTemp[5]; 181 183 QString precip[5]; 184 QString humid[5]; 185 QString wind[5]; 186 QString wdir[5]; 182 187 183 188 QString httpData; 184 189 QString oldhttpData;