Add Log
This commit is contained in:
parent
92f18f29af
commit
077b7533dc
50
control.go
50
control.go
@ -5,6 +5,9 @@ import (
|
|||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
tb "gopkg.in/tucnak/telebot.v2"
|
tb "gopkg.in/tucnak/telebot.v2"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -14,19 +17,19 @@ var SignOk map[int64]int
|
|||||||
|
|
||||||
//If Successfully return "",else return error information
|
//If Successfully return "",else return error information
|
||||||
func BindUser(m *tb.Message, cid, cse string) string {
|
func BindUser(m *tb.Message, cid, cse string) string {
|
||||||
fmt.Printf("%d Begin Bind\n", m.Chat.ID)
|
logger.Printf("%d Begin Bind\n", m.Chat.ID)
|
||||||
tmp := strings.Split(m.Text, " ")
|
tmp := strings.Split(m.Text, " ")
|
||||||
if len(tmp) != 2 {
|
if len(tmp) != 2 {
|
||||||
fmt.Printf("%d Bind error:Wrong Bind Format\n", m.Chat.ID)
|
logger.Printf("%d Bind error:Wrong Bind Format\n", m.Chat.ID)
|
||||||
return "授权格式错误"
|
return "授权格式错误"
|
||||||
}
|
}
|
||||||
fmt.Println("alias: " + tmp[1])
|
logger.Println("alias: " + tmp[1])
|
||||||
alias := tmp[1]
|
alias := tmp[1]
|
||||||
code := GetURLValue(tmp[0], "code")
|
code := GetURLValue(tmp[0], "code")
|
||||||
//fmt.Println(code)
|
//fmt.Println(code)
|
||||||
access, refresh := MSFirGetToken(code, cid, cse)
|
access, refresh := MSFirGetToken(code, cid, cse)
|
||||||
if refresh == "" {
|
if refresh == "" {
|
||||||
fmt.Printf("%d Bind error:GetRefreshToken\n", m.Chat.ID)
|
logger.Printf("%d Bind error:GetRefreshToken\n", m.Chat.ID)
|
||||||
return "获取RefreshToken失败"
|
return "获取RefreshToken失败"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +38,7 @@ func BindUser(m *tb.Message, cid, cse string) string {
|
|||||||
info := MSGetUserInfo(access)
|
info := MSGetUserInfo(access)
|
||||||
//fmt.Printf("TGID:%d Refresh Token: %s\n", m.Chat.ID, refresh)
|
//fmt.Printf("TGID:%d Refresh Token: %s\n", m.Chat.ID, refresh)
|
||||||
if info == "" {
|
if info == "" {
|
||||||
fmt.Printf("%d Bind error:Getinfo\n", m.Chat.ID)
|
logger.Printf("%d Bind error:Getinfo\n", m.Chat.ID)
|
||||||
return "获取用户信息错误"
|
return "获取用户信息错误"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,23 +48,23 @@ func BindUser(m *tb.Message, cid, cse string) string {
|
|||||||
//TG的Data传递最高64bytes,一些msid超过了报错BUTTON_DATA_INVALID (0),采取md5
|
//TG的Data传递最高64bytes,一些msid超过了报错BUTTON_DATA_INVALID (0),采取md5
|
||||||
u.msId = Get16MD5Encode(gjson.Get(info, "id").String())
|
u.msId = Get16MD5Encode(gjson.Get(info, "id").String())
|
||||||
u.uptime = time.Now().Unix()
|
u.uptime = time.Now().Unix()
|
||||||
fmt.Println(u.uptime)
|
logger.Println(u.uptime)
|
||||||
u.alias = alias
|
u.alias = alias
|
||||||
u.clientId = cid
|
u.clientId = cid
|
||||||
u.clientSecret = cse
|
u.clientSecret = cse
|
||||||
u.other = ""
|
u.other = ""
|
||||||
//MS User Is Exist
|
//MS User Is Exist
|
||||||
if MSAppIsExist(u.tgId, u.clientId) {
|
if MSAppIsExist(u.tgId, u.clientId) {
|
||||||
fmt.Printf("%d Bind error:MSUserHasExisted\n", m.Chat.ID)
|
logger.Printf("%d Bind error:MSUserHasExisted\n", m.Chat.ID)
|
||||||
return "该应用已经绑定过了,无需重复绑定"
|
return "该应用已经绑定过了,无需重复绑定"
|
||||||
}
|
}
|
||||||
//MS information has gotten
|
//MS information has gotten
|
||||||
bot.Send(m.Chat, "MS_ID(MD5): "+u.msId+"\nuserPrincipalName: "+gjson.Get(info, "userPrincipalName").String()+"\ndisplayName: "+gjson.Get(info, "displayName").String()+"\n")
|
bot.Send(m.Chat, "MS_ID(MD5): "+u.msId+"\nuserPrincipalName: "+gjson.Get(info, "userPrincipalName").String()+"\ndisplayName: "+gjson.Get(info, "displayName").String()+"\n")
|
||||||
if ok, err := AddData(db, u); !ok {
|
if ok, err := AddData(db, u); !ok {
|
||||||
fmt.Printf("%d Bind error: %s\n", m.Chat.ID, err)
|
logger.Printf("%d Bind error: %s\n", m.Chat.ID, err)
|
||||||
return "数据库写入错误"
|
return "数据库写入错误"
|
||||||
}
|
}
|
||||||
fmt.Printf("%d Bind Successfully!\n", m.Chat.ID)
|
logger.Printf("%d Bind Successfully!\n", m.Chat.ID)
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,14 +112,14 @@ func SignTask() {
|
|||||||
se := u.msId + " ( @" + chat.Username + " )"
|
se := u.msId + " ( @" + chat.Username + " )"
|
||||||
if access == "" {
|
if access == "" {
|
||||||
e = "Sign ERROR:GetAccessToken"
|
e = "Sign ERROR:GetAccessToken"
|
||||||
fmt.Println(u.msId + e)
|
logger.Println(u.msId + e)
|
||||||
bot.Send(chat, pre+e, tmpBtn)
|
bot.Send(chat, pre+e, tmpBtn)
|
||||||
SignErr = append(SignErr, se)
|
SignErr = append(SignErr, se)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !OutLookGetMails(access) {
|
if !OutLookGetMails(access) {
|
||||||
e = "Sign ERROR:ReadMails"
|
e = "Sign ERROR:ReadMails"
|
||||||
fmt.Println(u.msId + " Sign ERROR:ReadMails")
|
logger.Println(u.msId + " Sign ERROR:ReadMails")
|
||||||
bot.Send(chat, pre+e, tmpBtn)
|
bot.Send(chat, pre+e, tmpBtn)
|
||||||
SignErr = append(SignErr, se)
|
SignErr = append(SignErr, se)
|
||||||
continue
|
continue
|
||||||
@ -124,7 +127,7 @@ func SignTask() {
|
|||||||
u.uptime = time.Now().Unix()
|
u.uptime = time.Now().Unix()
|
||||||
if ok, err := UpdateData(db, u); !ok {
|
if ok, err := UpdateData(db, u); !ok {
|
||||||
e = "Update Data ERROR:"
|
e = "Update Data ERROR:"
|
||||||
fmt.Printf("%s Update Data ERROR: %s\n", u.msId, err)
|
logger.Printf("%s Update Data ERROR: %s\n", u.msId, err)
|
||||||
bot.Send(chat, pre+e, tmpBtn)
|
bot.Send(chat, pre+e, tmpBtn)
|
||||||
SignErr = append(SignErr, se)
|
SignErr = append(SignErr, se)
|
||||||
continue
|
continue
|
||||||
@ -141,11 +144,14 @@ func SignTask() {
|
|||||||
if !isSend[u.tgId] {
|
if !isSend[u.tgId] {
|
||||||
chat, err := bot.ChatByID(strconv.FormatInt(u.tgId, 10))
|
chat, err := bot.ChatByID(strconv.FormatInt(u.tgId, 10))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Send Result ERROR")
|
logger.Println("Send Result ERROR", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
//静默发送,过多消息很烦
|
//静默发送,过多消息很烦
|
||||||
bot.Send(chat, "任务反馈\n时间: "+time.Now().Format("2006-01-02 15:04:05")+"\n结果: "+strconv.Itoa(SignOk[u.tgId])+"/"+strconv.Itoa(GetBindNum(u.tgId)), &tb.SendOptions{DisableNotification: true})
|
_, err = bot.Send(chat, "任务反馈\n时间: "+time.Now().Format("2006-01-02 15:04:05")+"\n结果: "+strconv.Itoa(SignOk[u.tgId])+"/"+strconv.Itoa(GetBindNum(u.tgId)), &tb.SendOptions{DisableNotification: true})
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
isSend[u.tgId] = true
|
isSend[u.tgId] = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,3 +175,19 @@ func GetAdmin() []int64 {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
func InitLogger() {
|
||||||
|
if !PathExists("./log/") {
|
||||||
|
os.Mkdir("./log/", 0773)
|
||||||
|
}
|
||||||
|
|
||||||
|
path := "./log/" + time.Now().Format("2006-01-02") + ".log"
|
||||||
|
f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0773)
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
|
writers := []io.Writer{
|
||||||
|
f,
|
||||||
|
os.Stdout}
|
||||||
|
faoWriter := io.MultiWriter(writers...)
|
||||||
|
logger = log.New(faoWriter, "【E5Sub】", log.Ldate|log.Ltime|log.Lshortfile)
|
||||||
|
}
|
||||||
|
|||||||
13
handle.go
13
handle.go
@ -1,7 +1,6 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"github.com/fsnotify/fsnotify"
|
"github.com/fsnotify/fsnotify"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
tb "gopkg.in/tucnak/telebot.v2"
|
tb "gopkg.in/tucnak/telebot.v2"
|
||||||
@ -85,7 +84,7 @@ func bMyInlineBtn(c *tb.Callback) {
|
|||||||
bot.Respond(c)
|
bot.Respond(c)
|
||||||
}
|
}
|
||||||
func bBind1(m *tb.Message) {
|
func bBind1(m *tb.Message) {
|
||||||
fmt.Println("ReApp: " + strconv.FormatInt(m.Chat.ID, 10))
|
logger.Println("ReApp: " + strconv.FormatInt(m.Chat.ID, 10))
|
||||||
bot.Send(m.Chat, "应用注册: [点击直达]("+MSGetReAppUrl()+")", tb.ModeMarkdown)
|
bot.Send(m.Chat, "应用注册: [点击直达]("+MSGetReAppUrl()+")", tb.ModeMarkdown)
|
||||||
_, err := bot.Send(m.Chat, "请回复client_id+空格+client_secret", &tb.ReplyMarkup{ForceReply: true})
|
_, err := bot.Send(m.Chat, "请回复client_id+空格+client_secret", &tb.ReplyMarkup{ForceReply: true})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -95,14 +94,14 @@ func bBind1(m *tb.Message) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
func bBind2(m *tb.Message) {
|
func bBind2(m *tb.Message) {
|
||||||
fmt.Println("Auth: " + strconv.FormatInt(m.Chat.ID, 10))
|
logger.Println("Auth: " + strconv.FormatInt(m.Chat.ID, 10))
|
||||||
tmp := strings.Split(m.Text, " ")
|
tmp := strings.Split(m.Text, " ")
|
||||||
if len(tmp) != 2 {
|
if len(tmp) != 2 {
|
||||||
fmt.Printf("%d Bind error:Wrong Bind Format\n", m.Chat.ID)
|
logger.Printf("%d Bind error:Wrong Bind Format\n", m.Chat.ID)
|
||||||
bot.Send(m.Chat, "错误的格式")
|
bot.Send(m.Chat, "错误的格式")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fmt.Println("client_id: " + tmp[0] + " client_secret: " + tmp[1])
|
logger.Println("client_id: " + tmp[0] + " client_secret: " + tmp[1])
|
||||||
cid := tmp[0]
|
cid := tmp[0]
|
||||||
cse := tmp[1]
|
cse := tmp[1]
|
||||||
bot.Send(m.Chat, "授权账户: [点击直达]("+MSGetAuthUrl(cid)+")", tb.ModeMarkdown)
|
bot.Send(m.Chat, "授权账户: [点击直达]("+MSGetAuthUrl(cid)+")", tb.ModeMarkdown)
|
||||||
@ -131,11 +130,11 @@ func bUnBindInlineBtn(c *tb.Callback) {
|
|||||||
r := QueryDataByMS(db, c.Data)
|
r := QueryDataByMS(db, c.Data)
|
||||||
u := r[0]
|
u := r[0]
|
||||||
if ok, _ := DelData(db, u.msId); !ok {
|
if ok, _ := DelData(db, u.msId); !ok {
|
||||||
fmt.Println(u.msId + " UnBind ERROR")
|
logger.Println(u.msId + " UnBind ERROR")
|
||||||
bot.Send(c.Message.Chat, "解绑失败!")
|
bot.Send(c.Message.Chat, "解绑失败!")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fmt.Println(u.msId + " UnBind Success")
|
logger.Println(u.msId + " UnBind Success")
|
||||||
bot.Send(c.Message.Chat, "解绑成功!")
|
bot.Send(c.Message.Chat, "解绑成功!")
|
||||||
bot.Respond(c)
|
bot.Respond(c)
|
||||||
}
|
}
|
||||||
|
|||||||
97
main.go
97
main.go
@ -7,8 +7,10 @@ import (
|
|||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"golang.org/x/net/proxy"
|
"golang.org/x/net/proxy"
|
||||||
tb "gopkg.in/tucnak/telebot.v2"
|
tb "gopkg.in/tucnak/telebot.v2"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -17,6 +19,7 @@ var (
|
|||||||
Socks5 string
|
Socks5 string
|
||||||
bot *tb.Bot
|
bot *tb.Bot
|
||||||
db *sql.DB
|
db *sql.DB
|
||||||
|
logger *log.Logger
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -31,18 +34,67 @@ const (
|
|||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
BotStart()
|
||||||
|
}
|
||||||
|
func BotStart() {
|
||||||
|
MakeHandle()
|
||||||
|
TaskLaunch()
|
||||||
|
logger.Println("Bot Start")
|
||||||
|
fmt.Println("------------")
|
||||||
|
bot.Start()
|
||||||
|
}
|
||||||
|
func MakeHandle() {
|
||||||
|
logger.Println("Make Handle……")
|
||||||
|
bot.Handle("/start", bStart)
|
||||||
|
bot.Handle("/my", bMy)
|
||||||
|
bot.Handle("/task", bTask)
|
||||||
|
bot.Handle("/bind", bBind1)
|
||||||
|
bot.Handle("/unbind", bUnBind)
|
||||||
|
bot.Handle("/help", bHelp)
|
||||||
|
bot.Handle(tb.OnText, bOnText)
|
||||||
|
}
|
||||||
|
func TaskLaunch() {
|
||||||
|
task := cron.New()
|
||||||
|
//每三小时执行一次
|
||||||
|
task.AddFunc(viper.GetString("cron"), SignTask)
|
||||||
|
//log分为每天
|
||||||
|
task.AddFunc(" 0 0 * * *", InitLogger)
|
||||||
|
// */1 * * * * 1 */3 * * *
|
||||||
|
logger.Println("Cron Task Start……")
|
||||||
|
task.Start()
|
||||||
|
}
|
||||||
func init() {
|
func init() {
|
||||||
fmt.Println(logo)
|
fmt.Println(logo)
|
||||||
|
InitLogger()
|
||||||
//read config
|
//read config
|
||||||
fmt.Println("Read Config……")
|
logger.Println("Read Config……")
|
||||||
viper.SetConfigName("config")
|
viper.SetConfigName("config")
|
||||||
viper.AddConfigPath(".")
|
viper.AddConfigPath(".")
|
||||||
err := viper.ReadInConfig()
|
err := viper.ReadInConfig()
|
||||||
CheckErr(err)
|
if err != nil {
|
||||||
|
logger.Fatal(err)
|
||||||
|
}
|
||||||
|
host := viper.GetString("mysql.host")
|
||||||
|
user := viper.GetString("mysql.user")
|
||||||
|
port := viper.GetString("mysql.port")
|
||||||
|
pwd := viper.GetString("mysql.password")
|
||||||
|
database := viper.GetString("mysql.database")
|
||||||
|
path := strings.Join([]string{user, ":", pwd, "@tcp(", host, ":", port, ")/", database, "?charset=utf8"}, "")
|
||||||
|
//fmt.Println(path)
|
||||||
|
db, err = sql.Open(dbDriverName, path)
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatal(err)
|
||||||
|
}
|
||||||
|
logger.Println("Connect MySQL Success!")
|
||||||
|
if ok, err := CreateTB(db); !ok {
|
||||||
|
logger.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
BotToken = viper.GetString("bot_token")
|
BotToken = viper.GetString("bot_token")
|
||||||
Socks5 = viper.GetString("socks5")
|
Socks5 = viper.GetString("socks5")
|
||||||
//set bot
|
//set bot
|
||||||
fmt.Println("Bot Settings……")
|
logger.Println("Bot Settings……")
|
||||||
Poller := &tb.LongPoller{Timeout: 15 * time.Second}
|
Poller := &tb.LongPoller{Timeout: 15 * time.Second}
|
||||||
spamProtected := tb.NewMiddlewarePoller(Poller, func(upd *tb.Update) bool {
|
spamProtected := tb.NewMiddlewarePoller(Poller, func(upd *tb.Update) bool {
|
||||||
if upd.Message == nil {
|
if upd.Message == nil {
|
||||||
@ -59,9 +111,11 @@ func init() {
|
|||||||
}
|
}
|
||||||
//set socks5
|
//set socks5
|
||||||
if Socks5 != "" {
|
if Socks5 != "" {
|
||||||
fmt.Println("Proxy:" + Socks5)
|
logger.Println("Proxy:" + Socks5)
|
||||||
dialer, err := proxy.SOCKS5("tcp", Socks5, nil, proxy.Direct)
|
dialer, err := proxy.SOCKS5("tcp", Socks5, nil, proxy.Direct)
|
||||||
CheckErr(err)
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
httpTransport := &http.Transport{}
|
httpTransport := &http.Transport{}
|
||||||
httpClient := &http.Client{Transport: httpTransport}
|
httpClient := &http.Client{Transport: httpTransport}
|
||||||
httpTransport.Dial = dialer.Dial
|
httpTransport.Dial = dialer.Dial
|
||||||
@ -70,36 +124,7 @@ func init() {
|
|||||||
//create bot
|
//create bot
|
||||||
bot, err = tb.NewBot(botsettings)
|
bot, err = tb.NewBot(botsettings)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Create Bot ERROR!")
|
logger.Fatal(err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
fmt.Println("Bot: " + strconv.Itoa(bot.Me.ID) + " " + bot.Me.Username)
|
logger.Println("Bot: " + strconv.Itoa(bot.Me.ID) + " " + bot.Me.Username)
|
||||||
}
|
|
||||||
func main() {
|
|
||||||
BotStart()
|
|
||||||
}
|
|
||||||
func BotStart() {
|
|
||||||
MakeHandle()
|
|
||||||
TaskLaunch()
|
|
||||||
fmt.Println("Bot Start")
|
|
||||||
fmt.Println("------------")
|
|
||||||
bot.Start()
|
|
||||||
}
|
|
||||||
func MakeHandle() {
|
|
||||||
fmt.Println("Make Handle……")
|
|
||||||
bot.Handle("/start", bStart)
|
|
||||||
bot.Handle("/my", bMy)
|
|
||||||
bot.Handle("/task", bTask)
|
|
||||||
bot.Handle("/bind", bBind1)
|
|
||||||
bot.Handle("/unbind", bUnBind)
|
|
||||||
bot.Handle("/help", bHelp)
|
|
||||||
bot.Handle(tb.OnText, bOnText)
|
|
||||||
}
|
|
||||||
func TaskLaunch() {
|
|
||||||
task := cron.New()
|
|
||||||
//每三小时执行一次
|
|
||||||
task.AddFunc(viper.GetString("cron"), SignTask)
|
|
||||||
// */1 * * * * 1 */3 * * *
|
|
||||||
fmt.Println("Cron Task Start……")
|
|
||||||
task.Start()
|
|
||||||
}
|
}
|
||||||
|
|||||||
25
mysql.go
25
mysql.go
@ -2,10 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/spf13/viper"
|
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type MSData struct {
|
type MSData struct {
|
||||||
@ -19,28 +16,6 @@ type MSData struct {
|
|||||||
other string
|
other string
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
|
||||||
var err error
|
|
||||||
viper.SetConfigName("config")
|
|
||||||
viper.AddConfigPath(".")
|
|
||||||
err = viper.ReadInConfig()
|
|
||||||
CheckErr(err)
|
|
||||||
host := viper.GetString("mysql.host")
|
|
||||||
user := viper.GetString("mysql.user")
|
|
||||||
port := viper.GetString("mysql.port")
|
|
||||||
pwd := viper.GetString("mysql.password")
|
|
||||||
database := viper.GetString("mysql.database")
|
|
||||||
path := strings.Join([]string{user, ":", pwd, "@tcp(", host, ":", port, ")/", database, "?charset=utf8"}, "")
|
|
||||||
//fmt.Println(path)
|
|
||||||
db, err = sql.Open(dbDriverName, path)
|
|
||||||
if !CheckErr(err) {
|
|
||||||
fmt.Println("Connect MySQL ERROR:")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println("Connect MySQL Success!")
|
|
||||||
CreateTB(db)
|
|
||||||
}
|
|
||||||
|
|
||||||
//update data by msId
|
//update data by msId
|
||||||
func UpdateData(db *sql.DB, u MSData) (bool, error) {
|
func UpdateData(db *sql.DB, u MSData) (bool, error) {
|
||||||
sqlString := `UPDATE users set tg_id=?,refresh_token=?,uptime=?,alias=?,client_id=?,client_secret=?,other=? where ms_id=?`
|
sqlString := `UPDATE users set tg_id=?,refresh_token=?,uptime=?,alias=?,client_id=?,client_secret=?,other=? where ms_id=?`
|
||||||
|
|||||||
21
outlook.go
21
outlook.go
@ -1,7 +1,6 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -39,11 +38,17 @@ func MSFirGetToken(code, cid, cse string) (access string, refresh string) {
|
|||||||
r.Form.Add("redirect_uri", redirectUri)
|
r.Form.Add("redirect_uri", redirectUri)
|
||||||
body := strings.NewReader(r.Form.Encode())
|
body := strings.NewReader(r.Form.Encode())
|
||||||
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
|
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
content, err := ioutil.ReadAll(resp.Body)
|
content, err := ioutil.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Fatal error ")
|
logger.Println(err)
|
||||||
}
|
}
|
||||||
if gjson.Get(string(content), "token_type").String() == "Bearer" {
|
if gjson.Get(string(content), "token_type").String() == "Bearer" {
|
||||||
return gjson.Get(string(content), "access_token").String(), gjson.Get(string(content), "refresh_token").String()
|
return gjson.Get(string(content), "access_token").String(), gjson.Get(string(content), "refresh_token").String()
|
||||||
@ -67,11 +72,17 @@ func MSGetToken(refreshtoken, cid, cse string) (access string) {
|
|||||||
body := strings.NewReader(r.Form.Encode())
|
body := strings.NewReader(r.Form.Encode())
|
||||||
//fmt.Println(body)
|
//fmt.Println(body)
|
||||||
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
|
req, err := http.NewRequest("POST", MsApiUrl+"/common/oauth2/v2.0/token", body)
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
logger.Println(err)
|
||||||
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
content, err := ioutil.ReadAll(resp.Body)
|
content, err := ioutil.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Fatal error ")
|
logger.Println(err)
|
||||||
}
|
}
|
||||||
//fmt.Println(string(content))
|
//fmt.Println(string(content))
|
||||||
//fmt.Println(gjson.Get(string(content), "access_token").String())
|
//fmt.Println(gjson.Get(string(content), "access_token").String())
|
||||||
@ -88,7 +99,7 @@ func MSGetUserInfo(accesstoken string) (json string) {
|
|||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me", nil)
|
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("MSGetUserInfo ERROR ")
|
logger.Println(err)
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
req.Header.Set("Authorization", accesstoken)
|
req.Header.Set("Authorization", accesstoken)
|
||||||
@ -106,7 +117,7 @@ func OutLookGetMails(accesstoken string) bool {
|
|||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me/messages", nil)
|
req, err := http.NewRequest("GET", MsGraUrl+"/v1.0/me/messages", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("MSGetMils ERROR ")
|
logger.Println(err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
req.Header.Set("Authorization", accesstoken)
|
req.Header.Set("Authorization", accesstoken)
|
||||||
|
|||||||
16
util.go
16
util.go
@ -20,15 +20,15 @@ func CheckErr(err error) bool {
|
|||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
func FileExist(Path string) bool {
|
func PathExists(path string) bool {
|
||||||
if _, err := os.Stat(Path); err != nil {
|
_, err := os.Stat(path)
|
||||||
if os.IsNotExist(err) {
|
if err == nil {
|
||||||
return false
|
return true
|
||||||
} else {
|
|
||||||
CheckErr(err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true
|
if os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
func GetBetweenStr(str, start, end string) string {
|
func GetBetweenStr(str, start, end string) string {
|
||||||
n := strings.Index(str, start)
|
n := strings.Index(str, start)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user