Mercurial > mercurial > hgweb_golang.cgi
changeset 13:4fb189ae0a46
getexr: version up.
author | pyon@macmini |
---|---|
date | Wed, 03 Jan 2018 08:10:34 +0900 |
parents | aea69f84ed33 |
children | 001e2aa380ad |
files | src/getexr/getexr.go |
diffstat | 1 files changed, 27 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/getexr/getexr.go Sun Nov 12 20:10:26 2017 +0900 +++ b/src/getexr/getexr.go Wed Jan 03 08:10:34 2018 +0900 @@ -16,12 +16,13 @@ "golang.org/x/net/html" ) -var ver = "0.1" +var ver = "0.1.1" func main() { version := flag.Bool( "v", false, "print version" ) - file := flag.String( "f", "usd.dat", "print version" ) + verbose := flag.Bool( "V", false, "verbose" ) + file := flag.String( "f", "usd.dat", "data file" ) flag.Parse() if ( *version ) { @@ -30,11 +31,13 @@ } // Get USD Rate + PrintVerbose( *verbose, "> get rate from yahoo..." ) url := "http://finance.yahoo.co.jp/" resp, err := http.Get( url ) if err != nil { log.Fatal( err ) } + PrintVerbose( *verbose, "done\n" ) z := html.NewTokenizer( resp.Body ) usd, err := ParseHtml( z ) @@ -53,12 +56,8 @@ buf2 := strings.Split( buf1[ len( buf1 ) - 2 ], "," ) usd0, _ := strconv.ParseFloat( buf2[1], 32 ) - alart := false if ( math.Abs( usd0 - usd ) > 1.0 ) { - alart = true - } - - if ( alart ) { + PrintVerbose( *verbose, "> rate changed.\n" ) t := time.Now() now := t.Format( "2006-01-02 15:04:05" ) @@ -72,15 +71,16 @@ } // Post E-mail - err = SendMail( now, usd, "muty@willcom.com" ) + PrintVerbose( *verbose, "> sending mail.\n" ) + err = SendMail( now, usd, buf2[0], usd0 ) if err != nil { log.Fatal( err ) } - err = SendMail( now, usd, "pyon4pyon@yahoo.co.jp" ) - if err != nil { - log.Fatal( err ) - } + } else { + PrintVerbose( *verbose, "> no change.\n" ) } + + PrintVerbose( *verbose, "> finish.\n" ) } func ParseHtml( z *html.Tokenizer ) ( float64, error ) { @@ -102,14 +102,19 @@ } } -func SendMail( now string, usd float64, addr string ) error { +func SendMail( now string, usd float64, old string, usd0 float64 ) error { + address := "muty@willcom.com" hostname := "sdm.sakura.ne.jp" auth := smtp.PlainAuth( "", "bad_user@sdm.sakura.ne.jp", "hogehoge3", hostname ) - to := []string{ addr } - msg := []byte( "To: " + addr + "\r\n" + + to := []string{ address } + msg := []byte( "To: " + address + "\r\n" + "Subject: Exchange-Mail\r\n" + "\r\n" + - now + fmt.Sprintf( "\r\nrate changed\r\n[ USD/JPY : %.2f ].", usd ) + "\r\n" ) // mail body + "rate changed\r\n" + + now + "\r\n" + + fmt.Sprintf( "[ USD/JPY : %.2f ].", usd ) + "\r\n\r\n" + + old + "\r\n" + + fmt.Sprintf( "[ USD/JPY : %.2f ].", usd0 ) + "\r\n" ) // mail body err := smtp.SendMail( hostname + ":587", auth, "bad_user@sdm.sakura.ne.jp", to, msg ) if err != nil { return err @@ -117,3 +122,9 @@ return nil } +func PrintVerbose( y bool, msg string ) { + if y { + fmt.Fprintf( os.Stderr, msg ) + } +} +