Важней всего погода в Барсе
Меньше всего я ожидал, что первой всплывшей в Барсе проблемой станет виджет погоды: он сказал мне Weather data for this city is no longer available. А как работать на компьютере, на дашборде которого не показывают погоду, я не понимаю.
Оказалось, что Эплы поменяли провайдера данных, и из-за этого барсовский виджет не хочет показывать погоду в Челябинске. Раньше они брали погоду с accuweather.com, а теперь перешли на Яху (кстати, на Айфоне Яху показывает погоду в Челябинске, Кыштыме и Карабаше без проблем).
Дальнейшие мои действия вполне предсказуемы:
- Идём в /Library/Widgets в Леопарде.
- Копируем Weather.wdgt в /Library/Widgets Барса (барсовский виджет, конечно, можно сохранить на всякий случай).
- Говорим терминалу killall Dock.
Теперь на изнанке виджета написано AccuWeather.com, и кажется, что пересадка удалась. Но не тут-то было: на Chelyabinsk он говорит: No cities found. Выходит, урл, с которого виджет тянет погоду, живёт где-то за пределами виджета? Открываем /Library/Widgets/Weather.wdgt/Weather.html и видим, что он подключает какой-то суперсекретный скрипт аж из /System/Library/WidgetResources/.parsers/weatherParser.js. Почему Эплы не просто вынесли это из самого виджета, а ещё и положили в скрытую папку — загадка. Но для того, чтобы решить проблему, нам не обязательно её разгадывать.
На всякий случай я не стал заменять такой страшный файл в Барсе старым — вдруг там какие-нибудь чексуммы проверяются или ещё какой-нибудь бред. Я решил сделать проще:
- Кладём этот /System/Library/WidgetResources/.parsers/weatherParser.js из Леопарда внутрь самой папки виджета /Library/Widgets/Weather.wdgt в Барсе.
- Исправляем в Weather.html подключение скрипта, чтобы он брался прямо из этой папки, а не из /System/Library/WidgetResources/.parsers/, т. е. просто пишем src=’weatherParser.js’.
- Говорим терминалу killall Dock.
Наслаждаемся погодой в Челябинске (она на удивление хороша).