Compare commits

..

No commits in common. "a331f4a300e6237f824656df867b58c84b7a61a4" and "5eed538bd1d28b2002dd01dede7b63cf5d15a6fb" have entirely different histories.

2 changed files with 9 additions and 23 deletions

View File

@ -351,7 +351,7 @@ func performCommands(sub microsub.Microsub, commands []string) {
}
if len(commands) == 2 && commands[0] == "follow" {
uid, _ := channelID(sub, commands[1])
uid := commands[1]
feeds, err := sub.FollowGetList(uid)
if err != nil {
log.Fatalf("An error occurred: %s\n", err)

View File

@ -555,8 +555,7 @@ func (b *memoryBackend) PreviewURL(previewURL string) (microsub.Timeline, error)
return microsub.Timeline{}, fmt.Errorf("error while fetching %s: %v", previewURL, err)
}
defer resp.Body.Close()
items, err := ProcessSourcedItems(cachingFetch, previewURL, resp.Header.Get("content-type"), resp.Body)
items, err := fetch.FeedItems(cachingFetch, previewURL, resp.Header.Get("content-type"), resp.Body)
if err != nil {
return microsub.Timeline{}, fmt.Errorf("error while fetching %s: %v", previewURL, err)
}
@ -586,11 +585,12 @@ func (b *memoryBackend) Events() (chan sse.Message, error) {
return sse.StartConnection(b.broker)
}
// ProcessSourcedItems processes items and adds the Source
func ProcessSourcedItems(fetcher fetch.FetcherFunc, fetchURL, contentType string, body io.Reader) ([]microsub.Item, error) {
func (b *memoryBackend) ProcessContent(channel, fetchURL, contentType string, body io.Reader) error {
cachingFetch := WithCaching(b.pool, Fetch2)
// When the source is available from the Header, we fill the Source of the item
var source *microsub.Source
if header, err := fetch.FeedHeader(fetcher, fetchURL, contentType, body); err == nil {
if header, err := fetch.FeedHeader(cachingFetch, fetchURL, contentType, body); err == nil {
source = &microsub.Source{
ID: header.URL,
URL: header.URL,
@ -604,28 +604,14 @@ func ProcessSourcedItems(fetcher fetch.FetcherFunc, fetchURL, contentType string
}
}
items, err := fetch.FeedItems(fetcher, fetchURL, contentType, body)
if err != nil {
return nil, err
}
for _, item := range items {
item.Read = false
item.Source = source
}
return items, nil
}
func (b *memoryBackend) ProcessContent(channel, fetchURL, contentType string, body io.Reader) error {
cachingFetch := WithCaching(b.pool, Fetch2)
items, err := ProcessSourcedItems(cachingFetch, fetchURL, contentType, body)
items, err := fetch.FeedItems(cachingFetch, fetchURL, contentType, body)
if err != nil {
return err
}
for _, item := range items {
item.Read = false
item.Source = source
err = b.channelAddItemWithMatcher(channel, item)
if err != nil {
log.Printf("ERROR: %s\n", err)