aboutsummaryrefslogtreecommitdiff
path: root/http_handle_repo_tree.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-03-25 02:54:07 +0800
committerRunxi Yu <me@runxiyu.org>2025-03-25 02:54:07 +0800
commit06b1396b96dbefb4ab6c01b5d34b2150e1721165 (patch)
treefab751158768a67a0101d2eeb39717996e676ae8 /http_handle_repo_tree.go
parentCache dir view in tree view (diff)
downloadforge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.tar.gz
forge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.tar.zst
forge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.zip
Cache file view
Diffstat (limited to 'http_handle_repo_tree.go')
-rw-r--r--http_handle_repo_tree.go19
1 files changed, 15 insertions, 4 deletions
diff --git a/http_handle_repo_tree.go b/http_handle_repo_tree.go
index 41ae93e..38b533d 100644
--- a/http_handle_repo_tree.go
+++ b/http_handle_repo_tree.go
@@ -42,7 +42,7 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
cacheHandle := append(refHashSlice, []byte(pathSpec)...)
- fmt.Printf("%#v", string(cacheHandle))
+ fmt.Printf("%#v\n", string(cacheHandle))
if value, found := treeReadmeCache.Get(cacheHandle); found {
params["files"] = value.DisplayTree
@@ -52,6 +52,15 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
return
}
+ if value, found := commitPathFileHTMLCache.Get(cacheHandle); found {
+ params["file_contents"] = value
+ renderTemplate(writer, "repo_tree_file", params)
+ return
+ }
+ start := time.Now()
+
+ fmt.Println("miss")
+
var target *object.Tree
if pathSpec == "" {
if commitObject, err = repo.CommitObject(refHash); err != nil {
@@ -63,7 +72,6 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
return
}
- start := time.Now()
displayTree := makeDisplayTree(tree)
readmeFilename, readmeRendered := renderReadmeAtTree(tree)
cost := time.Since(start).Nanoseconds()
@@ -127,6 +135,10 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
return
}
formattedHTML = template.HTML(formattedHTMLStr.Bytes()) //#nosec G203
+ cost := time.Since(start).Nanoseconds()
+
+ commitPathFileHTMLCache.Set(cacheHandle, formattedHTML, cost)
+
params["file_contents"] = formattedHTML
renderTemplate(writer, "repo_tree_file", params)
@@ -138,7 +150,6 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
return
}
- start := time.Now()
displayTree := makeDisplayTree(target)
readmeFilename, readmeRendered := renderReadmeAtTree(target)
cost := time.Since(start).Nanoseconds()
@@ -148,7 +159,7 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
ReadmeFilename: readmeFilename,
ReadmeRendered: readmeRendered,
}
- treeReadmeCache.Set(cacheHandle, entry, cost)
+ fmt.Println(treeReadmeCache.Set(cacheHandle, entry, cost))
params["readme_filename"], params["readme"] = readmeFilename, readmeRendered
params["files"] = displayTree