12 May
2004

COREBlogに天気情報を追加する実装

ただいまテストしています

こういう実装です。
とりあえずテストしてみます。
RedMagic現在のお天気を参考にZWeatherApplet , PyMETARをインストールする
COREBlogWeatherPlugin01aをダウンロードしインストールする
・Zopeを再起動
・COREBlogの "Contents" 内で "ZWeatherApplet" プロダクトを Weather というIDで追加
・StationLocationCodeを選択
・COREBlogの "Contents" 内で "COREBlogWeatherPlugin" プロダクトを weather_plugin というIDで追加
・COREBlogの "Contents" 内にある entry_body , search_results を編集
 以下の行の下に

<dtml-comment>### Date posted ###</dtml-comment> <div class="posted">Posted by <b><dtml-var author></b> at <a href="<dtml-var blogurl missing="">/<dtml-var id>"><dtml-var date_created fmt="%H:%M"></a>
 これを追加(新潟は手動で)
<dtml-try>
<dtml-if "weather_plugin.getWeather(id) is None">
<dtml-else>
| 新潟 <img src="<dtml-var "weather_plugin.getWeather(id)">" style="float: none;margin: 0 0em 0em 0;margin-left: 0;margin-right:0;vertical-align:middle;">
</dtml-if>
<dtml-except>
</dtml-try>

・COREBlogの "methods" 内にある "addEntryHook" に以下の行を追加。ない場合はScript(Python)で追加。パラメタはdとする。
container.Weather.refresh()
if container.Weather.getPixmap() is None:
  container.weather_plugin.addWeathers(d["id"],"./Weather/misc_/ZWeatherApplet/sun")
else:
  container.weather_plugin.addWeathers(d["id"],"./Weather/misc_/ZWeatherApplet/"+container.Weather.getPixmap())
※画面に天気情報を出していない人はcontainer.Weather.refreshで天気を投稿時に再取得します。天気情報を出している人は1行目は不要です。


Posted by kan164 at 09:47 | 新潟 | Comments (7) | Trackbacks (0)
Comments
Re: COREBlogに天気情報を追加する実装

pyMETERでアクセスしているページと同等のページ
http://weather.noaa.gov/weather/current/RJSN.html
晴れてるときは現状の仕様だとNoneと表示されるのだろうか?
また単に取得していないときだったら?
それだと晴れマークかNoneのパッチが必要になりそうだ

Posted by: kan164 at May 12,2004 12:48
Re: COREBlogに天気情報を追加する実装

Weatherの更新にはWeather.refreshという処理が必要となります。15分以内に天気情報外部サーバと接続したキャッシュがあればそのままで、なければ取得しにいくという処理です。

その対応としてaddEntryHookの追加する行の上に
container.Weather.refresh
を追加する。
またrefreshするために
cron(14分間隔)でWeather.refreshする処理をdtml等で作成しておいてwgetするのも良いかもしれません。

Posted by: kan164 at May 14,2004 08:50
Re: COREBlogに天気情報を追加する実装

えっと、私の環境では'Preview Entry'の際にErrorとなります。

ception Type:ValueError
Exception Value:invalid literal for int(): cblog

Tracebackは、上部をばっさり端折って一番下:
Module , line 0, in ?
Module Products.COREBlogWeatherPlugin.COREBlogWeatherPlugin, line 173, in getWeather
ValueError: invalid literal for int(): cblog

...となっています。
時間なくて解決法も示せなくて申し訳ないですが、取り敢えずご報告まで。

Posted by: r28 at May 16,2004 06:21
Re: COREBlogに天気情報を追加する実装

r28さん、こんにちは
entry_bodyの修正にdtml-tryがついてますでしょうか
Preview時にはidが付与されないのでそのエラーが発生します。
なので上記の確認をおこなってみてください。

Posted by: kan164 at May 16,2004 09:58
Re: COREBlogに天気情報を追加する実装

kan164 さん、有り難うございます。

>entry_bodyの修正にdtml-tryがついてますでしょうか

あ、分かりました。dtml-tryはついてるのですが、<dtml-except>が抜けてました。
で、何故これが抜けてたかと云うと、このエントリの説明(追加するソース)では
</dtml-except> となっていて、"Save Changes"した際にここでErrorが出た
ので、dtmlが分からん私は、調べもせずこれを削除してしまった(らしい...寝不足
で朦朧としてて自分でもよく分からない...)のです。
<dtml-except>を入れたら、あっさり動いてくれました。

どうもすみません。お騒がせしました m(__)m

Posted by: r28 at May 16,2004 23:58
Re: COREBlogに天気情報を追加する実装

こちらこそ文法間違えており申し訳ありません。
dtml-except修正しました。ご指摘ありがとうございました。
では

Posted by: kan164 at May 17,2004 00:04
Re: COREBlogに天気情報を追加する実装

Il faut dire que définir l'interface d'une via XUL/CSS est on ne peut plus simple, et qu'il n'y a rien de plus aisé que la création d'applis crosses-plateformes grace à XPFE. Je suis meme étonné qu'aucune autre organisation n'aie songé à tirer parti de tout cela plus tot.

Posted by: Gordon McCannel at November 24,2006 00:37
Post a comment













Search Queries(Top10)
coreblog:261  COREBlog:165  天気:55  COREblog:38  literal:34  weather:31  CoreBlog:31  invalid:30  for:30  zope:29