• R/O
  • SSH
  • HTTPS

dietmemorer: Commit


Commit MetaInfo

Revision26 (tree)
Time2008-02-08 14:33:08
Authoryaggy

Log Message

まとめ機能、エネルギーグラフ機能を付けてみた。実験中。

Change Summary

Incremental Difference

--- trunk/src/graph_creator.rb (revision 25)
+++ trunk/src/graph_creator.rb (revision 26)
@@ -12,9 +12,10 @@
1212 @dbh = dbh
1313 end
1414
15+ @@ModeGraphALL = 0
1516 @@ModeGraphWeight = 1
1617 @@ModeGraphFat = 2
17- @@ModeGraphWF = 3
18+ @@ModeGraphEnergy = 3
1819
1920 # 体重グラフ作成
2021 def createwgraph(basepath, email)
@@ -26,9 +27,14 @@
2627 return creategraph(basepath, email, @@ModeGraphFat)
2728 end
2829
30+ # エネルギーグラフ作成
31+ def createegraph(basepath, email)
32+ return creategraph(basepath, email, @@ModeGraphEnergy)
33+ end
34+
2935 # 体重・体脂肪グラフ作成
30- def createwfgraph(basepath, email)
31- return creategraph(basepath, email, @@ModeGraphWF)
36+ def createallgraph(basepath, email)
37+ return creategraph(basepath, email, @@ModeGraphALL)
3238 end
3339
3440 # グラフ作成ベース
@@ -41,11 +47,12 @@
4147
4248 hweight = Hash.new
4349 hfat = Hash.new
50+ henergy = Hash.new
4451
4552 nowday = Date.today
4653
4754 # 体重
48- tsth = @dbh.prepare("SELECT weight, adddate FROM dweight WHERE mailadd = ? AND adddate > DATE_ADD(CURDATE(), INTERVAL -90 DAY)")
55+ tsth = @dbh.prepare("SELECT weight, adddate FROM dweight WHERE mailadd = ? AND adddate > DATE_ADD(CURDATE(), INTERVAL -90 DAY) ORDER BY adddate")
4956 tsth.execute(email)
5057 if 0 != tsth.rows then
5158 tsth.fetch do |weight|
@@ -55,7 +62,7 @@
5562 tsth.finish
5663
5764 # 体脂肪
58- tsth = @dbh.prepare("SELECT fat, adddate FROM dfat WHERE mailadd = ? AND adddate > DATE_ADD(CURDATE(), INTERVAL -90 DAY)")
65+ tsth = @dbh.prepare("SELECT fat, adddate FROM dfat WHERE mailadd = ? AND adddate > DATE_ADD(CURDATE(), INTERVAL -90 DAY) ORDER BY adddate")
5966 tsth.execute(email)
6067 if 0 != tsth.rows then
6168 tsth.fetch do |fat|
@@ -64,6 +71,20 @@
6471 end
6572 tsth.finish
6673
74+ # エネルギー
75+ tsth = @dbh.prepare("SELECT sum(energy) as esum, DATE_FORMAT(adddate, '%Y-%m-%d') as donly " + \
76+ "FROM denergy " + \
77+ "WHERE mailadd = ? AND adddate > DATE_ADD(CURDATE(), INTERVAL -90 DAY) " + \
78+ "GROUP BY donly " + \
79+ "ORDER BY donly ");
80+ tsth.execute(email)
81+ if 0 != tsth.rows then
82+ tsth.fetch do |energy|
83+ henergy[energy[1].to_s] = energy[0]
84+ end
85+ end
86+ tsth.finish
87+
6788 maxbef = 91
6889
6990 i = maxbef
@@ -71,9 +92,11 @@
7192 cnt = 0
7293 befweight = 20.0
7394 beffat = 20.0
95+ befenergy = 20.0
7496
7597 aweight = []
7698 afat = []
99+ aenergy = []
77100
78101 while i >= 0
79102
@@ -88,10 +111,14 @@
88111 if nil != hfat[day] then
89112 started = true
90113 end
91- elsif @@ModeGraphWF == mode then
92- if nil != hweight[day] and nil != hfat[day] then
114+ elsif @@ModeGraphEnergy == mode then
115+ if nil != henergy[day] then
93116 started = true
94117 end
118+ elsif @@ModeGraphALL == mode then
119+ if nil != hweight[day] and nil != hfat[day] and nil != henergy[day] then
120+ started = true
121+ end
95122 end
96123 end
97124
@@ -103,9 +130,17 @@
103130 if nil != hfat[day] then
104131 beffat = hfat[day]
105132 end
133+ if nil != henergy[day] then
134+ if @@ModeGraphEnergy == mode then
135+ befenergy = henergy[day]
136+ else
137+ befenergy = henergy[day] * 3.0 / 100.0;
138+ end
139+ end
106140
107141 aweight.push(befweight)
108142 afat.push(beffat)
143+ aenergy.push(befenergy)
109144
110145 cnt += 1
111146 end
@@ -129,10 +164,14 @@
129164 elsif @@ModeGraphFat == mode then
130165 g.title = "メモらーグラフ 体脂肪"
131166 g.data("体脂肪率", afat)
132- elsif @@ModeGraphWF == mode then
167+ elsif @@ModeGraphEnergy == mode then
168+ g.title = "メモらーグラフ kcal"
169+ g.data("エネルギー(kcal)", aenergy)
170+ elsif @@ModeGraphALL == mode then
133171 g.title = "メモらーグラフ"
134172 g.data("体重", aweight)
135173 g.data("体脂肪率", afat)
174+ g.data("ENERGY", aenergy)
136175 end
137176
138177 hindex = Hash.new
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
--- trunk/src/mail/dmr_sum.txt (nonexistent)
+++ trunk/src/mail/dmr_sum.txt (revision 26)
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
--- trunk/src/mail/dmr_help.txt (revision 25)
+++ trunk/src/mail/dmr_help.txt (revision 26)
@@ -13,14 +13,24 @@
1313
1414 タイトルに、
1515 グラフ
16-って書いて送ってくれると、最大過去90日の体重・体脂肪のグラフが見られるよ。
17-体重だけ、体脂肪だけのグラフを見たい場合は、
16+って書いて送ってくれると、最大過去90日の体重・体脂肪・エネルギーのグラフが見られるよ。
17+体重だけ、体脂肪だけ、エネルギーだけのグラフを見たい場合は、
1818 体重グラフ
1919 体脂肪グラフ
20+エネルギーグラフ
2021 って書いて送ってね。
2122
23+何を食べたか忘れちゃった人は、
24+最近
25+今月
26+今月詳細
27+先月
28+先月詳細
29+全部
30+のどれか書いて送ってくれると、思い出せるよ〜。
31+
2232 間違えちゃった場合はタイトルに、
2333 リセット
24-って書いて送ると、その日に食べたものを一切忘れるよ。
34+って書いて送ってくれると、その日に食べたものを一切忘れるよ。
2535
2636 じゃあ、ぼくと一緒にがんばってダイエットしようね!
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
--- trunk/src/mail/dmr_footer.txt (revision 25)
+++ trunk/src/mail/dmr_footer.txt (revision 26)
@@ -1,3 +1,3 @@
11 ---
2-ダイエットメモらー 0.1
2+ダイエットメモらー 0.2
33 kcal@dietmemo.net
--- trunk/src/mail_analizer.rb (revision 25)
+++ trunk/src/mail_analizer.rb (revision 26)
@@ -13,34 +13,51 @@
1313 # メール解析および返信クラス
1414 class MailAnalizer
1515
16+ # 返信文作成時の種類
17+ @@ReplyModeNormal = 0
18+ @@ReplyModeSum = 1
19+ @@ReplyModeThisMonth = 2
20+ @@ReplyModeThisMonthDetail = 3
21+ @@ReplyModeLastMonth = 4
22+ @@ReplyModeLastMonthDetail = 5
23+ @@ReplyModeAll = 9
24+
1625 # 無題の題名
1726 @@sub_nosubject = ["", "無題", "no subject", "nosubject", "登録"]
1827
19- # 今日の内訳機能のキーワード
20- @@sub_today = "今日"
21- # 今月の合計機能のキーワード
22- @@sub_thismonth = "今月"
23- # 今月の詳細合計機能のキーワード
24- @@sub_thismonth_detail = "詳細今月"
25- # いままでの合計機能のキーワード
26- @@sub_fulltotal = "合計"
27- # 先月の合計機能のキーワード
28- @@sub_lastmonth = "先月"
29- # 先月の詳細合計機能のキーワード
30- @@sub_lastmonth = "詳細先月"
28+ # 過去3日の詳細のキーワード
29+ @@sub_detail = ["まとめ", "みっか", "最近"]
3130
31+ # 今月のまとめ機能のキーワード
32+ @@sub_thismonth = ["今月", "こんげつ"]
33+
34+ # 今月の詳細機能のキーワード
35+ @@sub_thismonth_detail = ["詳細今月", "今月詳細", "こんげつしょうさい", "しょうさいこんげつ", "こんげつこまかく"]
36+
37+ # 先月のまとめ機能のキーワード
38+ @@sub_lastmonth = ["先月", "せんげつ"]
39+
40+ # 先月の詳細機能のキーワード
41+ @@sub_lastmonth_detail = ["詳細先月", "先月詳細", "せんげつしょうさい", "しょうさいせんげつ", "せんげつこまかく"]
42+
43+ # いままで全部の詳細機能のキーワード
44+ @@sub_all_detail = ["ぜんぶ", "全部", "オール", "おーる", "記憶", "きおく", "忘"]
45+
3246 # ヘルプのキーワード
3347 @@sub_help = ["ヘルプ", "へるぷ", "使い方", "つかいかた"]
3448
3549 # グラフのキーワード
36- @@sub_graph = ["やせた?", "やせた?", "やせた", "グラフ", "ぐらふ", "クラブ", "くらぶ"]
50+ @@sub_graph = ["やせた?", "やせた?", "やせた", "グラフ", "ぐらふ", "クラブ", "くらぶ", "G", "g"]
3751
3852 # 体重グラフのキーワード
39- @@sub_wgraph = ["体重グラフ", "体重ぐらふ", "たいじゅうぐらふ", "体重クラブ", "体重くらぶ", "たいじゅうくらぶ"]
53+ @@sub_wgraph = ["体重グラフ", "体重ぐらふ", "たいじゅうぐらふ", "体重クラブ", "体重くらぶ", "たいじゅうくらぶ", "WG", "wg"]
4054
4155 # 体脂肪グラフのキーワード
42- @@sub_fgraph = ["体脂肪グラフ", "体脂肪ぐらふ", "たいしぼうぐらふ", "体脂肪クラブ", "体脂肪くらぶ", "たいしぼうくらぶ"]
56+ @@sub_fgraph = ["体脂肪グラフ", "体脂肪ぐらふ", "たいしぼうぐらふ", "体脂肪クラブ", "体脂肪くらぶ", "たいしぼうくらぶ", "FG", "fg"]
4357
58+ # エネルギーグラフのキーワード
59+ @@sub_egraph = ["エネルギーグラフ", "えねるぎーぐらふ", "カロリーグラフ", "かろりーぐらふ", "EG", "eg"]
60+
4461 # 当日リセットのキーワード
4562 @@sub_reset = ["リセット", "りせっと", "まちがい"]
4663
@@ -74,6 +91,9 @@
7491 # リセット返信文
7592 @@repmail_reset = "mail/dmr_reset.txt"
7693
94+ # まとめ時メール返信文
95+ @@repmail_memo = "mail/dmr_sum.txt"
96+
7797 # 曜日配列
7898 @@wdays = ["日", "月", "火", "水", "木", "金", "土"]
7999
@@ -141,7 +161,7 @@
141161 end
142162
143163 # すべての行の前後の空白を取り除く
144- # _fileall_ :: 文字列
164+ # _lines_ :: 文字列
145165 # Return :: 取り除いた後の文字列
146166 def strip_lines(lines)
147167 newlines = ""
@@ -190,7 +210,7 @@
190210 # _from_ :: メール送信元アドレス
191211 def send_graph(to, smtpserver, from)
192212 gc = GraphCreator.new(@dbh)
193- filename = gc.createwfgraph(@@graph_dir, to)
213+ filename = gc.createallgraph(@@graph_dir, to)
194214
195215 send_graph_reply(filename, to, smtpserver, from)
196216 end
@@ -217,6 +237,17 @@
217237 send_graph_reply(filename, to, smtpserver, from)
218238 end
219239
240+ # エネルギーグラフメッセージの送信
241+ # _to_ :: メール送信先アドレス
242+ # _smtpserver_ :: SMTPサーバ名
243+ # _from_ :: メール送信元アドレス
244+ def send_egraph(to, smtpserver, from)
245+ gc = GraphCreator.new(@dbh)
246+ filename = gc.createegraph(@@graph_dir, to)
247+
248+ send_graph_reply(filename, to, smtpserver, from)
249+ end
250+
220251 # リセット処理メッセージの送信
221252 # _to_ :: メール送信先アドレス
222253 # _smtpserver_ :: SMTPサーバ名
@@ -240,6 +271,140 @@
240271 MailControl.sendmail(smtpserver, to, from, repsub, repbody)
241272 end
242273
274+ # 返信文を送信(通常のとき用)
275+ def send_detail(mailfrom, smtpserver, smtpfrom)
276+ send_detail(@@ReplyModeNormal, mailfrom, smtpserver, smtpfrom)
277+ end
278+
279+ # 返信文を送信
280+ def send_detail(mode, mailfrom, smtpserver, smtpfrom)
281+
282+ detail = create_detail(mode)
283+
284+ if "" != detail then
285+ if mode == @@ReplyModeNormal then
286+ rep = Kconv::kconv(fileread(@@repmail_memo), Kconv::UTF8)
287+ else
288+ rep = Kconv::kconv(fileread(@@repmail_sum), Kconv::UTF8)
289+ end
290+ repsub = getfilesubject(rep)
291+ repbody = getfilebody(rep) + detail + Kconv::kconv(fileread(@@repmail_footer), Kconv::UTF8)
292+
293+ Debug.p "filebody = '" + repbody + "'"
294+
295+ MailControl.sendmail(smtpserver, mailfrom, smtpfrom, repsub, repbody)
296+ else
297+ Debug.p "Can't create reply..."
298+ end
299+
300+ end
301+
302+ # 返信文を作成
303+ # Return :: 返信文
304+ def create_detail(mode)
305+
306+ detail = ""
307+
308+ # 現在から過去3日分のエネルギーを表示
309+ sql = "SELECT d.mailadd, d.food, d.energy, m.ave, d.adddate, s.ssum " + \
310+ " FROM denergy d LEFT JOIN " + \
311+ " (SELECT food, ROUND(AVG(energy), 0) as ave " + \
312+ " FROM menergy GROUP BY food) m ON d.food = m.food, " + \
313+ " (SELECT DATE_FORMAT(adddate, '%Y-%m-%d') as fd, SUM(energy) as ssum FROM denergy WHERE mailadd = ? GROUP BY fd) s"
314+
315+ case mode
316+ when @@ReplyModeAll
317+ sql.concat(" WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND d.mailadd = ?")
318+ when @@ReplyModeNormal, @@ReplyModeSum
319+ sql.concat(" WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND d.adddate > DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND d.mailadd = ?")
320+ when @@ReplyModeThisMonth, @@ReplyModeThisMonthDetail
321+ sql.concat(" WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND DATE_FORMAT(d.adddate, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m') AND d.mailadd = ?")
322+ when @@ReplyModeLastMonth, @@ReplyModeLastMonthDetail
323+ sql.concat(" WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND DATE_FORMAT(d.adddate, '%Y-%m') = DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL -1 MONTH), '%Y-%m') AND d.mailadd = ?")
324+ else
325+ sql.concat(" WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND d.adddate > DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND d.mailadd = ?")
326+ end
327+
328+ sql.concat(" ORDER BY d.mailadd, d.adddate desc")
329+
330+ isth = @dbh.prepare(sql)
331+ isth.execute(mailfrom, mailfrom)
332+
333+ if 0 != isth.rows then
334+
335+ befdate = Time.local(1975, 1, 1, 0, 0, 0)
336+ daysum = 0
337+
338+ isth.fetch do |irow|
339+
340+ nfood = irow[1]
341+ nenergy = irow[2]
342+ nave = irow[3]
343+ ndate = irow[4]
344+ nsum = irow[5]
345+ rndate = Time.local(ndate.year, ndate.month, ndate.day, 0, 0, 0)
346+
347+ if rndate.to_f != befdate.to_f then
348+ # 日替わり表示
349+ detail.concat("\n" + rndate.month.to_s + "/" + rndate.day.to_s + "(" + @@wdays[rndate.wday] + ") 計" + nsum.to_s + "kcal\n")
350+ befdate = rndate
351+
352+ w = false;
353+ kg = 0;
354+
355+ # 体重
356+ tsth = @dbh.prepare("SELECT weight FROM dweight WHERE mailadd = ? AND adddate = ?")
357+ tsth.execute(mailfrom, rndate)
358+ if 0 != tsth.rows then
359+ tsth.fetch do |weight|
360+ kg = weight[0]
361+ detail.concat("体重 " + kg.to_s + "kg\n")
362+ end
363+ end
364+ tsth.finish
365+
366+ # 体脂肪
367+ tsth = @dbh.prepare("SELECT fat FROM dfat WHERE mailadd = ? AND adddate = ?")
368+ tsth.execute(mailfrom, rndate)
369+ if 0 != tsth.rows then
370+ tsth.fetch do |fat|
371+ detail.concat("体脂肪率 " + fat[0].to_s + "% ")
372+ if 0 != kg then
373+ detail.concat("(体脂肪 " + (fat[0] * kg / 100).to_s + "kg)")
374+ end
375+ detail.concat("\n")
376+ end
377+ end
378+ tsth.finish
379+
380+ end
381+
382+ if nenergy then
383+ senergy = nenergy.to_s
384+ else
385+ senergy = "?"
386+ end
387+
388+ if nave then
389+ save = nave.to_s
390+ else
391+ save = "?"
392+ end
393+
394+ if mode != @@ReplyModeThisMonth and mode != @@ReplyModeLastMonth then
395+ detail.concat(" " + nfood + " " + senergy + "kcal (" + save + ")\n")
396+ end
397+
398+ end
399+
400+ end
401+
402+ isth.finish
403+
404+ return detail
405+
406+ end
407+
243408 # メールの解析
244409 # _mail_ :: メール内容の入った TMail::Mail オブジェクト
245410 # _smtpserver_ :: SMTPサーバ名
@@ -253,10 +418,10 @@
253418
254419 mailsub = mail.subject
255420
256- if mailsub then
421+ if nil != mailsub then
257422 mailsub = Kconv::kconv(mailsub, Kconv::UTF8)
258423 else
259- mailsub = ""
424+ mailsub = "empty..."
260425 end
261426
262427 mailfrom = mail.from.to_s
@@ -263,7 +428,8 @@
263428
264429 # エラーメールっぽかったら無視
265430 if mailsub[/DAEMON/] or mailsub[/Daemon/] or mailsub[/daemon/] \
266- or mailsub[/RETURN/] or mailsub[/Return/] or mailsub[/Return/] then
431+ or mailsub[/RETURN/] or mailsub[/Return/] or mailsub[/Return/] \
432+ or mailfrom[/DAEMON/] or mailfrom[/Delivery/] then
267433 Debug.p "Invalid mail..."
268434 return
269435 end
@@ -312,6 +478,14 @@
312478 return
313479 end
314480
481+ # エネルギーグラフ要求っぽかったら、体脂肪グラフ送信
482+ if MailAnalizer.in_ary(@@sub_egraph, mailsub) then
483+ sth.finish
484+ Debug.p "send energy graph."
485+ send_egraph(mailfrom, smtpserver, smtpfrom)
486+ return
487+ end
488+
315489 # リセット要求っぽかったら、当日のデータ全消去
316490 if MailAnalizer.in_ary(@@sub_reset, mailsub) then
317491 sth.finish
@@ -320,14 +494,62 @@
320494 return
321495 end
322496
497+ # まとめ要求っぽかったら、それを送信
498+ if MailAnalizer.in_ary(@@sub_detail, mailsub) then
499+ sth.finish
500+ Debug.p "send detail."
501+ send_detail(@@ReplyModeSum, mailfrom, smtpserver, smtpfrom)
502+ return
503+ end
504+
505+ # 今月のまとめ要求っぽかったら、それを送信
506+ if MailAnalizer.in_ary(@@sub_thismonth, mailsub) then
507+ sth.finish
508+ Debug.p "send thismonth."
509+ send_detail(@@ReplyModeThisMonth, mailfrom, smtpserver, smtpfrom)
510+ return
511+ end
512+
513+ # 今月のまとめ詳細要求っぽかったら、それを送信
514+ if MailAnalizer.in_ary(@@sub_thismonth_detail, mailsub) then
515+ sth.finish
516+ Debug.p "send thismonth detail."
517+ send_detail(@@ReplyModeThisMonthDetail, mailfrom, smtpserver, smtpfrom)
518+ return
519+ end
520+
521+ # 先月のまとめ要求っぽかったら、それを送信
522+ if MailAnalizer.in_ary(@@sub_lastmonth, mailsub) then
523+ sth.finish
524+ Debug.p "send lastmonth."
525+ send_detail(@@ReplyModeLastMonth, mailfrom, smtpserver, smtpfrom)
526+ return
527+ end
528+
529+ # 先月のまとめ詳細要求っぽかったら、それを送信
530+ if MailAnalizer.in_ary(@@sub_lastmonth_detail, mailsub) then
531+ sth.finish
532+ Debug.p "send lastmonth detail."
533+ send_detail(@@ReplyModeLastMonthDetail, mailfrom, smtpserver, smtpfrom)
534+ return
535+ end
536+
537+ # 全部のまとめ詳細要求っぽかったら、それを送信
538+ if MailAnalizer.in_ary(@@sub_all_detail, mailsub) then
539+ sth.finish
540+ Debug.p "send all detail."
541+ send_detail(@@ReplyModeAll, mailfrom, smtpserver, smtpfrom)
542+ return
543+ end
544+
323545 # ボディが空だったら、ヘルプ送信
324546 if nil == mailbody or "" == mailbody then
325547 sth.finish
326- Debug.p "send help."
548+ Debug.p "send help body empty."
327549 send_help(mailfrom, smtpserver, smtpfrom)
328550 return
329551 end
330-
552+
331553 Debug.p "subject"
332554 Debug.p mailsub
333555
@@ -420,96 +642,8 @@
420642 end
421643 }
422644
423- # 返信文を作成
424- sql = "SELECT d.mailadd, d.food, d.energy, m.ave, d.adddate, s.ssum " + \
425- " FROM denergy d LEFT JOIN " + \
426- " (SELECT food, ROUND(AVG(energy), 0) as ave " + \
427- " FROM menergy GROUP BY food) m ON d.food = m.food, " + \
428- " (SELECT DATE_FORMAT(adddate, '%Y-%m-%d') as fd, SUM(energy) as ssum FROM denergy WHERE mailadd = ? GROUP BY fd) s" + \
429- " WHERE s.fd = DATE_FORMAT(d.adddate, '%Y-%m-%d') AND d.adddate > DATE_ADD(CURDATE(), INTERVAL -1 DAY) AND d.mailadd = ?" + \
430- " ORDER BY d.mailadd, d.adddate desc"
645+ send_detail(mailfrom, smtpserver, smtpfrom)
431646
432- isth = @dbh.prepare(sql)
433- isth.execute(mailfrom, mailfrom)
434-
435- if 0 != isth.rows then
436-
437- detail = ""
438- befdate = Time.local(1975, 1, 1, 0, 0, 0)
439- daysum = 0
440-
441- isth.fetch do |irow|
442-
443- nfood = irow[1]
444- nenergy = irow[2]
445- nave = irow[3]
446- ndate = irow[4]
447- nsum = irow[5]
448- rndate = Time.local(ndate.year, ndate.month, ndate.day, 0, 0, 0)
449-
450- if rndate.to_f != befdate.to_f then
451- # 日替わり表示
452- detail.concat("\n" + rndate.month.to_s + "/" + rndate.day.to_s + "(" + @@wdays[rndate.wday] + ") 計" + nsum.to_s + "kcal\n")
453- befdate = rndate
454-
455- w = false;
456- kg = 0;
457-
458- # 体重
459- tsth = @dbh.prepare("SELECT weight FROM dweight WHERE mailadd = ? AND adddate = ?")
460- tsth.execute(mailfrom, rndate)
461- if 0 != tsth.rows then
462- tsth.fetch do |weight|
463- kg = weight[0]
464- detail.concat("体重 " + kg.to_s + "kg\n")
465- end
466- end
467- tsth.finish
468-
469- # 体脂肪
470- tsth = @dbh.prepare("SELECT fat FROM dfat WHERE mailadd = ? AND adddate = ?")
471- tsth.execute(mailfrom, rndate)
472- if 0 != tsth.rows then
473- tsth.fetch do |fat|
474- detail.concat("体脂肪率 " + fat[0].to_s + "% ")
475- if 0 != kg then
476- detail.concat("(体脂肪 " + (fat[0] * kg / 100).to_s + "kg)")
477- end
478- detail.concat("\n")
479- end
480- end
481- tsth.finish
482-
483- end
484-
485- if nenergy then
486- senergy = nenergy.to_s
487- else
488- senergy = "?"
489- end
490-
491- if nave then
492- save = nave.to_s
493- else
494- save = "?"
495- end
496-
497- detail.concat(" " + nfood + " " + senergy + "kcal (" + save + ")\n")
498-
499- end
500-
501- rep = Kconv::kconv(fileread(@@repmail_memo), Kconv::UTF8)
502- repsub = getfilesubject(rep)
503- repbody = getfilebody(rep) + detail + Kconv::kconv(fileread(@@repmail_footer), Kconv::UTF8)
504-
505- Debug.p "filebody = '" + repbody + "'"
506-
507- MailControl.sendmail(smtpserver, mailfrom, smtpfrom, repsub, repbody)
508-
509- end
510-
511- isth.finish
512-
513647 else
514648 # ユーザ登録
515649 isth = @dbh.prepare("INSERT INTO muser (mailadd, adddate) values(?, now())")
--- trunk/web/index.html (revision 25)
+++ trunk/web/index.html (revision 26)
@@ -1,71 +1,91 @@
1-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2-<html>
3- <head>
4- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5- <title>ダイエットメモらー</title>
6- </head>
7- <body bgcolor="#FEEEEE" text="#555588">
8- <center>
9- <h1>現在公開準備中です!</h1>
10- <br>
11- <br>
12- <table>
13- <tr>
14- <td>
15- <TABLE>
16- <TR valign="bottom">
17- <TD>
18- <IMG SRC="images/cnt/o0.gif"><BR><IMG SRC="images/cnt/p5.gif"><BR><IMG SRC="images/cnt/y8.gif"><BR><IMG SRC="images/cnt/g6.gif"><BR><IMG SRC="images/cnt/b6.gif"><BR><IMG SRC="images/cnt/corn.gif">
19- </TD>
20- <TD>
21- <IMG SRC="images/kaweru_s.gif">
22- </TD>
23- </TR>
24- </TABLE>
25- </td>
26- <td>
27-   
28- </td>
29- <td>
30- ダイエットメモらーです。
31- <br>
32- 逆にこんばんは。
33- <br>
34- えー、さて、
35- <br>
36- kcal@dietmemo.net
37- <br>
38- に、空メールを送ってみてね。
39- <br>
40-   <img src="images/kcal_qr.png">
41- </td>
42- </tr>
43- </table>
44- <font size=2>
45- ※迷惑メール対策、ドメイン受信制限をしているひとは、
46- <br>
47- dietmemo.net
48- <br>
49- からのメールが届くようにしてからやってみてね。
50- <br>
51- </font>
52- <br>
53- <font size=1>
54- character designed by NAKAMURA Toru (C) 2007.
55- </font>
56- <br>
57- <hr>
58- <p>
59- <font size=1>
60- <a href="http://sourceforge.jp/projects/dietmemorer">ダイエットメモらー</a>は、sourceforge.jp にてオープンソースで作成されています。
61- <br>
62- <a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=3171" width="96" height="31" border="0" alt="SourceForge.jp"></a>
63- <br>
64- 携帯などからメールで、食べたものとエネルギーを書いて送ると、サーバ側で記録していくダイエット支援システムです。
65- <br>
66- </font>
67- </p>
68- <b>決して「レコーディング・ダイエット」「いいめもダイエット」とは関係ありません。</b>
69- </center>
70- </body>
71-</html>
1+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2+<html>
3+ <head>
4+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5+ <!--
6+ <meta http-equiv="Refresh" content="0;URL=http://www.dietmemo.net/">
7+ --><title>ダイエットメモらー</title>
8+ <META NAME="ROBOTS" CONTENT="ALL"><META name="description" content="メールでのダイエット記録システム。決して「レコーディング・ダイエット」「いいめもダイエット」とは関係ありません。"><META name="keywords" content="ダイエット,レコーディング・ダイエット,いいめもダイエット,とは関係ありません。">
9+ </head>
10+ <body bgcolor="#FEEEEE" text="#555588">
11+ <center>
12+ <H2>
13+ ダイエットメモらー 0.1
14+ <br>
15+ 実験中
16+ <br>
17+ </H2>
18+ <br>
19+ <table>
20+ <tr>
21+ <td align="center">
22+ <TABLE>
23+ <TR valign="bottom">
24+ <TD>
25+ <IFRAME src="cnt/counter.cgi" width="50" height="220" frameborder="0" Scrolling="no" align="center">
26+ </IFRAME>
27+ </TD>
28+ <TD>
29+ <IMG SRC="images/kaweru_s.gif">
30+ </TD>
31+ </TR>
32+ </TABLE>
33+ <FONT SIZE="-2">
34+ ぼくは、かうぇるだよ。<BR> アイス、がまんがまん。
35+ </FONT>
36+ </td>
37+ <td>
38+   
39+ </td>
40+ <td>
41+ ダイエットメモらーです。
42+ <br>
43+ 逆にこんばんは。
44+ <br>
45+ えー、さて、
46+ <br>
47+ kcal@dietmemo.net
48+ <br>
49+ に、空メールを送ってみてね。
50+ <br>
51+   <img src="images/kcal_qr.png">
52+ </td>
53+ </tr>
54+ </table><BR>
55+ <font size=2>
56+ ※迷惑メール対策、ドメイン受信制限をしているひとは、
57+ <br>
58+ dietmemo.net
59+ <br>
60+ からのメールが届くようにしてからやってみてね。
61+ <br>
62+ </font>
63+ <br>
64+ <font size=1>
65+ character designed by NAKAMURA Toru (C) 2007.
66+ </font>
67+ <br>
68+ <br>
69+ <br>
70+ みんなが食べたものランキング。
71+ <br>
72+ <a href="ext/elist.rbx?ptn=1">人気順</a>
73+ <br>
74+ <a href="ext/elist.rbx?ptn=2">エネルギー順</a>
75+ <br>
76+ <br>
77+ <hr>
78+ <p>
79+ <font size=1>
80+ <a href="http://sourceforge.jp/projects/dietmemorer">ダイエットメモらー</a>は、sourceforge.jp にてオープンソースで作成されています。
81+ <br>
82+ <a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=3171" width="96" height="31" border="0" alt="SourceForge.jp"></a>
83+ <br>
84+ 携帯などからメールで、食べたものとエネルギーを書いて送ると、サーバ側で記録していくダイエット支援システムです。
85+ <br>
86+ </font>
87+ </p>
88+ <b>決して「レコーディング・ダイエット」「いいめもダイエット」とは関係ありません。</b>
89+ </center>
90+ </body>
91+</html>
Show on old repository browser