-
Notifications
You must be signed in to change notification settings - Fork 2
/
linebotStatus.go
84 lines (65 loc) · 2.26 KB
/
linebotStatus.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package main
import (
"fmt"
"net/http"
"io/ioutil"
"os"
"regexp"
"strings"
"log"
"time"
)
func main() {
url := os.Getenv("WEBHOOK_URL")
resp, _ := http.Get(url)
defer resp.Body.Close()
byteArray, _ := ioutil.ReadAll(resp.Body)
//-------------------------------------
f, err := os.Open("README.md")
if err != nil{
fmt.Println("error")
}
defer f.Close()
// 一気に全部読み取り
b, err := ioutil.ReadAll(f)
// 出力
//fmt.Println(string(b))
//-------------------------------------
now := time.Now()
fmt.Println(now.Format(time.RFC3339))
nowUTC := now.UTC()
fmt.Println(nowUTC.Format(time.RFC3339))
jst := time.FixedZone("Asia/Tokyo", 9*60*60)
nowJST := nowUTC.In(jst)
fmt.Println(nowJST.Format(time.RFC3339))
//-------------------------------------
if string(byteArray) == "hello world!" {
fmt.Println("OK");
str := []byte(string(b))
assigned := regexp.MustCompile("<!--status-->\r\n\r\n(.*)\r\n\r\n<!--status-->")
group := assigned.FindSubmatch(str)
fmt.Println(string(group[1]))
replacedMd := strings.Replace(string(b), string(group[1]), "## 現在、利用できます。:smile:"+nowJST.Format(time.RFC3339)+"現在", 1)
//fmt.Println(replacedMd)
file, err := os.Create("README.md")
if err != nil {
log.Fatal(err) //ファイルが開けなかったときエラー出力
}
defer file.Close()
file.Write(([]byte)(replacedMd))
} else {
fmt.Println("error");
str := []byte(string(b))
assigned := regexp.MustCompile("<!--status-->\r\n\r\n(.*)\r\n\r\n<!--status-->")
group := assigned.FindSubmatch(str)
fmt.Println(string(group[1]))
replacedMd := strings.Replace(string(b), string(group[1]), "## 現在、利用できません。サーバーでエラーが生じています。:weary:"+nowJST.Format(time.RFC3339)+"現在", 1)
//fmt.Println(replacedMd)
file, err := os.Create("README.md")
if err != nil {
log.Fatal(err) //ファイルが開けなかったときエラー出力
}
defer file.Close()
file.Write(([]byte)(replacedMd))
}
}