better to include relevent information here :):
I think I've got to the bottom of the random weather issues, also covered on this thread:
http://www.xbmc4xbox.org.uk/forum/viewtopic.php?f=7&t=1847
It looks like the returned xml from the weather site has been optimised and the 3.3.x releases can't cope. The reason it seems to come and go is that it depends on a few things:
- The actual time according to weather site;
- The time according to your xbox;
- The location you're going for;
The xml change would appear to be that the first future day entry "dayf" no longer contains both day "d" and night "n" nodes IF the time according to weather site is now non-daytime - instead it just contains the "n" node. The existing xbmc code has a check based on local time to skip the first node assuming it to be "d" when it's after 7pm and tries to get the remaining "n" info. However, as the "d" info may not exist depending on the factors above, the code can end up with a null pDayTimeElement that causes it to hang and show busy.
Given the optimised xml it's now unnecessary to anything clever in xbmc and just use the first day/night "part", so the code in weather.cppcan be fixed by removing these two lines:
if (i == 0 && (time.wHour < 7 || time.wHour >= 19)) //weather.com works on a 7am to 7pm basis so grab night if its late in the day
pDayTimeElement = pDayTimeElement->NextSiblingElement("part");
You can check this yourself with existing 3.3.x as say it's evening UK and your first weather location is Auckland, NZ all is fine, but going to London will cause a busy and you'll need to restart.
I can put the change back into the SVN, but rather someone else did to avoid confusion, just let me know. I've only tested it based on 3.3.3 stable code base and could probably find a torrent of a fixed xbe if pushed in the meantime ;)
Thanks must go to the missus for spotting the time aspect of the busy feature :roll: