Skip to content
This repository was archived by the owner on Mar 23, 2023. It is now read-only.

Commit f19117c

Browse files
author
kirito
committed
v0.0.5 beta 每日监控汇报
1 parent f10e30b commit f19117c

File tree

18 files changed

+518
-103
lines changed

18 files changed

+518
-103
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ Telegram Bot [@btcinfo_kirito_bot](https://t.me/btcinfo_kirito_bot) 暴躁老哥
3333
* `static_path` - `/static`文件夹的路径,要确保程序运行时可以找到
3434
* `bot_owner` - 机器人拥有者,填telegram用户名
3535
* `whale_apikey` - rss功能需要的apikey,[WhaleAlert](https://docs.whale-alert.io/#introduction),留空为不启用
36+
* 启用后,要用`setup.sql`初始化mysql数据库
37+
* 并填写相关设置
3638
* 其余保持默认
3739
* 执行 `./fkbro.exe -c config.json` ,也可以不用`-c`参数,默认执行目录下`config.json`
3840
* [release](https://github.com/zshorz/fkbro/releases) 里已经为Linux提供了编译好的二进制文件

callback.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,8 @@ func send(msg *tgbotapi.MessageConfig, duration int) {
303303
break
304304
}
305305
}
306-
/// TODO: 调试用,不要每次加载,发行时删除这个
307-
LoadTemplate(util.Config.StaticPath)
306+
//调试用,不要每次加载
307+
if util.Config.Debug {
308+
LoadTemplate(util.Config.StaticPath)
309+
}
308310
}

config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,11 @@
66
"static_path": "static",
77
"debug": false,
88
"bot_owner": "yesiare",
9-
"whale_apikey": ""
9+
"whale_apikey": "",
10+
"alert_min_v": 2000000,
11+
"look_min_v": 1000000,
12+
"db_addr": "127.0.0.1:3306",
13+
"db_user": "root",
14+
"db_passwd": "123456",
15+
"db_name": "fkbro"
1016
}

data/alert.go

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package data
2+
3+
type Alert struct {
4+
ID int64
5+
TimeStamp int64
6+
Symbol string
7+
Hash string
8+
Amount int64
9+
AmountUsd int64
10+
FromAddr string
11+
FromOwner string
12+
TomAddr string
13+
TomOwner string
14+
}
15+
16+
func (al *Alert) Insert() error {
17+
statement := "insert into alert (time_stamp,symbol,hash,amount,amount_usd,from_addr,from_owner,to_addr,to_owner) values(?,?,?,?,?,?,?,?,?)"
18+
stmt, err := DB.Prepare(statement)
19+
if err != nil {
20+
Log.Debug(err)
21+
return err
22+
}
23+
defer stmt.Close()
24+
_, err = stmt.Exec(al.TimeStamp,al.Symbol,al.Hash,al.Amount,al.AmountUsd,al.FromAddr,al.FromOwner,al.TomAddr, al.TomOwner)
25+
if err != nil {
26+
if err != nil {
27+
Log.Debug(err)
28+
return err
29+
}
30+
}
31+
return nil
32+
}
33+
34+
func GetAlertsByTimeStamp(symbol string, timestamp int64) []*Alert {
35+
statement := "select id,time_stamp,symbol,hash,amount,amount_usd,from_addr,from_owner,to_addr,to_owner from alert where symbol=? and time_stamp>=? order by time_stamp"
36+
stmt, err := DB.Prepare(statement)
37+
if err != nil {
38+
Log.Debug(err)
39+
return nil
40+
}
41+
defer stmt.Close()
42+
rows, err := stmt.Query(symbol, timestamp)
43+
if err != nil {
44+
Log.Debug(err)
45+
return nil
46+
}
47+
defer rows.Close()
48+
re := make([]*Alert,0)
49+
for rows.Next() {
50+
al := &Alert{}
51+
err = rows.Scan(&al.ID, &al.TimeStamp, &al.Symbol, &al.Hash, &al.Amount, &al.AmountUsd, &al.FromAddr, &al.FromOwner, &al.TomAddr, &al.TomOwner)
52+
if err != nil {
53+
Log.Debug(err)
54+
return nil
55+
}
56+
re = append(re, al)
57+
}
58+
return re
59+
}
60+
61+
func DeleteAlert(timestamp int64) {
62+
statement := "delete from alert where time_stamp < ?"
63+
stmt, err := DB.Prepare(statement)
64+
if err != nil {
65+
Log.Debug(err)
66+
return
67+
}
68+
defer stmt.Close()
69+
res, err := stmt.Exec(timestamp)
70+
if err != nil {
71+
Log.Debug(err)
72+
return
73+
}
74+
rows, _ := res.RowsAffected()
75+
Log.Debug("delete success, rows affect", rows)
76+
}
77+

data/data.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package data
2+
3+
import (
4+
"database/sql"
5+
"fmt"
6+
_ "github.com/go-sql-driver/mysql"
7+
"github.com/zshorz/ezlog"
8+
"os"
9+
)
10+
11+
var DB *sql.DB
12+
var Log *ezlog.EzLogger
13+
14+
func init() {
15+
Log = ezlog.New(os.Stdout, "", ezlog.BitDefault, ezlog.LogAll)
16+
}
17+
18+
func Setup(dbaddr, dbname, dbuser, dbpasswd string) {
19+
str := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", dbuser, dbpasswd, dbaddr, dbname)
20+
var err error
21+
DB, err = sql.Open("mysql", str)
22+
if err != nil {
23+
Log.Fatal(err)
24+
}
25+
26+
_, err = DB.Query("select * from alert where id = 0")
27+
if err != nil {
28+
Log.Error(err)
29+
Log.Fatal("please check database")
30+
}
31+
32+
Log.Info("sql set up success")
33+
}
34+

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/zshorz/fkbro
33
go 1.13
44

55
require (
6+
github.com/go-sql-driver/mysql v1.5.0
67
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible
78
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
89
github.com/zshorz/ezlog v0.1.3

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
2+
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
13
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU=
24
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM=
35
github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM=

0 commit comments

Comments
 (0)