SSブログ

Taskerで現在地天気取得 [Tasker]

tasker.pngネットの情報をそのまま使ってます。現行のTaskerのバージョン(4.8u1)で出力してます。このままでは使え無いのでカスタマイズします。JavaScriptを少し勉強しないといけないです。


A1: Variable Set [ Name:%tmp To:%LOCN,err Do Maths:Off Append:Off ]
A2: Variable Split [ Name:%tmp Splitter:, Delete Base:Off ]
A3: HTTP Get [ Server:Port:geoapi.heartrails.com Path:api/xml?method=searchByGeoLocation&y=%tmp1&x=%tmp2 Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File:Download/天気debug.txt Trust Any Certificate:Off ]
A4: JavaScriptlet [ Code:var t=global('HTTPD').match(/\(\d+)\<\/postal\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A5: Goto [ Type:Action Label Number:1 Label:END ] If [ %tmp !~R ^\d{7}$ ]
A6: HTTP Get [ Server:Port:weather.yahoo.co.jp Path:weather/search/?p=%tmp Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ]
A7: JavaScriptlet [ Code:var t=global('HTTPD').match(/weather\.yahoo\.co\.jp\/(weather\/jp\/[0-9\/]+\.html)/);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A8: Goto [ Type:Action Label Number:1 Label:END ] If [ %tmp !~R ^weather ]
A9: HTTP Get [ Server:Port:weather.yahoo.co.jp Path:%tmp Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ]
A10: JavaScriptlet [ Code:for(var d=new Date(3.5*36E5+(new Date).getTime()), h=d.getHours()/3&7,p=[d.getDate(),1,10,19,28,37,47+h,48+h],r='?;;;℃;%;㎜;;m'.split(';'), s=global('HTTPD').replace(/(<[^>]+>|\r?\n)+/g,'\n'),u=s.split('\n'),i=1,j=u.length;i A11: Return [ Value:%tmp3 Stop:Off ]

A12: Variable Set [ Name:%DEBUG To:%HTTPD Do Maths:Off Append:Off ] If [ %tmp3 eq err ]
A13: [X] Say [ Text:%DEBUG Engine:Voice:com.google.android.tts:jpn-jpn Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A14: Flash [ Text:%tmp3 Long:Off ]

タグ:tasker
nice!(0)  コメント(6)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 6

kazuki

利用させていただこうと思ったのですがA10で止まってしまいます
正しく入力はできていると思うのですが…
by kazuki (2017-02-22 16:53) 

Naga-toto

〉kazuki さん
 コメントありがとうございます。昨年の4月には、Tasker熱が冷めてしまいまして、今見ても解読に時間かかりそうです。kazuki さんが作ったtaskをexportしてtextで私のと比較してみてはどうでしょうか? もしくは、こちらの記事でのではだめですか?私が今使ってるのと一緒と思います。因みに天気の霙(みぞれ)を誤読してました。修正しないと思います。(笑)
http://naga-toto.blog.so-net.ne.jp/2016-03-19#more
by Naga-toto (2017-02-22 18:29) 

kazuki

ご丁寧なレスありがとうございます!
エクスポートして見比べて見たのですが半角バックスラッシュが¥になっている以外に差がありませんでした
バックスラッシュ自体はA4に出てきており、A4でエラーは出ないのでバックスラッシュが¥になってしまうこととA10のエラーとは関係なさそうでした

リンク先の暫定版を入力してみたのですが、こちらはバックスラッシュが¥になるものの最後まで動作しました
読み上げの値が何故かよくわからない数値になり、諦めましたw
by kazuki (2017-02-23 22:10) 

Naga-toto

〉kazuki さん
 よく分からない数値ってのが、良く分からないデータってのが気になります。時間があったら、本task作ってやってみますよ。
by Naga-toto (2017-02-24 18:41) 

Naga-toto

〉kazuki さん
 よく分からない数値ってのが、良く分からないデータってのが気になります。最終版です。

現在地天気読み上げ
A1: Variable Set [ Name:%tmp To:%LOCN,err Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Variable Split [ Name:%tmp Splitter:, Delete Base:Off ]
A3: HTTP Get [ Server:Port:geoapi.heartrails.com Path:api/xml?method=searchByGeoLocation&y=%tmp1&x=%tmp2 Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ]
A4: JavaScriptlet [ Code:var t=global('HTTPD').match(/\<postal\>(\d+)\<\/postal\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A5: HTTP Get [ Server:Port:infoseek.tenki.jp Path:search/zip/?keyword=%tmp Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ]
A6: Goto [ Type:Action Label Number:1 Label:END ] If [ %tmp !~R \d{7}$ ]
A7: JavaScriptlet [ Code:var t=global('HTTPD').match(/infoseek\.tenki\.jp\/(forecast\/[0-9a-d\/]+\.html)/i);t&&(tmp=t[1] .replace('\.html','\-daily\.html')) Libraries: Auto Exit:On Timeout (Seconds):45 ]
A8: Goto [ Type:Action Label Number:1 Label:END ] If [ %tmp !~R ^forecast ]
A9: HTTP Get [ Server:Port:infoseek.tenki.jp Path:%tmp Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ]
A10: JavaScriptlet [ Code:var t=global('HTTPD').match(/\<h1\>(.*)\<\/h1\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A11: Variable Search Replace [ Variable:%tmp Search:ピンポイント Ignore Case:Off Multi-Line:Off One Match Only:Off Store Matches In: Replace Matches:On Replace With: ]
A12: Variable Set [ Name:%point To:%tmp Recurse Variables:Off Do Maths:Off Append:Off ]
A13: JavaScriptlet [ Code:var t=global('HTTPD').match(/\<p class="wethreDrtalIiconText"\>(.*)\<\/p\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A14: Variable Set [ Name:%tenki To:%tmp Recurse Variables:Off Do Maths:Off Append:Off ]
A15: JavaScriptlet [ Code:var t=global('HTTPD').match(
/\<tr class.*high.*\n\s*.*\n\s*.*\"\>(.*)\<\/span\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A16: Variable Set [ Name:%hightemp To:%tmp Recurse Variables:Off Do Maths:Off Append:Off ]
A17: JavaScriptlet [ Code:var t=global('HTTPD').match(
/\<tr class.*low.*\n\s*.*\n\s*.*\"\>(.*)\<\/span\>/i);t&&(tmp=t[1]); Libraries: Auto Exit:On Timeout (Seconds):45 ]
A18: Variable Set [ Name:%lowtemp To:%tmp Recurse Variables:Off Do Maths:Off Append:Off ]
A19: Media Volume [ Level:15 Display:Off Sound:Off ]
A20: Say [ Text:%point は、%tenki 、最高気温は %hightemp ど、最低気温は %lowtemp ど、です。 Engine:Voice:com.google.android.tts:jpn-jpn Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

by Naga-toto (2017-02-24 18:47) 

Naga-toto

〉kazuki さん
因みにapk版は正常に音声しゃべってくれますかね?
https://drive.google.com/folderview?id=0B9x8YxTF45SqTVBMSG13R3FnN0E
by Naga-toto (2017-02-24 18:50) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

またまた正規表現の勉強?Google Logo ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。