diff --git a/cmd/web.go b/cmd/web.go
index f2e21a9..0f2bd06 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -203,23 +203,23 @@ func extractAndConvertContent(urlStr string) (string, error) {
return header + markdown + "\n\n", nil
}
-func getFilenameFromContent(content, urlStr string) string {
+func getFilenameFromContent(content, urlStr string) (string, error) {
// Try to extract title from content
titleStart := strings.Index(content, "
")
titleEnd := strings.Index(content, "")
if titleStart != -1 && titleEnd != -1 && titleEnd > titleStart {
title := content[titleStart+7 : titleEnd]
- return sanitizeFilename(title) + ".md"
+ return sanitizeFilename(title) + ".rollup.md", nil
}
// If no title found, use the URL without the protocol
parsedURL, err := url.Parse(urlStr)
if err != nil {
- return "untitled.md"
+ return "", fmt.Errorf("invalid URL: %v", err)
}
filename := parsedURL.Host + parsedURL.Path
- return sanitizeFilename(filename) + ".md"
+ return sanitizeFilename(filename) + ".rollup.md", nil
}
func sanitizeFilename(name string) string {
diff --git a/cmd/web_test.go b/cmd/web_test.go
index a452525..739f320 100644
--- a/cmd/web_test.go
+++ b/cmd/web_test.go
@@ -70,18 +70,28 @@ func TestGetFilenameFromContent(t *testing.T) {
content string
url string
expected string
+ expectErr bool
}{
- {"Test Page", "http://example.com", "Test_Page.md"},
- {"No title here", "http://example.com/page", "example_com_page.md"},
- {" Trim Me ", "http://example.com", "Trim_Me.md"},
- {"", "http://example.com", "example_com.md"},
- {"Invalid URL", "not a valid url", "untitled.md"},
+ {"Test Page", "http://example.com", "Test_Page.rollup.md", false},
+ {"No title here", "http://example.com/page", "example_com_page.rollup.md", false},
+ {" Trim Me ", "http://example.com", "Trim_Me.rollup.md", false},
+ {"", "http://example.com", "example_com.rollup.md", false},
+ {"Invalid URL", "not a valid url", "", true},
}
for _, test := range tests {
- result := getFilenameFromContent(test.content, test.url)
- if result != test.expected {
- t.Errorf("getFilenameFromContent(%q, %q) = %q; want %q", test.content, test.url, result, test.expected)
+ result, err := getFilenameFromContent(test.content, test.url)
+ if test.expectErr {
+ if err == nil {
+ t.Errorf("getFilenameFromContent(%q, %q) expected an error, but got none", test.content, test.url)
+ }
+ } else {
+ if err != nil {
+ t.Errorf("getFilenameFromContent(%q, %q) unexpected error: %v", test.content, test.url, err)
+ }
+ if result != test.expected {
+ t.Errorf("getFilenameFromContent(%q, %q) = %q; want %q", test.content, test.url, result, test.expected)
+ }
}
}
}