mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-28 16:45:32 +00:00
Small comment changes
This commit is contained in:
11
kgpz_web.go
11
kgpz_web.go
@@ -21,17 +21,6 @@ const (
|
|||||||
DEV_CONFIG = "config.dev.json"
|
DEV_CONFIG = "config.dev.json"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 1. Check if folder exists
|
|
||||||
// - If not, clone the repo, if possible or throw if error
|
|
||||||
// 2. If the folder exists, we try to serialize -- and spawn a goroutine to pull.
|
|
||||||
// Upon pulling, we read in the current state of the repository, even if it's up to date.
|
|
||||||
// -> If the repo was changed we execute a callback and parse again.
|
|
||||||
// -> If pulling fails, we retry after a certain amount of time.
|
|
||||||
// Still we can continue if serialization proceeds.
|
|
||||||
// -> If serialization fails, we throw an error, log it. We try to pull in the background.
|
|
||||||
// - setup commit date & hash
|
|
||||||
// - Setup GitHub webhook if set
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
cfg := providers.NewConfigProvider([]string{DEV_CONFIG, DEFAULT_CONFIG})
|
cfg := providers.NewConfigProvider([]string{DEV_CONFIG, DEFAULT_CONFIG})
|
||||||
if err := cfg.Read(); err != nil {
|
if err := cfg.Read(); err != nil {
|
||||||
|
|||||||
@@ -17,12 +17,11 @@ var InvalidStateError = errors.New("The GitProvider is not in a valid state. Fix
|
|||||||
var NoURLProvidedError = errors.New("No URL provided for GitProvider.")
|
var NoURLProvidedError = errors.New("No URL provided for GitProvider.")
|
||||||
var NoPathProvidedError = errors.New("No path or branch provided for GitProvider.")
|
var NoPathProvidedError = errors.New("No path or branch provided for GitProvider.")
|
||||||
|
|
||||||
// NOTE: GitProvider does not open XML files, it can only
|
// NOTE: GitProvider does not open any worktree files, it only
|
||||||
// - read in information from the repo, given a path
|
// - reads in information from the repo, given a path
|
||||||
// - clone the repo, given an URL & a path
|
// - clones a repo, given an URL & a path
|
||||||
// - pull the repo, given a path
|
// - pulls a repo, given a path
|
||||||
// In case of success in either case it updates the commit hash and date and closes the repo again.
|
// In case of success it updates it's state: the commit hash and date. Then it closes the repo.
|
||||||
// The Files are opened and serialized by the FSProvider, which operates on the same file path.
|
|
||||||
type GitProvider struct {
|
type GitProvider struct {
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
|
|
||||||
|
|||||||
0
scratchpad.md
Normal file
0
scratchpad.md
Normal file
@@ -25,7 +25,8 @@ const (
|
|||||||
SERVER_TIMEOUT = 16 * time.Second
|
SERVER_TIMEOUT = 16 * time.Second
|
||||||
|
|
||||||
// INFO: Maybe this is too long/short?
|
// INFO: Maybe this is too long/short?
|
||||||
CACHE_TIME = 24 * time.Hour
|
CACHE_TIME = 24 * time.Hour
|
||||||
|
CACHE_GC_INTERVAL = 120 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -99,7 +100,7 @@ func (s *Server) Start() {
|
|||||||
|
|
||||||
if s.cache == nil {
|
if s.cache == nil {
|
||||||
s.cache = memory.New(memory.Config{
|
s.cache = memory.New(memory.Config{
|
||||||
GCInterval: 30 * time.Second,
|
GCInterval: CACHE_GC_INTERVAL,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ func (s *Server) Start() {
|
|||||||
ErrorHandler: fiber.DefaultErrorHandler,
|
ErrorHandler: fiber.DefaultErrorHandler,
|
||||||
|
|
||||||
// WARNING: The app must be run in a console, since this uses environment variables:
|
// WARNING: The app must be run in a console, since this uses environment variables:
|
||||||
// It is not trivial to turn this on, since we need to mark goroutines that can be started only once.
|
// It is not trivial to turn this on, since we need to mark goroutines that must be started only once.
|
||||||
// Prefork: true,
|
// Prefork: true,
|
||||||
StreamRequestBody: false,
|
StreamRequestBody: false,
|
||||||
WriteTimeout: REQUEST_TIMEOUT,
|
WriteTimeout: REQUEST_TIMEOUT,
|
||||||
@@ -138,8 +139,8 @@ func (s *Server) Start() {
|
|||||||
srv.Use(ASSETS_URL_PREFIX, etag.New())
|
srv.Use(ASSETS_URL_PREFIX, etag.New())
|
||||||
srv.Use(ASSETS_URL_PREFIX, static(&views.StaticFS))
|
srv.Use(ASSETS_URL_PREFIX, static(&views.StaticFS))
|
||||||
|
|
||||||
// TODO: Dont cache static assets, bc storage gets huge
|
// TODO: Dont cache static assets, bc storage gets huge on images.
|
||||||
// INFO: Maybe fiber does this already?
|
// -> Maybe fiber does this already, automatically?
|
||||||
if s.Config.Debug {
|
if s.Config.Debug {
|
||||||
srv.Use(cache.New(cache.Config{
|
srv.Use(cache.New(cache.Config{
|
||||||
Next: CacheFunc,
|
Next: CacheFunc,
|
||||||
@@ -156,9 +157,6 @@ func (s *Server) Start() {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: this is probably a bad idea, since it basically applies to every /XXXX URL
|
|
||||||
// And probably creates problems with static files, and in case we add a front page later.
|
|
||||||
// That's why we redirect to /1764 on "/ " and don´t use an optional /:year?
|
|
||||||
srv.Get("/", func(c *fiber.Ctx) error {
|
srv.Get("/", func(c *fiber.Ctx) error {
|
||||||
c.Redirect(INDEX_URL)
|
c.Redirect(INDEX_URL)
|
||||||
return nil
|
return nil
|
||||||
@@ -168,8 +166,12 @@ func (s *Server) Start() {
|
|||||||
srv.Get(CATEGORY_OVERVIEW_URL, controllers.GetCategory(s.kgpz))
|
srv.Get(CATEGORY_OVERVIEW_URL, controllers.GetCategory(s.kgpz))
|
||||||
srv.Get(AGENTS_OVERVIEW_URL, controllers.GetAgents(s.kgpz))
|
srv.Get(AGENTS_OVERVIEW_URL, controllers.GetAgents(s.kgpz))
|
||||||
|
|
||||||
// TODO: Same here, this prob applies to all paths with two or three segments, which is bad.
|
// TODO: YEAR_OVERVIEW_URL being /:year is a bad idea, since it captures basically everything,
|
||||||
// Prob better to do /ausgabe/:year/:issue/:page? here and /jahrgang/:year? above.
|
// probably creating problems with static files, and also in case we add a front page later.
|
||||||
|
// That's why we redirect to /1764 on "/ " above and don´t use an optional /:year? paramter.
|
||||||
|
// -> Check SEO requirements on index pages that are 301 forwarded.
|
||||||
|
// This applies to all paths with two or three segments without a static prefix:
|
||||||
|
// Prob better to do /ausgabe/:year/:issue/:page? and /jahrgang/:year? respectively.
|
||||||
srv.Get(YEAR_OVERVIEW_URL, controllers.GetYear(s.kgpz))
|
srv.Get(YEAR_OVERVIEW_URL, controllers.GetYear(s.kgpz))
|
||||||
srv.Get(ISSSUE_URL, controllers.GetIssue(s.kgpz))
|
srv.Get(ISSSUE_URL, controllers.GetIssue(s.kgpz))
|
||||||
srv.Get(ADDITIONS_URL, controllers.GetIssue(s.kgpz))
|
srv.Get(ADDITIONS_URL, controllers.GetIssue(s.kgpz))
|
||||||
|
|||||||
@@ -189,33 +189,3 @@ func (p Piece) ReferencesWork(id string) (*WorkRef, bool) {
|
|||||||
}
|
}
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: We can make this fast depending on which category to look for
|
|
||||||
// but we'll have to define rules for every single category (~35 of them)
|
|
||||||
func (p Piece) IsCat(k string) bool {
|
|
||||||
for _, c := range p.CategoryRefs {
|
|
||||||
if c.Category == k {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c := range p.WorkRefs {
|
|
||||||
if c.Category == k {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c := range p.AgentRefs {
|
|
||||||
if c.Category == k {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c := range p.PieceRefs {
|
|
||||||
if c.Category == k {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user