Files
gitea-pages/pkg/server.go
2025-01-03 17:25:41 +08:00

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
}