config.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. package config
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "git.wanbits.cc/sin/flytalk/tools"
  6. "io/ioutil"
  7. "os"
  8. )
  9. var (
  10. PageSize uint = 10
  11. GoflyConfig *Config
  12. QiniuConfig *Qiniu
  13. )
  14. const (
  15. VERSION = "0.1.2"
  16. PAGE_SIZE_VISITOR = 8
  17. DIR = "config"
  18. )
  19. const Dir = "config/"
  20. const MysqlConf = Dir + "mysql.json"
  21. const QiniuFile = Dir + "qiniu.json"
  22. const MailConf = Dir + "mail.json"
  23. const MainConf = Dir + "config.json"
  24. func init() {
  25. //配置文件
  26. GoflyConfig = CreateConfig()
  27. QiniuConfig = CreateQiniu(QiniuFile)
  28. }
  29. type Database struct {
  30. Driver string
  31. Server string
  32. Port string
  33. Db string
  34. Username string
  35. Password string
  36. }
  37. type Qiniu struct {
  38. Access string
  39. Secret string
  40. Bucket string
  41. Zone string
  42. Domain string
  43. }
  44. type MailServer struct {
  45. Server, Email, Password string
  46. }
  47. type Config struct {
  48. Upload string
  49. NoticeServer bool
  50. }
  51. func CreateConfig() *Config {
  52. var configObj Config
  53. c := &Config{
  54. Upload: "static/upload/",
  55. NoticeServer: false,
  56. }
  57. isExist, _ := tools.IsFileExist(MainConf)
  58. if !isExist {
  59. return c
  60. }
  61. info, err := ioutil.ReadFile(MainConf)
  62. if err != nil {
  63. return c
  64. }
  65. err = json.Unmarshal(info, &configObj)
  66. return &configObj
  67. }
  68. func CreateMailServer() *MailServer {
  69. var imap MailServer
  70. isExist, _ := tools.IsFileExist(MailConf)
  71. if !isExist {
  72. return &imap
  73. }
  74. info, err := ioutil.ReadFile(MailConf)
  75. if err != nil {
  76. return &imap
  77. }
  78. err = json.Unmarshal(info, &imap)
  79. return &imap
  80. }
  81. func CreateMysql(f string) *Database {
  82. var mysql Database
  83. isExist, _ := tools.IsFileExist(f)
  84. if !isExist {
  85. return &mysql
  86. }
  87. info, err := ioutil.ReadFile(f)
  88. if err != nil {
  89. return &mysql
  90. }
  91. err = json.Unmarshal(info, &mysql)
  92. return &mysql
  93. }
  94. func CreateQiniu(f string) *Qiniu {
  95. var q Qiniu
  96. isExist, _ := tools.IsFileExist(f)
  97. if !isExist {
  98. fmt.Println(f)
  99. return &q
  100. }
  101. info, err := ioutil.ReadFile(f)
  102. if err != nil {
  103. fmt.Println("bb")
  104. return &q
  105. }
  106. _ = json.Unmarshal(info, &q)
  107. return &q
  108. }
  109. func GetMysql() map[string]string {
  110. var mysql map[string]string
  111. isExist, _ := tools.IsFileExist(MysqlConf)
  112. if !isExist {
  113. return mysql
  114. }
  115. info, err := ioutil.ReadFile(MysqlConf)
  116. if err != nil {
  117. return mysql
  118. }
  119. err = json.Unmarshal(info, &mysql)
  120. return mysql
  121. }
  122. func GetUserInfo(uid string) map[string]string {
  123. var userInfo map[string]string
  124. userFile := Dir + "sess_" + uid + ".json"
  125. isExist, _ := tools.IsFileExist(userFile)
  126. if !isExist {
  127. return userInfo
  128. }
  129. info, err := ioutil.ReadFile(userFile)
  130. if err != nil {
  131. return userInfo
  132. }
  133. err = json.Unmarshal(info, &userInfo)
  134. return userInfo
  135. }
  136. func SetUserInfo(uid string, info map[string]string) {
  137. userFile := Dir + "sess_" + uid + ".json"
  138. isExist, _ := tools.IsFileExist(Dir)
  139. if !isExist {
  140. os.Mkdir(Dir, os.ModePerm)
  141. }
  142. file, _ := os.OpenFile(userFile, os.O_RDWR|os.O_CREATE, os.ModePerm)
  143. str := "{\r\n"
  144. for k, v := range info {
  145. str += fmt.Sprintf(`"%s":"%s",`, k, v)
  146. }
  147. str += fmt.Sprintf(`"session_id":"%s"%s}`, uid, "\r\n")
  148. file.WriteString(str)
  149. }