@@ -123,6 +123,7 @@ func (b *Browser) checkAlive() *agent.ToolResult {
|
||||
IsError: true,
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ func DownloadPDFTool() agent.Tool {
|
||||
ErrorDetail: fmt.Sprintf("cannot download PDF: %s", err),
|
||||
}), nil
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
@@ -95,6 +96,7 @@ func DownloadPDFTool() agent.Tool {
|
||||
ErrorDetail: fmt.Sprintf("cannot create temp dir: %s", err),
|
||||
}), nil
|
||||
}
|
||||
|
||||
defer func() { _ = os.RemoveAll(tmpDir) }()
|
||||
|
||||
tmpFile := filepath.Join(tmpDir, "input.pdf")
|
||||
@@ -106,6 +108,7 @@ func DownloadPDFTool() agent.Tool {
|
||||
|
||||
// Get page count.
|
||||
conf := model.NewDefaultConfiguration()
|
||||
|
||||
pageCount, err := api.PageCountFile(tmpFile)
|
||||
if err != nil {
|
||||
return agent.ResultJSON(downloadPDFResult{
|
||||
@@ -130,15 +133,18 @@ func DownloadPDFTool() agent.Tool {
|
||||
|
||||
// Read all extracted content files.
|
||||
var sb strings.Builder
|
||||
|
||||
entries, _ := os.ReadDir(outDir)
|
||||
for _, entry := range entries {
|
||||
if entry.IsDir() {
|
||||
continue
|
||||
}
|
||||
|
||||
content, err := os.ReadFile(filepath.Join(outDir, entry.Name()))
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
sb.Write(content)
|
||||
sb.WriteString("\n")
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ func FetchRobotsTxtTool() agent.Tool {
|
||||
ErrorDetail: fmt.Sprintf("cannot fetch robots.txt: %s", err),
|
||||
}), nil
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
@@ -79,6 +80,7 @@ func FetchRobotsTxtTool() agent.Tool {
|
||||
}
|
||||
|
||||
var result robotsResult
|
||||
|
||||
result.Found = true
|
||||
|
||||
scanner := bufio.NewScanner(resp.Body)
|
||||
|
||||
@@ -73,6 +73,7 @@ func FetchSitemapTool() agent.Tool {
|
||||
ErrorDetail: fmt.Sprintf("cannot fetch sitemap: %s", err),
|
||||
}), nil
|
||||
}
|
||||
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
@@ -92,7 +93,9 @@ func FetchSitemapTool() agent.Tool {
|
||||
ErrorDetail: fmt.Sprintf("cannot decompress gzipped sitemap: %s", err),
|
||||
}), nil
|
||||
}
|
||||
|
||||
defer func() { _ = gz.Close() }()
|
||||
|
||||
reader = gz
|
||||
}
|
||||
|
||||
@@ -125,6 +128,7 @@ func FetchSitemapTool() agent.Tool {
|
||||
|
||||
func parseSitemapXML(r io.Reader) ([]string, error) {
|
||||
var urls []string
|
||||
|
||||
decoder := xml.NewDecoder(r)
|
||||
|
||||
for {
|
||||
@@ -132,6 +136,7 @@ func parseSitemapXML(r io.Reader) ([]string, error) {
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return urls, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user