40 lines
763 B
Go
40 lines
763 B
Go
package core
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
)
|
|
|
|
type Item struct {
|
|
Source string `json:"source"`
|
|
Id string `json:"id"`
|
|
Created int `json:"created"`
|
|
Active bool `json:"active"`
|
|
Title string `json:"title"`
|
|
Author string `json:"author"`
|
|
Body string `json:"body"`
|
|
Link string `json:"link"`
|
|
Time int `json:"time"`
|
|
}
|
|
|
|
func FormatAsHeadline(item Item) string {
|
|
title := item.Title
|
|
if title == "" {
|
|
title = item.Id
|
|
}
|
|
return title
|
|
}
|
|
|
|
func FormatAsJson(item Item) string {
|
|
data, err := json.Marshal(item)
|
|
if err != nil {
|
|
log.Fatalf("error: failed to serialize %s/%s: %v", item.Source, item.Id, err)
|
|
}
|
|
return string(data)
|
|
}
|
|
|
|
func FormatAsShort(item Item) string {
|
|
return fmt.Sprintf("%s/%s", item.Source, item.Id)
|
|
}
|