54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package pkg
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"code.d7z.net/d7z-project/gitea-pages/pkg/core"
|
|
"code.d7z.net/d7z-project/gitea-pages/pkg/utils"
|
|
"github.com/pbnjay/memory"
|
|
)
|
|
|
|
type ServerOptions struct {
|
|
Domain string
|
|
Config utils.Config
|
|
Cache utils.Cache
|
|
|
|
MaxCacheSize int
|
|
}
|
|
|
|
func DefaultOptions(domain string) ServerOptions {
|
|
configMemory, _ := utils.NewConfigMemory("")
|
|
return ServerOptions{
|
|
Domain: domain,
|
|
Config: configMemory,
|
|
Cache: utils.NewCacheMemory(1024*1024*10, int(memory.FreeMemory()/3*2)),
|
|
MaxCacheSize: 1024 * 1024 * 10,
|
|
}
|
|
}
|
|
|
|
type Server struct {
|
|
backend core.Backend
|
|
options *ServerOptions
|
|
}
|
|
|
|
func NewPageServer(backend core.Backend, options ServerOptions) *Server {
|
|
return &Server{
|
|
backend: core.NewCacheBackend(backend, options.Config, time.Minute),
|
|
options: &options,
|
|
}
|
|
}
|
|
|
|
func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
|
}
|
|
|
|
func (s *Server) Close() error {
|
|
if err := s.options.Config.Close(); err != nil {
|
|
return err
|
|
}
|
|
if err := s.options.Cache.Close(); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|