20090224

ニュース・天気予報・PodcastをMortScriptとRunATで自動巡回する

Last Update : 25/Jun/09
RSS Ticker Today03RSSリーダーJWezWMBeyondPodを使ってフィード・天気予報・Podcastを自動的にダウンロードするMortScript用のスクリプトをご紹介します。

RunATと組み合わせて使用します。

【使用するソフト】

・Rss Ticker Today
http://d.hatena.ne.jp/tmyt/

・03RSSリーダー
http://labs.feed-yomi.com/03rssreader/

・JWezWM
http://nullmo.web.fc2.com/

・BeyondPod
http://www.beyondpod.mobi/

これらのソフトの個別の設定については下記記事を参考にしてください。

参考記事;
RSS Ticker Todayでフィードを自動巡回してToday画面にTicker表示する
RSSリーダーから辞書をいっぱつ検索するMortScript
JWezWMでToday画面に週間天気予報を表示する
ポッドキャストはオールインワンのBeyondPodで

自動巡回にはMortScriptRunATを使います。

・MortScript
http://www.sto-helit.de/

・RunAT
http://www20.atwiki.jp/zero3_392/pages/1.html

WiFiのOn/Offと通信の強制終了には下記ソフトを使っています。

・WifiCtrl
http://w03holic.seesaa.net/article/51166074.html

・harddial
http://w-zero3.org/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9

【設定】

①下記MortScriptを用意する

WiFiは消費電力が大きいので、外部電源に接続時のみWiFiをOnにしてPodcastをダウンロードする様にしています。

バッテリ駆動時は天気予報とニュースのサイトのみを巡回します。

また、Podcastのダウンロードには制限時間を設定しています。

参考サイト;
・MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html#1


#Podcast、天気予報、ニュースサイト自動巡回スクリプト

#設定#################################################

#スクリプトのバージョン
Morning4Version = "5.30"

#使用するアプリケーションとフォルダ
exe1 = "\program files\Wifictrl.exe"
exe2 = "\program files\harddial.exe"
exe3 = "\program files\JWezWM\JWezWM.exe"
exe4 = "\program files\RSS Ticker Today\RSSCruise.exe"
exe5 = "\Program files\03RSSReader\03RSSReader.exe"
exe6 = "\program files\BeyondPod\BeyondPod.exe"

#Sleep値の調整(マイクロ秒)
WaitL = 5000
WaitS = 1000

#ウインドウタイトル
title0 = "03RSSリーダー"
title1 = "All Feeds"

#Podcastのダウンロード終了を示すウインドウタイトル(適宜追加)
#"title10"、"title11"は変数として使用済
title2 = "Downloaded"
title3 = "Nothing to Download!"
title4 = "Update Completed!"

#Podcastダウンロード時間のMAX値(分)を設定
timeout1 = 20

##RSSダウンロード時間のMAX値(分)を設定
timeout2 = 2

#スクリプト開始#######################################

#画面OnしてmicroSDカードにアクセス(サスペンドから復帰)
#メッセージ表示
ToggleDisplay(1)
Sleep(WaitL)
CardSpace = FreeDiskSpace("microSDカード")
SleepMessage( WaitL/1000,"自動巡回スクリプトを開始します^NL^バージョン : "&Morning4Version&"^NL^ダウンロード時間 ; "&timeout1 + timeout2&"分(MAX)^NL^カード空き容量 ; "&CardSpace/1000000&"MB","Morning4",0 )

#外部電源に接続している場合のみPodcastを巡回
If(ExternalPowered())

#無線LANをOn
Run(exe1, "on")
Sleep(WaitL)

#Beyondpodの自動巡回#########################

#BeyondPodを立ち上げウインドウがアクティブになるまで最大60秒待つ
Run(exe6)
WaitForActive(title1, 60)

#全てのフィードを更新
SendRightSoft(title1)
Sleep(WaitS)
SendKeys(title1, "U")
Sleep(WaitS)
SendKeys(title1, "A")

#タイムアウト時間をカウント
startingtime = TimeStamp()
While(TimeStamp() < startingtime + timeout1 * 60)

#"title2"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title2))
SendRightSoft(title2)
Sleep(WaitS)
SendKeys(title2, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#"title3"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title3))
SendRightSoft(title3)
Sleep(WaitS)
SendKeys(title3, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#"title4"ウインドウが存在したらBeyondpodを終了し次の巡回用サブルーチンへ
If(WndExists(title4))
SendRightSoft(title4)
Sleep(WaitS)
SendKeys(title4, "E")
Sleep(WaitS)
Call("others")
Else
Endif

#BeyondPodが手動で終了されたらスクリプト終了用サブルーチンへ
If(ProcExists(exe6))

Else
Sleep(WaitL)
Call("endofscript")
Endif
EndWhile

#タイムアウトの場合はBeyondpodを終了
#次の巡回用サブルーチンへ
Run(exe6)
Sleep(WaitS)
SendRightSoft()
Sleep(WaitS)
SendKeys(, "E")
Sleep(WaitL)
Call("others")

Else
Call("others")
Endif

Exit

Sub others

#JWezWMの自動巡回#############################
RunWait(exe3, "auto")

#RSSTickerTodayの自動巡回#####################
RunWait(exe4)

#03RSSリーダーの自動巡回######################

#03RSSリーダーが起動していればウインドウをアクティブに、起動していなければ実行
If(WndExists(title0))
Show(title0)
Else
Run(exe5)
EndIf

#03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
WaitForActive(title0, 60)

#更新チェック
SendRightSoft(title0)
Sleep(WaitS)
SendKeys(title0, "A")
Sleep(WaitS)
SendLeftSoft(title0)
Sleep(WaitS)
SendCR("確認")

#ダウンロード終了待ち
Sleep(timeout2 * 60000)

#03RSSリーダーをアクティブに
Show(title0)

#03RSSリーダーのウインドウがアクティブになるまで最大60秒待つ
WaitForActive(title0, 60)

#03RSSリーダーを終了しスクリプト終了用サブルーチンへ
SendRightSoft(title0)
Sleep(WaitS)
SendKeys(title0, "E")
WaitFor("終了の確認", 10)
SendCR("終了の確認")
Sleep(WaitL)
Call("endofscript")

EndSub

Sub endofscript

#接続切断用サブルーチン
#無線LANとダイアルアップを切断しスクリプトを終了
Run(exe1, "off")
Sleep(WaitL)
Run(exe2, "-off")
Sleep(WaitL)
RedrawToday
Exit
EndSub

RunAT設定

RunATの定時実行スケジュールに上記MortScriptを設定して、毎朝6時に上記スクリプトを自動実行しています。

・定時実行スケジュール設定

 タイトル ; Morning
 状態 ; 有効
 時刻 ; 06:00:00
 コマンド ; \Program Files\MortScript\Mortscript.exe
 パラメータ ; "\Program Files\MortScript\data\Morning4.mscr"
 曜日 ; 毎日


7時以降は「RSS Ticker TodayとRunATでフィードを自動巡回してToday画面にTicker表示する」でご紹介している様にToday画面のRSSのTicker表示のみ1時間毎に更新しています。

その他のカスタマイズ例については「アドエスのカスタマイズまとめ」をご参照ください。

以上

0 件のコメント:

コメントを投稿