diff --git a/entry.go b/entry.go index 0db8772..3e6e67b 100644 --- a/entry.go +++ b/entry.go @@ -79,87 +79,83 @@ func createEntryFromValueMap(values map[string][]string) (*Entry, error) { if h, ok := values["h"]; ok && (len(h) != 1 || h[0] != "entry") { return nil, errors.New("only entry type is supported so far") } - if _, ok := values["content"]; ok { - entry := &Entry{ - content: values["content"][0], - } - if name, ok := values["name"]; ok { - entry.title = name[0] - } - if category, ok := values["category"]; ok { - entry.tags = category - } else if categories, ok := values["category[]"]; ok { - entry.tags = categories - } else { - entry.tags = nil - } - if slug, ok := values["mp-slug"]; ok && len(slug) > 0 && slug[0] != "" { - entry.slug = slug[0] - } - if inReplyTo, ok := values["in-reply-to"]; ok { - entry.replyLink = inReplyTo[0] - } - if likeOf, ok := values["like-of"]; ok { - entry.likeLink = likeOf[0] - } - if bookmarkOf, ok := values["bookmark-of"]; ok { - entry.link = bookmarkOf[0] - } - if syndicate, ok := values["mp-syndicate-to"]; ok { - entry.syndicate = syndicate - } else if syndicates, ok := values["mp-syndicate-to[]"]; ok { - entry.syndicate = syndicates - } else { - entry.syndicate = nil - } - if token, ok := values["access_token"]; ok { - entry.token = "Bearer " + token[0] - } - err := computeExtraSettings(entry) - if err != nil { - return nil, err - } - return entry, nil + entry := &Entry{} + if content, ok := values["content"]; ok { + entry.content = content[0] } - return nil, errors.New("error parsing the entry") + if name, ok := values["name"]; ok { + entry.title = name[0] + } + if category, ok := values["category"]; ok { + entry.tags = category + } else if categories, ok := values["category[]"]; ok { + entry.tags = categories + } else { + entry.tags = nil + } + if slug, ok := values["mp-slug"]; ok && len(slug) > 0 && slug[0] != "" { + entry.slug = slug[0] + } + if inReplyTo, ok := values["in-reply-to"]; ok { + entry.replyLink = inReplyTo[0] + } + if likeOf, ok := values["like-of"]; ok { + entry.likeLink = likeOf[0] + } + if bookmarkOf, ok := values["bookmark-of"]; ok { + entry.link = bookmarkOf[0] + } + if syndicate, ok := values["mp-syndicate-to"]; ok { + entry.syndicate = syndicate + } else if syndicates, ok := values["mp-syndicate-to[]"]; ok { + entry.syndicate = syndicates + } else { + entry.syndicate = nil + } + if token, ok := values["access_token"]; ok { + entry.token = "Bearer " + token[0] + } + err := computeExtraSettings(entry) + if err != nil { + return nil, err + } + return entry, nil } func createEntryFromMicroformat(mfEntry *MicroformatItem) (*Entry, error) { if len(mfEntry.Type) != 1 || mfEntry.Type[0] != "h-entry" { return nil, errors.New("only entry type is supported so far") } + entry := &Entry{} if mfEntry.Properties != nil && len(mfEntry.Properties.Content) == 1 && len(mfEntry.Properties.Content[0]) > 0 { - entry := &Entry{ - content: mfEntry.Properties.Content[0], - } - if len(mfEntry.Properties.Name) == 1 { - entry.title = mfEntry.Properties.Name[0] - } - if len(mfEntry.Properties.Category) > 0 { - entry.tags = mfEntry.Properties.Category - } - if len(mfEntry.Properties.MpSlug) == 1 && len(mfEntry.Properties.MpSlug[0]) > 0 { - entry.slug = mfEntry.Properties.MpSlug[0] - } - if len(mfEntry.Properties.InReplyTo) == 1 { - entry.replyLink = mfEntry.Properties.InReplyTo[0] - } - if len(mfEntry.Properties.LikeOf) == 1 { - entry.likeLink = mfEntry.Properties.LikeOf[0] - } - if len(mfEntry.Properties.BookmarkOf) == 1 { - entry.link = mfEntry.Properties.BookmarkOf[0] - } - if len(mfEntry.Properties.MpSyndicateTo) > 0 { - entry.syndicate = mfEntry.Properties.MpSyndicateTo - } - err := computeExtraSettings(entry) - if err != nil { - return nil, err - } - return entry, nil + entry.content = mfEntry.Properties.Content[0] } - return nil, errors.New("error parsing the entry") + if len(mfEntry.Properties.Name) == 1 { + entry.title = mfEntry.Properties.Name[0] + } + if len(mfEntry.Properties.Category) > 0 { + entry.tags = mfEntry.Properties.Category + } + if len(mfEntry.Properties.MpSlug) == 1 && len(mfEntry.Properties.MpSlug[0]) > 0 { + entry.slug = mfEntry.Properties.MpSlug[0] + } + if len(mfEntry.Properties.InReplyTo) == 1 { + entry.replyLink = mfEntry.Properties.InReplyTo[0] + } + if len(mfEntry.Properties.LikeOf) == 1 { + entry.likeLink = mfEntry.Properties.LikeOf[0] + } + if len(mfEntry.Properties.BookmarkOf) == 1 { + entry.link = mfEntry.Properties.BookmarkOf[0] + } + if len(mfEntry.Properties.MpSyndicateTo) > 0 { + entry.syndicate = mfEntry.Properties.MpSyndicateTo + } + err := computeExtraSettings(entry) + if err != nil { + return nil, err + } + return entry, nil } func computeExtraSettings(entry *Entry) error {