覚書: Rainmeter : yahoo.financeの仕様変更

2016年7月末に、WP7のyahoo financeの仕様変更を受けて動作しなくなりました。
currencyPanel.ini(2回目)。

USDJPY Rate
オリジナルがwebParser.dll を使ってhtmlレスポンスから抽出しているのですが、通信量も多いし、仕様変更に弱いのでyahoo API を使ってxml形式で取得します。



Currency.ini を開いて[Feed]セクションを探し、UrlとRegExp変数を書き換えましょう。

変更前

[Feed]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=http://finance.yahoo.com/q/?s=#CurrencyFrom##CurrencyTo#=X&t=5d&l=on&z=m&q=l&c=
RegExp="(?siU)<span class="time_rtq_ticker"><span id=".*">(.*)</span>"
Substitute=#SubstituteFeed#
FinishAction=!Update "#CURRENTCONFIG#"

変更後(2017-07-25 update)

[Feed]
Measure=Plugin
Plugin=Plugins\WebParser.dll
Url=http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22#CurrencyFrom##CurrencyTo#%22)&format=xml&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
RegExp="(?siU)<Rate>.*([0-9,\,]+\.\d{4}).*</Rate>"
Substitute=#SubstituteFeed#
FinishAction=!Update "#CURRENTCONFIG#"

なお、[Variables]セクションのAmount=150は 1に変更してください。
パネル側の設定は From:USD To:JPY です。
これで1$=XXXJPYになります。

なお、#~#部分は、変数です。
USD->JPYならそれぞれ "USD","JPY"です。
queryString上で、#CurrencyFrom##CurrencyTo# は "USDJPY"となります。