Implement Parsing of Multiple Articles on one Page #5
@ -53,6 +53,7 @@ type SitePage struct {
 | 
			
		||||
    Title   string
 | 
			
		||||
    Root    *html.Node
 | 
			
		||||
    Errors  []error
 | 
			
		||||
    ErrStr  string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func fetchPage(url string) (string, error) {
 | 
			
		||||
@ -84,6 +85,7 @@ func parseTime(timestr string) (time.Time, error) {
 | 
			
		||||
        "2006-01-02 15:04",
 | 
			
		||||
        "2006-01-02T15:04:05",
 | 
			
		||||
        "2006-01-02T15:04",
 | 
			
		||||
        // "2006-02-01 15:04",
 | 
			
		||||
    }
 | 
			
		||||
    var pagetime time.Time
 | 
			
		||||
    var err error
 | 
			
		||||
@ -178,9 +180,9 @@ func (p *SitePage) Parse() ([]*FeedItem, error) {
 | 
			
		||||
        for _, perr := range p.Errors {
 | 
			
		||||
            errorStrs = append(errorStrs, perr.Error())
 | 
			
		||||
        }
 | 
			
		||||
        err = errors.New(strings.Join(errorStrs, "\n"))
 | 
			
		||||
        p.ErrStr = errors.New(strings.Join(errorStrs, "\n")).Error()
 | 
			
		||||
    }
 | 
			
		||||
    return items, err
 | 
			
		||||
    return items, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewSitePage(url string) (*SitePage, error) {
 | 
			
		||||
@ -224,6 +226,7 @@ func NewFeedInfo(name, base_url, desc, author string, page_urls...string) (*Feed
 | 
			
		||||
            info.Errors[url] = err.Error()
 | 
			
		||||
        } else {
 | 
			
		||||
            info.Items = append(info.Items, pageItems...)
 | 
			
		||||
            info.Errors[url] = page.ErrStr
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return &info, nil
 | 
			
		||||
 | 
			
		||||
@ -45,6 +45,11 @@ func TestTimeParsing(t *testing.T) {
 | 
			
		||||
                `<article><time datetime="2004-05-14T07:30">May 14 2004</time>hello world</article>`,
 | 
			
		||||
                "2006-01-02T15:04",
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "YYYY-DD-MM HH:MM",
 | 
			
		||||
                `<article><time datetime="2004-14-05 07:30">May 14 2004</time>hello world</article>`,
 | 
			
		||||
                "2006-02-01 15:04",
 | 
			
		||||
            },
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for _, tt := range tests {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user