From fd43c61bd128ad77b22db0537a9a4eb58490b0b5 Mon Sep 17 00:00:00 2001 From: Ben Morrison Date: Wed, 5 Jun 2019 15:36:23 -0400 Subject: moved bulk of code to its own package to clean up source tree --- svc/types.go | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 svc/types.go (limited to 'svc/types.go') diff --git a/svc/types.go b/svc/types.go new file mode 100644 index 0000000..978e0df --- /dev/null +++ b/svc/types.go @@ -0,0 +1,67 @@ +package svc // import "github.com/getwtxt/getwtxt/svc" + +import ( + "database/sql" + "sync" + "time" + + "github.com/syndtr/goleveldb/leveldb" +) + +// content-type consts +const txtutf8 = "text/plain; charset=utf-8" +const htmlutf8 = "text/html; charset=utf-8" +const cssutf8 = "text/css; charset=utf-8" + +// Configuration object definition +type Configuration struct { + Mu sync.RWMutex + Port int `yaml:"ListenPort"` + LogFile string `yaml:"LogFile"` + DBType string `yaml:"DatabaseType"` + DBPath string `yaml:"DatabasePath"` + AssetsDir string `yaml:"-"` + StdoutLogging bool `yaml:"StdoutLogging"` + Version string `yaml:"-"` + CacheInterval time.Duration `yaml:"StatusFetchInterval"` + DBInterval time.Duration `yaml:"DatabasePushInterval"` + LastCache time.Time `yaml:"-"` + LastPush time.Time `yaml:"-"` + Instance `yaml:"Instance"` +} + +// Instance refers to this specific instance of getwtxt +type Instance struct { + Vers string `yaml:"-"` + Name string `yaml:"Instance.SiteName"` + URL string `yaml:"Instance.URL"` + Owner string `yaml:"Instance.OwnerName"` + Mail string `yaml:"Instance.Email"` + Desc string `yaml:"Instance.Description"` +} + +type dbLevel struct { + db *leveldb.DB +} + +type dbSqlite struct { + db *sql.DB +} + +type dbase interface { + push() error + pull() +} + +// RemoteRegistries holds a list of remote registries to +// periodically scrape for new users. The remote registries +// must have been added via POST like a user. +type RemoteRegistries struct { + Mu sync.RWMutex + List []string +} + +// ipCtxKey is the Context value key for user IP addresses +type ipCtxKey int + +const ctxKey ipCtxKey = iota -- cgit 1.4.1-2-gfad0