88 lines
1.7 KiB
Go
88 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
pgsql "github.com/fergusstrange/embedded-postgres"
|
|
"github.com/jmoiron/sqlx"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
var accountsSchema = `create table accounts
|
|
(
|
|
id serial
|
|
constraint accounts_pkey
|
|
primary key,
|
|
username varchar(13) not null,
|
|
password varchar(18) not null,
|
|
creation date not null,
|
|
last_login date not null,
|
|
last_ip varchar not null,
|
|
ban integer not null,
|
|
admin integer not null,
|
|
gender smallint default 0 not null
|
|
);`
|
|
|
|
|
|
var authlog *SecurityLog
|
|
|
|
func init() {
|
|
var err error
|
|
postgresInit()
|
|
if authlog, err = GetUserAuths("./data/authlog"); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func postgresInit() {
|
|
pgconf := pgsql.DefaultConfig()
|
|
pgconf.DataPath("./data/pgsql")
|
|
pgconf.BinariesPath("./postgresql")
|
|
pgconf.Logger(sqlLog{})
|
|
pgconf.Database("maplestory")
|
|
|
|
postgres = pgsql.NewDatabase()
|
|
if err := postgres.Start(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func install(db *sqlx.DB) {
|
|
db.MustExec(accountsSchema)
|
|
println("User table installed!")
|
|
}
|
|
|
|
type sqlLog struct{}
|
|
|
|
func (sqlLog) Write(p []byte) (n int, err error) {
|
|
log.Debug().Str("caller", "postgresql").Msg(string(p))
|
|
return len(p), nil
|
|
}
|
|
|
|
func argParse() {
|
|
var kayos *User
|
|
var err error
|
|
for _, arg := range os.Args {
|
|
if arg == "--install" {
|
|
install(db)
|
|
return
|
|
}
|
|
if arg == "--regkayos" {
|
|
if err := RegisterNewUser("kayos", "yeet", "127.0.0.1", 0, true); err != nil {
|
|
panic(err)
|
|
}
|
|
return
|
|
}
|
|
if arg == "--loginkayos" {
|
|
if kayos, err = AttemptWebLogin(
|
|
"kayos",
|
|
"yeet",
|
|
"192.168.69.5",
|
|
"yeetBrowser 420"); err != nil {
|
|
panic(err)
|
|
}
|
|
println(kayos.Password)
|
|
}
|
|
}
|
|
}
|