So-net無料ブログ作成
検索選択

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

この記事のトラックバックURL: