|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"fmt"
|
|
|
|
"github.com/taoshihan1991/imaptool/tools"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
PageSize uint = 10
|
|
|
|
VisitorPageSize uint = 8
|
|
|
|
Version = "0.1.2"
|
|
|
|
VisitorExpire float64 = 600
|
|
|
|
GoflyConfig *Config
|
|
|
|
)
|
|
|
|
|
|
|
|
const Dir = "config/"
|
|
|
|
const AccountConf = Dir + "account.json"
|
|
|
|
const MysqlConf = Dir + "mysql.json"
|
|
|
|
const MailConf = Dir + "mail.json"
|
|
|
|
const MainConf = Dir + "config.json"
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
//配置文件
|
|
|
|
GoflyConfig = CreateConfig()
|
|
|
|
}
|
|
|
|
|
|
|
|
type Mysql struct {
|
|
|
|
Server string
|
|
|
|
Port string
|
|
|
|
Database string
|
|
|
|
Username string
|
|
|
|
Password string
|
|
|
|
}
|
|
|
|
type MailServer struct {
|
|
|
|
Server, Email, Password string
|
|
|
|
}
|
|
|
|
type Config struct {
|
|
|
|
Upload string
|
|
|
|
NoticeServerJiang bool
|
|
|
|
}
|
|
|
|
|
|
|
|
func CreateConfig() *Config {
|
|
|
|
var configObj Config
|
|
|
|
c := &Config{
|
|
|
|
Upload: "static/upload/",
|
|
|
|
NoticeServerJiang: false,
|
|
|
|
}
|
|
|
|
isExist, _ := tools.IsFileExist(MainConf)
|
|
|
|
if !isExist {
|
|
|
|
return c
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(MainConf)
|
|
|
|
if err != nil {
|
|
|
|
return c
|
|
|
|
}
|
|
|
|
err = json.Unmarshal(info, &configObj)
|
|
|
|
return &configObj
|
|
|
|
}
|
|
|
|
func CreateMailServer() *MailServer {
|
|
|
|
var imap MailServer
|
|
|
|
isExist, _ := tools.IsFileExist(MailConf)
|
|
|
|
if !isExist {
|
|
|
|
return &imap
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(MailConf)
|
|
|
|
if err != nil {
|
|
|
|
return &imap
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(info, &imap)
|
|
|
|
return &imap
|
|
|
|
}
|
|
|
|
func CreateMysql() *Mysql {
|
|
|
|
var mysql Mysql
|
|
|
|
isExist, _ := tools.IsFileExist(MysqlConf)
|
|
|
|
if !isExist {
|
|
|
|
return &mysql
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(MysqlConf)
|
|
|
|
if err != nil {
|
|
|
|
return &mysql
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(info, &mysql)
|
|
|
|
return &mysql
|
|
|
|
}
|
|
|
|
func GetMysql() map[string]string {
|
|
|
|
var mysql map[string]string
|
|
|
|
isExist, _ := tools.IsFileExist(MysqlConf)
|
|
|
|
if !isExist {
|
|
|
|
return mysql
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(MysqlConf)
|
|
|
|
if err != nil {
|
|
|
|
return mysql
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(info, &mysql)
|
|
|
|
return mysql
|
|
|
|
}
|
|
|
|
func GetAccount() map[string]string {
|
|
|
|
var account map[string]string
|
|
|
|
isExist, _ := tools.IsFileExist(AccountConf)
|
|
|
|
if !isExist {
|
|
|
|
return account
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(AccountConf)
|
|
|
|
if err != nil {
|
|
|
|
return account
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(info, &account)
|
|
|
|
return account
|
|
|
|
}
|
|
|
|
func GetUserInfo(uid string) map[string]string {
|
|
|
|
var userInfo map[string]string
|
|
|
|
userFile := Dir + "sess_" + uid + ".json"
|
|
|
|
isExist, _ := tools.IsFileExist(userFile)
|
|
|
|
if !isExist {
|
|
|
|
return userInfo
|
|
|
|
}
|
|
|
|
info, err := ioutil.ReadFile(userFile)
|
|
|
|
if err != nil {
|
|
|
|
return userInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(info, &userInfo)
|
|
|
|
return userInfo
|
|
|
|
}
|
|
|
|
func SetUserInfo(uid string, info map[string]string) {
|
|
|
|
userFile := Dir + "sess_" + uid + ".json"
|
|
|
|
isExist, _ := tools.IsFileExist(Dir)
|
|
|
|
if !isExist {
|
|
|
|
os.Mkdir(Dir, os.ModePerm)
|
|
|
|
}
|
|
|
|
file, _ := os.OpenFile(userFile, os.O_RDWR|os.O_CREATE, os.ModePerm)
|
|
|
|
str := "{\r\n"
|
|
|
|
for k, v := range info {
|
|
|
|
str += fmt.Sprintf(`"%s":"%s",`, k, v)
|
|
|
|
}
|
|
|
|
str += fmt.Sprintf(`"session_id":"%s"%s}`, uid, "\r\n")
|
|
|
|
file.WriteString(str)
|
|
|
|
}
|