Fill item source from FeadHeader
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
c49afabaa8
commit
5eed538bd1
|
@ -588,6 +588,22 @@ func (b *memoryBackend) Events() (chan sse.Message, error) {
|
||||||
func (b *memoryBackend) ProcessContent(channel, fetchURL, contentType string, body io.Reader) error {
|
func (b *memoryBackend) ProcessContent(channel, fetchURL, contentType string, body io.Reader) error {
|
||||||
cachingFetch := WithCaching(b.pool, Fetch2)
|
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(cachingFetch, fetchURL, contentType, body); err == nil {
|
||||||
|
source = µsub.Source{
|
||||||
|
ID: header.URL,
|
||||||
|
URL: header.URL,
|
||||||
|
Name: header.Name,
|
||||||
|
Photo: header.Photo,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
source = µsub.Source{
|
||||||
|
ID: fetchURL,
|
||||||
|
URL: fetchURL,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
items, err := fetch.FeedItems(cachingFetch, fetchURL, contentType, body)
|
items, err := fetch.FeedItems(cachingFetch, fetchURL, contentType, body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -595,6 +611,7 @@ func (b *memoryBackend) ProcessContent(channel, fetchURL, contentType string, bo
|
||||||
|
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
item.Read = false
|
item.Read = false
|
||||||
|
item.Source = source
|
||||||
err = b.channelAddItemWithMatcher(channel, item)
|
err = b.channelAddItemWithMatcher(channel, item)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("ERROR: %s\n", err)
|
log.Printf("ERROR: %s\n", err)
|
||||||
|
|
|
@ -60,6 +60,7 @@ func (h *micropubHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: We could try to fill the Source of the Item with something, but what?
|
||||||
item, err := parseIncomingItem(r)
|
item, err := parseIncomingItem(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, err.Error(), 400)
|
http.Error(w, err.Error(), 400)
|
||||||
|
@ -78,6 +79,7 @@ func (h *micropubHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("could not add item to channel %s: %v", channel, err)
|
log.Printf("could not add item to channel %s: %v", channel, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = h.Backend.updateChannelUnreadCount(channel)
|
err = h.Backend.updateChannelUnreadCount(channel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("could not update channel unread content %s: %v", channel, err)
|
log.Printf("could not update channel unread content %s: %v", channel, err)
|
||||||
|
|
|
@ -82,6 +82,15 @@ type Item struct {
|
||||||
Refs map[string]Item `json:"refs,omitempty"`
|
Refs map[string]Item `json:"refs,omitempty"`
|
||||||
ID string `json:"_id,omitempty"`
|
ID string `json:"_id,omitempty"`
|
||||||
Read bool `json:"_is_read"`
|
Read bool `json:"_is_read"`
|
||||||
|
Source *Source `json:"_source,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Source is an Item source
|
||||||
|
type Source struct {
|
||||||
|
ID string `json:"_id"`
|
||||||
|
URL string `json:"url"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Photo string `json:"photo"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pagination contains information about paging
|
// Pagination contains information about paging
|
||||||
|
|
Loading…
Reference in New Issue
Block a user