minor fixes
This commit is contained in:
parent
a391a01c0f
commit
9636237212
@ -10,3 +10,12 @@ sentry_dsn: ~
|
|||||||
log_level: 5
|
log_level: 5
|
||||||
|
|
||||||
debug: false
|
debug: false
|
||||||
|
|
||||||
|
update_interval: 24
|
||||||
|
|
||||||
|
config_aws:
|
||||||
|
access_key_id: ~
|
||||||
|
secret_access_key: ~
|
||||||
|
region: ~
|
||||||
|
bucket: ~
|
||||||
|
content_type: image/jpeg
|
||||||
|
20
database.go
20
database.go
@ -25,29 +25,9 @@ func NewDb(config *TransportConfig) *Orm {
|
|||||||
db.DB().SetMaxOpenConns(config.Database.MaxOpenConnections)
|
db.DB().SetMaxOpenConns(config.Database.MaxOpenConnections)
|
||||||
db.DB().SetMaxIdleConns(config.Database.MaxIdleConnections)
|
db.DB().SetMaxIdleConns(config.Database.MaxIdleConnections)
|
||||||
|
|
||||||
gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
|
|
||||||
return config.Database.TablePrefix + defaultTableName
|
|
||||||
}
|
|
||||||
|
|
||||||
db.SingularTable(true)
|
db.SingularTable(true)
|
||||||
db.LogMode(config.Database.Logging)
|
db.LogMode(config.Database.Logging)
|
||||||
|
|
||||||
setCreatedAt := func(scope *gorm.Scope) {
|
|
||||||
if scope.HasColumn("CreatedAt") {
|
|
||||||
scope.SetColumn("CreatedAt", time.Now())
|
|
||||||
scope.SetColumn("UpdatedAt", time.Now())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setUpdatedAt := func(scope *gorm.Scope) {
|
|
||||||
if scope.HasColumn("UpdatedAt") {
|
|
||||||
scope.SetColumn("UpdatedAt", time.Now())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
db.Callback().Create().Replace("gorm:update_time_stamp", setCreatedAt)
|
|
||||||
db.Callback().Update().Register("update_time_stamp", setUpdatedAt)
|
|
||||||
|
|
||||||
return &Orm{
|
return &Orm{
|
||||||
DB: db,
|
DB: db,
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
create table users
|
create table users
|
||||||
(
|
(
|
||||||
id serial not null
|
id serial not null
|
||||||
constraint user_tg_pkey
|
constraint users_pkey
|
||||||
primary key,
|
primary key,
|
||||||
external_id integer not null,
|
external_id integer not null,
|
||||||
user_photo varchar(255),
|
user_photo_url varchar(255),
|
||||||
user_photo_id varchar(100),
|
user_photo_id varchar(100),
|
||||||
created_at timestamp with time zone,
|
created_at timestamp with time zone,
|
||||||
updated_at timestamp with time zone,
|
updated_at timestamp with time zone,
|
||||||
constraint user_tg_key unique(external_id, user_photo, user_photo_id)
|
constraint users_key unique(external_id, user_photo_url, user_photo_id)
|
||||||
);
|
);
|
||||||
|
@ -32,7 +32,7 @@ type Bot struct {
|
|||||||
type Users struct {
|
type Users struct {
|
||||||
ID int `gorm:"primary_key"`
|
ID int `gorm:"primary_key"`
|
||||||
ExternalID int `gorm:"external_id;not null;unique"`
|
ExternalID int `gorm:"external_id;not null;unique"`
|
||||||
UserPhotoURL string `gorm:"user_photo type:varchar(255);unique"`
|
UserPhotoURL string `gorm:"user_photo_url type:varchar(255);unique"`
|
||||||
UserPhotoID string `gorm:"user_photo_id type:varchar(100);unique"`
|
UserPhotoID string `gorm:"user_photo_id type:varchar(100);unique"`
|
||||||
CreatedAt time.Time
|
CreatedAt time.Time
|
||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
|
@ -123,6 +123,7 @@ func addBotHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Error(err.Error())
|
logger.Error(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
var b Bot
|
var b Bot
|
||||||
|
|
||||||
@ -228,6 +229,7 @@ func activityBotHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Error(err.Error())
|
logger.Error(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
var b Bot
|
var b Bot
|
||||||
|
|
||||||
@ -329,6 +331,7 @@ func saveHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
http.Error(w, localizer.MustLocalize(&i18n.LocalizeConfig{MessageID: "error_save"}), http.StatusInternalServerError)
|
http.Error(w, localizer.MustLocalize(&i18n.LocalizeConfig{MessageID: "error_save"}), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
var c Connection
|
var c Connection
|
||||||
|
|
||||||
@ -374,6 +377,7 @@ func createHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Error(err.Error())
|
logger.Error(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
var c Connection
|
var c Connection
|
||||||
|
|
||||||
@ -512,6 +516,7 @@ func activityHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.Write(jsonString)
|
w.Write(jsonString)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
var rec v5.ActivityCallback
|
var rec v5.ActivityCallback
|
||||||
|
|
||||||
|
29
telegram.go
29
telegram.go
@ -46,7 +46,7 @@ func telegramWebhookHandler(w http.ResponseWriter, r *http.Request, token string
|
|||||||
|
|
||||||
c := getConnectionById(b.ConnectionID)
|
c := getConnectionById(b.ConnectionID)
|
||||||
if !c.Active {
|
if !c.Active {
|
||||||
logger.Error(c.ClientID, " connection deativated")
|
logger.Error(c.ClientID, "connection deativated")
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -60,6 +60,7 @@ func telegramWebhookHandler(w http.ResponseWriter, r *http.Request, token string
|
|||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
if config.Debug {
|
if config.Debug {
|
||||||
logger.Debugf("telegramWebhookHandler: %v", string(bytes))
|
logger.Debugf("telegramWebhookHandler: %v", string(bytes))
|
||||||
@ -77,7 +78,7 @@ func telegramWebhookHandler(w http.ResponseWriter, r *http.Request, token string
|
|||||||
|
|
||||||
if time.Now().After(user.UpdatedAt.Add(time.Hour*time.Duration(config.UpdateInterval))) || user.ID == 0 {
|
if time.Now().After(user.UpdatedAt.Add(time.Hour*time.Duration(config.UpdateInterval))) || user.ID == 0 {
|
||||||
|
|
||||||
fileID, fileURL, err := getFileIDAndURL(b.Token, update.Message.From.ID)
|
fileID, fileURL, err := GetFileIDAndURL(b.Token, update.Message.From.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
raven.CaptureErrorAndWait(err, nil)
|
raven.CaptureErrorAndWait(err, nil)
|
||||||
logger.Error(err)
|
logger.Error(err)
|
||||||
@ -188,6 +189,7 @@ func mgWebhookHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
|
||||||
if config.Debug {
|
if config.Debug {
|
||||||
logger.Debugf("mgWebhookHandler request: %v", string(bytes))
|
logger.Debugf("mgWebhookHandler request: %v", string(bytes))
|
||||||
@ -206,23 +208,16 @@ func mgWebhookHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
cid, _ := strconv.ParseInt(msg.Data.ExternalChatID, 10, 64)
|
cid, _ := strconv.ParseInt(msg.Data.ExternalChatID, 10, 64)
|
||||||
|
|
||||||
b := getBotByChannel(msg.Data.ChannelID)
|
b := getBotByChannel(msg.Data.ChannelID)
|
||||||
if b.ID == 0 {
|
if b.ID == 0 || !b.Active {
|
||||||
logger.Error(msg.Data.ChannelID, "missing")
|
logger.Error(msg.Data.ChannelID, "missing or deactivated")
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
w.Write([]byte("Bot missing"))
|
w.Write([]byte("missing or deactivated"))
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if !b.Active {
|
|
||||||
logger.Error(msg.Data.ChannelID, "deactivated")
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
w.Write([]byte("Bot deactivated"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c := getConnectionById(b.ConnectionID)
|
c := getConnectionById(b.ConnectionID)
|
||||||
if !c.Active {
|
if !c.Active {
|
||||||
logger.Error(c.ClientID, " connection deativated")
|
logger.Error(c.ClientID, "connection deativated")
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
w.Write([]byte("Connection deactivated"))
|
w.Write([]byte("Connection deactivated"))
|
||||||
return
|
return
|
||||||
@ -299,7 +294,8 @@ func mgWebhookHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFileIDAndURL(token string, userID int) (fileID, fileURL string, err error) {
|
//GetFileIDAndURL function
|
||||||
|
func GetFileIDAndURL(token string, userID int) (fileID, fileURL string, err error) {
|
||||||
bot, err := tgbotapi.NewBotAPI(token)
|
bot, err := tgbotapi.NewBotAPI(token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@ -320,15 +316,12 @@ func getFileIDAndURL(token string, userID int) (fileID, fileURL string, err erro
|
|||||||
if len(res.Photos) > 0 {
|
if len(res.Photos) > 0 {
|
||||||
fileID = res.Photos[0][len(res.Photos[0])-1].FileID
|
fileID = res.Photos[0][len(res.Photos[0])-1].FileID
|
||||||
fileURL, err = bot.GetFileDirectURL(fileID)
|
fileURL, err = bot.GetFileDirectURL(fileID)
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//UploadUserAvatar function
|
||||||
func UploadUserAvatar(url string) (picURLs3 string, err error) {
|
func UploadUserAvatar(url string) (picURLs3 string, err error) {
|
||||||
s3Config := &aws.Config{
|
s3Config := &aws.Config{
|
||||||
Credentials: credentials.NewStaticCredentials(
|
Credentials: credentials.NewStaticCredentials(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user