Browse Source

📝 Add docstrings to `hotfix/analytic`

Docstrings generation was requested by @wzxjohn.

* https://github.com/QuantumNous/new-api/pull/2133#issuecomment-3484993715

The following files were modified:

* `common/embed-file-system.go`
coderabbitai[bot] 1 tháng trước cách đây
mục cha
commit
4e9cc4a36c
1 tập tin đã thay đổi với 14 bổ sung3 xóa
  1. 14 3
      common/embed-file-system.go

+ 14 - 3
common/embed-file-system.go

@@ -4,6 +4,7 @@ import (
 	"embed"
 	"io/fs"
 	"net/http"
+	"os"
 
 	"github.com/gin-contrib/static"
 )
@@ -14,7 +15,7 @@ type embedFileSystem struct {
 	http.FileSystem
 }
 
-func (e embedFileSystem) Exists(prefix string, path string) bool {
+func (e *embedFileSystem) Exists(prefix string, path string) bool {
 	_, err := e.Open(path)
 	if err != nil {
 		return false
@@ -22,12 +23,22 @@ func (e embedFileSystem) Exists(prefix string, path string) bool {
 	return true
 }
 
+func (e *embedFileSystem) Open(name string) (http.File, error) {
+	if name == "/" {
+		// This will make sure the index page goes to NoRouter handler,
+		// which will use the replaced index bytes with analytic codes.
+		return nil, os.ErrNotExist
+	}
+	return e.FileSystem.Open(name)
+}
+
+// requested subtree cannot be opened.
 func EmbedFolder(fsEmbed embed.FS, targetPath string) static.ServeFileSystem {
 	efs, err := fs.Sub(fsEmbed, targetPath)
 	if err != nil {
 		panic(err)
 	}
-	return embedFileSystem{
+	return &embedFileSystem{
 		FileSystem: http.FS(efs),
 	}
-}
+}