Update project from local

This commit is contained in:
2026-07-06 09:36:50 +07:00
parent 0b1cd60738
commit d3c395e45f
2117 changed files with 5151241 additions and 1710497 deletions

View File

@@ -1,53 +1,53 @@
package config
import (
"log"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
"go.uber.org/zap"
)
type Reader interface {
Get(key string) string
}
type viperConfigReader struct {
viper *viper.Viper
}
var Data *viperConfigReader
func (v viperConfigReader) Get(key string) string {
return v.viper.GetString(key)
}
func (v viperConfigReader) GetInt(key string) int {
return v.viper.GetInt(key)
}
func Load() {
v := viper.New()
v.AddConfigPath(".")
v.SetConfigName("config")
v.SetConfigType("yaml")
v.AutomaticEnv()
err := v.ReadInConfig()
if err != nil {
return
}
Data = &viperConfigReader{
viper: v,
}
v.WatchConfig()
v.OnConfigChange(func(e fsnotify.Event) {
log.Println("config file changed", e.Name)
logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("Config file change",
zap.String("name", e.Name),
)
})
return
}
package config
import (
"log"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
"go.uber.org/zap"
)
type Reader interface {
Get(key string) string
}
type viperConfigReader struct {
viper *viper.Viper
}
var Data *viperConfigReader
func (v viperConfigReader) Get(key string) string {
return v.viper.GetString(key)
}
func (v viperConfigReader) GetInt(key string) int {
return v.viper.GetInt(key)
}
func Load() {
v := viper.New()
v.AddConfigPath(".")
v.SetConfigName("config")
v.SetConfigType("yaml")
v.AutomaticEnv()
err := v.ReadInConfig()
if err != nil {
return
}
Data = &viperConfigReader{
viper: v,
}
v.WatchConfig()
v.OnConfigChange(func(e fsnotify.Event) {
log.Println("config file changed", e.Name)
logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("Config file change",
zap.String("name", e.Name),
)
})
return
}

View File

@@ -1,161 +1,161 @@
package database
import (
"bytes"
"database/sql"
"fmt"
"log"
"strings"
"cpone/package/config"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
var Handle *sql.DB
var Handlex *sqlx.DB
// log
var HandleLog *sql.DB
var HandlexLog *sqlx.DB
func InitDB() {
println(config.Data.Get("DBhost"))
if config.Data.Get("DBhost") == "" {
println("sqlite")
handle, err := sql.Open("sqlite", config.Data.Get("DBname"))
if err != nil {
// log.Fatalf("🔥 failed to connect to the database: %s", err.Error())
log.Panic(err)
}
Handle = handle
// log handle
handlelog, err := sql.Open("sqlite", config.Data.Get("DBnamelog"))
if err != nil {
// log.Fatalf("🔥 failed to connect to the database: %s", err.Error())
log.Panic(err)
}
HandleLog = handlelog
// log handle
db, err := sqlx.Open("sqlite", config.Data.Get("DBname"))
if err != nil {
log.Fatal(err)
}
Handlex = db
// log
dblog, err := sqlx.Open("sqlite", config.Data.Get("DBnamelog"))
if err != nil {
log.Fatal(err)
}
HandlexLog = dblog
// log
} else {
println("mysql")
dsn := config.Data.Get("DBuser") + ":" + config.Data.Get("DBpass") + "@tcp(" + config.Data.Get("DBhost") + ":" + config.Data.Get("DBport") + ")/" + config.Data.Get("DBname")
println(dsn)
handle, err := sql.Open("mysql", dsn)
if err != nil {
log.Panic(err)
}
if err = handle.Ping(); err != nil {
log.Panic(err)
}
Handle = handle
// log
dsnlog := config.Data.Get("DBuser") + ":" + config.Data.Get("DBpass") + "@tcp(" + config.Data.Get("DBhost") + ":" + config.Data.Get("DBport") + ")/" + config.Data.Get("DBnamelog")
println(dsnlog)
handlelog, err := sql.Open("mysql", dsnlog)
if err != nil {
log.Panic(err)
}
if err = handlelog.Ping(); err != nil {
log.Panic(err)
}
HandleLog = handlelog
// log
// sqlx
db, err := sqlx.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
Handlex = db
// log
dblog, err := sqlx.Open("mysql", dsnlog)
if err != nil {
log.Fatal(err)
}
HandlexLog = dblog
// log
}
log.Println("🚀 Connected Successfully to the Database")
}
func LogSQL(query string, args ...interface{}) {
var buffer bytes.Buffer
nArgs := len(args)
// Break the string by question marks, iterate over its parts and for each
// question mark - append an argument and format the argument according to
// it's type, taking into consideration NULL values and quoting strings.
for i, part := range strings.Split(query, "?") {
buffer.WriteString(part)
if i < nArgs {
switch a := args[i].(type) {
case int:
buffer.WriteString(fmt.Sprintf("%d", a))
case int64:
buffer.WriteString(fmt.Sprintf("%d", a))
case bool:
buffer.WriteString(fmt.Sprintf("%t", a))
case sql.NullBool:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%t", a.Bool))
} else {
buffer.WriteString("NULL")
}
case sql.NullInt64:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%d", a.Int64))
} else {
buffer.WriteString("NULL")
}
case sql.NullString:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%q", a.String))
} else {
buffer.WriteString("NULL")
}
case sql.NullFloat64:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%f", a.Float64))
} else {
buffer.WriteString("NULL")
}
default:
buffer.WriteString(fmt.Sprintf("%q", a))
}
}
}
log.Print(buffer.String())
}
package database
import (
"bytes"
"database/sql"
"fmt"
"log"
"strings"
"cpone/package/config"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
var Handle *sql.DB
var Handlex *sqlx.DB
// log
var HandleLog *sql.DB
var HandlexLog *sqlx.DB
func InitDB() {
println(config.Data.Get("DBhost"))
if config.Data.Get("DBhost") == "" {
println("sqlite")
handle, err := sql.Open("sqlite", config.Data.Get("DBname"))
if err != nil {
// log.Fatalf("🔥 failed to connect to the database: %s", err.Error())
log.Panic(err)
}
Handle = handle
// log handle
handlelog, err := sql.Open("sqlite", config.Data.Get("DBnamelog"))
if err != nil {
// log.Fatalf("🔥 failed to connect to the database: %s", err.Error())
log.Panic(err)
}
HandleLog = handlelog
// log handle
db, err := sqlx.Open("sqlite", config.Data.Get("DBname"))
if err != nil {
log.Fatal(err)
}
Handlex = db
// log
dblog, err := sqlx.Open("sqlite", config.Data.Get("DBnamelog"))
if err != nil {
log.Fatal(err)
}
HandlexLog = dblog
// log
} else {
println("mysql")
dsn := config.Data.Get("DBuser") + ":" + config.Data.Get("DBpass") + "@tcp(" + config.Data.Get("DBhost") + ":" + config.Data.Get("DBport") + ")/" + config.Data.Get("DBname")
println(dsn)
handle, err := sql.Open("mysql", dsn)
if err != nil {
log.Panic(err)
}
if err = handle.Ping(); err != nil {
log.Panic(err)
}
Handle = handle
// log
dsnlog := config.Data.Get("DBuser") + ":" + config.Data.Get("DBpass") + "@tcp(" + config.Data.Get("DBhost") + ":" + config.Data.Get("DBport") + ")/" + config.Data.Get("DBnamelog")
println(dsnlog)
handlelog, err := sql.Open("mysql", dsnlog)
if err != nil {
log.Panic(err)
}
if err = handlelog.Ping(); err != nil {
log.Panic(err)
}
HandleLog = handlelog
// log
// sqlx
db, err := sqlx.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
Handlex = db
// log
dblog, err := sqlx.Open("mysql", dsnlog)
if err != nil {
log.Fatal(err)
}
HandlexLog = dblog
// log
}
log.Println("🚀 Connected Successfully to the Database")
}
func LogSQL(query string, args ...interface{}) {
var buffer bytes.Buffer
nArgs := len(args)
// Break the string by question marks, iterate over its parts and for each
// question mark - append an argument and format the argument according to
// it's type, taking into consideration NULL values and quoting strings.
for i, part := range strings.Split(query, "?") {
buffer.WriteString(part)
if i < nArgs {
switch a := args[i].(type) {
case int:
buffer.WriteString(fmt.Sprintf("%d", a))
case int64:
buffer.WriteString(fmt.Sprintf("%d", a))
case bool:
buffer.WriteString(fmt.Sprintf("%t", a))
case sql.NullBool:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%t", a.Bool))
} else {
buffer.WriteString("NULL")
}
case sql.NullInt64:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%d", a.Int64))
} else {
buffer.WriteString("NULL")
}
case sql.NullString:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%q", a.String))
} else {
buffer.WriteString("NULL")
}
case sql.NullFloat64:
if a.Valid {
buffer.WriteString(fmt.Sprintf("%f", a.Float64))
} else {
buffer.WriteString("NULL")
}
default:
buffer.WriteString(fmt.Sprintf("%q", a))
}
}
}
log.Print(buffer.String())
}