Skip to content

Commit

Permalink
1.optimize Tg bot notify info
Browse files Browse the repository at this point in the history
2.fixed a bug when ParseIn twith  Tg bot chat id
  • Loading branch information
FranzKafkaYu committed Apr 22, 2022
1 parent 1787160 commit b616a5b
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 6 deletions.
5 changes: 3 additions & 2 deletions web/controller/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,15 @@ func (a *IndexController) login(c *gin.Context) {
return
}
user := a.userService.CheckUser(form.Username, form.Password)
timeStr := time.Now().Format("2006-01-02 15:04:05")
if user == nil {
job.NewStatsNotifyJob().UserLoginNotify(form.Username, getRemoteIp(c), timeStr, 0)
logger.Infof("wrong username or password: \"%s\" \"%s\"", form.Username, form.Password)
pureJsonMsg(c, false, "用户名或密码错误")
return
} else {
timeStr := time.Now().Format("2006-01-02 15:04:05")
logger.Infof("%s login success,Ip Address:%s\n", form.Username, getRemoteIp(c))
job.NewStatsNotifyJob().UserLoginNotify(form.Username, getRemoteIp(c), timeStr)
job.NewStatsNotifyJob().UserLoginNotify(form.Username, getRemoteIp(c), timeStr, 1)
}

err = session.SetLoginUser(c, user)
Expand Down
25 changes: 22 additions & 3 deletions web/job/stats_notify_job.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@ import (
"fmt"
"net"
"os"

"time"

"x-ui/logger"
"x-ui/util/common"
"x-ui/web/service"

tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

type LoginStatus byte

const (
LoginSuccess LoginStatus = 1
LoginFail LoginStatus = 0
)

type StatsNotifyJob struct {
enable bool
xrayService service.XrayService
Expand Down Expand Up @@ -96,12 +106,17 @@ func (j *StatsNotifyJob) Run() {
//NOTE:If there no any sessions here,need to notify here
//TODO:分节点推送,自动转化格式
for _, inbound := range inbouds {
info += fmt.Sprintf("节点名称:%s\r\n端口:%d\r\n上行流量↑:%s\r\n下行流量↓:%s\r\n总流量:%s\r\n \r\n", inbound.Remark, inbound.Port, common.FormatTraffic(inbound.Up), common.FormatTraffic(inbound.Down), common.FormatTraffic((inbound.Up + inbound.Down)))
info += fmt.Sprintf("节点名称:%s\r\n端口:%d\r\n上行流量↑:%s\r\n下行流量↓:%s\r\n总流量:%s\r\n", inbound.Remark, inbound.Port, common.FormatTraffic(inbound.Up), common.FormatTraffic(inbound.Down), common.FormatTraffic((inbound.Up + inbound.Down)))
if inbound.ExpiryTime == 0 {
info += fmt.Sprintf("到期时间:无限期\r\n \r\n")
} else {
info += fmt.Sprintf("到期时间:%s\r\n \r\n", time.Unix((inbound.ExpiryTime/1000), 0).Format("2006-01-02 15:04:05"))
}
}
j.SendMsgToTgbot(info)
}

func (j *StatsNotifyJob) UserLoginNotify(username string, ip string, time string) {
func (j *StatsNotifyJob) UserLoginNotify(username string, ip string, time string, status LoginStatus) {
if username == "" || ip == "" || time == "" {
logger.Warning("UserLoginNotify failed,invalid info")
return
Expand All @@ -113,7 +128,11 @@ func (j *StatsNotifyJob) UserLoginNotify(username string, ip string, time string
fmt.Println("get hostname error:", err)
return
}
msg = fmt.Sprintf("面板登录提醒\r\n主机名称:%s\r\n", name)
if status == LoginSuccess {
msg = fmt.Sprintf("面板登录成功提醒\r\n主机名称:%s\r\n", name)
} else if status == LoginFail {
msg = fmt.Sprintf("面板登录失败提醒\r\n主机名称:%s\r\n", name)
}
msg += fmt.Sprintf("时间:%s\r\n", time)
msg += fmt.Sprintf("用户:%s\r\n", username)
msg += fmt.Sprintf("IP:%s\r\n", ip)
Expand Down
2 changes: 1 addition & 1 deletion web/service/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func (s *SettingService) GetAllSetting() (*entity.AllSetting, error) {
fieldV := v.FieldByName(field.Name)
switch t := fieldV.Interface().(type) {
case int:
n, err := strconv.ParseInt(value, 10, 32)
n, err := strconv.ParseInt(value, 10, 64)
if err != nil {
return err
}
Expand Down

0 comments on commit b616a5b

Please sign in to comment.