diff src/getexr/getexr.go @ 61:49656dc40069

add qtuti.
author pyon@macmini
date Fri, 11 Sep 2020 20:06:27 +0900
parents 38b64afbaf79
children
line wrap: on
line diff
--- a/src/getexr/getexr.go	Fri Aug 14 03:31:29 2020 +0900
+++ b/src/getexr/getexr.go	Fri Sep 11 20:06:27 2020 +0900
@@ -21,99 +21,99 @@
 
 func main() {
 
-    version := flag.Bool( "v", false, "print version" )
-    verbose := flag.Bool( "V", false, "verbose" )
-    file := flag.String( "f", "usd.dat", "data file" )
+    version := flag.Bool("v", false, "print version")
+    verbose := flag.Bool("V", false, "verbose")
+    file := flag.String("f", "usd.dat", "data file")
     flag.Parse()
 
-    if ( *version ) {
-        fmt.Fprintf( os.Stderr, "getexr - Get Exchange Rate  [ version = %s ]\n", ver )
-        os.Exit( 0 )
+    if (*version) {
+        fmt.Fprintf(os.Stderr, "getexr - Get Exchange Rate  [ version = %s ]\n", ver)
+        os.Exit(0)
     }
 
     t := time.Now()
-    now := t.Format( "2006-01-02 15:04:05" )
+    now := t.Format("2006-01-02 15:04:05")
 
     // Get USD Rate
-    PrintVerbose( *verbose, "> get rate from yahoo..." )
+    PrintVerbose(*verbose, "> get rate from yahoo...")
     url := "http://finance.yahoo.co.jp/"
-    resp, err := http.Get( url )
+    resp, err := http.Get(url)
     if err != nil {
-        log.Fatal( err )
+        log.Fatal(err)
     }
-    PrintVerbose( *verbose, "success\n" )
+    PrintVerbose(*verbose, "success\n")
 
-    z := html.NewTokenizer( resp.Body )
-    usd, err := ParseHtml( z )
+    z := html.NewTokenizer(resp.Body)
+    usd, err := ParseHtml(z)
     if err != nil {
-        log.Fatal( err )
+        log.Fatal(err)
     }
     defer resp.Body.Close()
-    PrintVerbose( *verbose, fmt.Sprintf( "> rate = %.2f\n", usd ) )
+    PrintVerbose(*verbose, fmt.Sprintf("> rate = %.2f\n", usd))
 
-    content, err := ioutil.ReadFile( *file )
+    content, err := ioutil.ReadFile(*file)
     if err != nil {
-        log.Fatal( err )
+        log.Fatal(err)
     }
     fc := 0
 
-    buf1 := strings.Split( string( content ), "\n" )
+    buf1 := strings.Split(string(content), "\n")
 
     // Compare Alert Rate
-    buf2 := strings.Split( buf1[ 0 ], "," )
+    buf2 := strings.Split(buf1[ 0 ], ",")
     flg := buf2[0]
-    thr, _ := strconv.ParseFloat( buf2[1], 32 )
+    thr, _ := strconv.ParseFloat(buf2[1], 32)
 
-    if ( strings.EqualFold( "H", flg ) && thr < usd ) {
+    if (strings.EqualFold("H", flg) && thr < usd) {
         fc = -1
-        content = bytes.Replace( content, []byte( "H" ), []byte( "-" ), 1 )
-        if err := AlertMail( "H", now, usd ); err != nil {
-            log.Fatal( err )
+        content = bytes.Replace(content, []byte("H"), []byte("-"), 1)
+        if err := AlertMail("H", now, usd); err != nil {
+            log.Fatal(err)
         }
-        PrintVerbose( *verbose, "> rate higher.\n> sending alert mail.\n" )
+        PrintVerbose(*verbose, "> rate higher.\n> sending alert mail.\n")
 
-    } else if ( strings.EqualFold( "L", flg ) && thr > usd ) {
+    } else if (strings.EqualFold("L", flg) && thr > usd) {
         fc = -1
-        content = bytes.Replace( content, []byte( "L" ), []byte( "-" ), 1 )
-        if err := AlertMail( "L", now, usd ); err != nil {
-            log.Fatal( err )
+        content = bytes.Replace(content, []byte("L"), []byte("-"), 1)
+        if err := AlertMail("L", now, usd); err != nil {
+            log.Fatal(err)
         }
-        PrintVerbose( *verbose, "> rate lower.\n> sending alert mail.\n" )
+        PrintVerbose(*verbose, "> rate lower.\n> sending alert mail.\n")
     }
 
     // Compare Past Rate
-    buf2 = strings.Split( buf1[ len( buf1 ) - 2 ], "," )
+    buf2 = strings.Split(buf1[ len(buf1) - 2 ], ",")
     ymd0 := buf2[0]
-    usd0, _ := strconv.ParseFloat( buf2[1], 32 )
+    usd0, _ := strconv.ParseFloat(buf2[1], 32)
 
-    if ( math.Abs( usd0 - usd ) > 1.0 ) {
+    if (math.Abs(usd0 - usd) > 1.0) {
         fc = 1
         // Post E-mail
-        PrintVerbose( *verbose, "> sending notify mail.\n" )
-        if err := NotifyMail( now, usd, ymd0, usd0 ); err != nil {
-            log.Fatal( err )
+        PrintVerbose(*verbose, "> sending notify mail.\n")
+        if err := NotifyMail(now, usd, ymd0, usd0); err != nil {
+            log.Fatal(err)
         }
-        PrintVerbose( *verbose, "> rate changed.\n" )
+        PrintVerbose(*verbose, "> rate changed.\n")
     } else {
-        PrintVerbose( *verbose, "> not changed.\n" )
+        PrintVerbose(*verbose, "> not changed.\n")
     }
 
     // Save Rate
-    if ( fc != 0 ) {
-        if ( fc == 1 ) {
-            buf := fmt.Sprintf( "%s,%.2f\n", now, usd )
-            content = append( content,  buf... )
+    if (fc != 0) {
+        if (fc == 1) {
+            buf := fmt.Sprintf("%s,%.2f\n", now, usd)
+            content = append(content,  buf...)
         }
-        if err := ioutil.WriteFile( *file, content, 0777 ); err != nil {
-            log.Fatal( err )
+        if err := ioutil.WriteFile(*file, content, 0777); err != nil {
+            log.Fatal(err)
         }
-        PrintVerbose( *verbose, "> data file overwrited.\n" )
+        PrintVerbose(*verbose, "> data file overwrited.\n")
     }
 
-    PrintVerbose( *verbose, "> finish.\n" )
+    PrintVerbose(*verbose, "> finish.\n")
 }
 
-func ParseHtml( z *html.Tokenizer ) ( float64, error ) {
+func ParseHtml(z *html.Tokenizer) (float64, error) {
     for {
         tt := z.Next()
         switch tt {
@@ -123,59 +123,59 @@
         case html.StartTagToken:
             tag, _ := z.TagName()
             key, val, _ := z.TagAttr()
-            if string( tag ) == "strong" && string( key ) == "class" && string( val ) == "bkLine" {
+            if string(tag) == "strong" && string(key) == "class" && string(val) == "bkLine" {
                 z.Next()
-                //fmt.Printf( "%s %s %s\n", key, val, z.Token() )
-                return strconv.ParseFloat( z.Token().String(), 32 )
+                //fmt.Printf("%s %s %s\n", key, val, z.Token())
+                return strconv.ParseFloat(z.Token().String(), 32)
             }
         }
     }
 }
 
-func NotifyMail( now string, usd float64, old string, usd0 float64 ) error {
+func NotifyMail(now string, usd float64, old string, usd0 float64) error {
     address := "muty@willcom.com"
     msg := "To: " + address + "\r\n" +
            "Subject: Exchange-Mail\r\n" +
            "\r\n" +
            "rate changed\r\n" +
            now + "\r\n" +
-           fmt.Sprintf( "[ USD/JPY : %.2f ].", usd ) + "\r\n\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
-    if err := SendMail( address, msg ); err != nil {
+           fmt.Sprintf("[ USD/JPY : %.2f ].", usd0) + "\r\n" // mail body
+    if err := SendMail(address, msg); err != nil {
         return err
     }
     return nil
 }
 
-func AlertMail( flg, now string, usd float64 ) error {
+func AlertMail(flg, now string, usd float64) error {
     address := "muty@willcom.com"
     msg := "To: " + address + "\r\n" +
            "Subject: Exchange-Mail\r\n" +
            "\r\n" +
            "rate changed\r\n" +
            now + "\r\n" +
-           fmt.Sprintf( "[ USD/JPY : %.2f ].", usd ) + "\r\n" // mail body
-    if err := SendMail( address, msg ); err != nil {
+           fmt.Sprintf("[ USD/JPY : %.2f ].", usd) + "\r\n" // mail body
+    if err := SendMail(address, msg); err != nil {
         return err
     }
     return nil
 }
 
-func SendMail( address, msg string ) error {
+func SendMail(address, msg string) error {
     hostname := "sdm.sakura.ne.jp"
-    auth := smtp.PlainAuth( "", "bad_user@sdm.sakura.ne.jp", "hogehoge3", hostname )
+    auth := smtp.PlainAuth("", "bad_user@sdm.sakura.ne.jp", "hogehoge3", hostname)
     to := []string{ address }
-    err := smtp.SendMail( hostname + ":587", auth, "bad_user@sdm.sakura.ne.jp", to, []byte( msg ) )
+    err := smtp.SendMail(hostname + ":587", auth, "bad_user@sdm.sakura.ne.jp", to, []byte(msg))
     if err != nil {
         return err
     }
     return nil
 }
 
-func PrintVerbose( y bool, msg string ) {
+func PrintVerbose(y bool, msg string) {
     if y {
-        fmt.Fprintf( os.Stderr, msg )
+        fmt.Fprintf(os.Stderr, msg)
     }
 }