Add more metadata

This commit is contained in:
Ben Sarmiento
2023-10-17 12:36:33 +02:00
parent c5f365c8b4
commit 44216343e2
9 changed files with 139 additions and 39 deletions

View File

@@ -12,7 +12,7 @@ func Directory(path string) Response {
}
}
func File(path string, fileSize int, added string, link string) Response {
func File(path string, fileSize int64, added string, link string) Response {
return Response{
Href: customPathEscape(path),
Propstat: PropStat{

View File

@@ -20,7 +20,7 @@ type PropStat struct {
type Prop struct {
ResourceType ResourceType `xml:"d:resourcetype"`
ContentLength int `xml:"d:getcontentlength"`
ContentLength int64 `xml:"d:getcontentlength"`
CreationDate string `xml:"d:creationdate"`
LastModified string `xml:"d:getlastmodified"`
IsHidden int `xml:"d:ishidden"`

View File

@@ -6,9 +6,17 @@ import (
)
func customPathEscape(input string) string {
// First, URL-escape the path segments
segments := strings.Split(input, "/")
for i, segment := range segments {
segments[i] = url.PathEscape(segment)
}
return strings.Join(segments, "/")
escapedPath := strings.Join(segments, "/")
// Convert any XML-escaped sequences back to URL-escaped sequences
escapedPath = strings.Replace(escapedPath, "&", "%26", -1) // for &
escapedPath = strings.Replace(escapedPath, "<", "%3C", -1) // for <
escapedPath = strings.Replace(escapedPath, ">", "%3E", -1) // for >
escapedPath = strings.Replace(escapedPath, "\"", "%22", -1) // for "
escapedPath = strings.Replace(escapedPath, "'", "%27", -1) // for '
return escapedPath
}