This commit is contained in:
2019-01-13 08:22:29 -06:00
parent e0f25b8529
commit 8cc411b89d
16 changed files with 520 additions and 111 deletions

View File

@@ -2,8 +2,6 @@ package main
import (
"C"
)
import (
"errors"
"fmt"
"net/http"
@@ -12,43 +10,36 @@ import (
"github.com/PuerkitoBio/goquery"
)
func getFeedList() []Feed {
var ret []Feed
ret = append(ret, *NewFeed("dilbert", "Dilbert", "Scott Adams", "dilbert"))
func GetSourceName() string {
return "dilbert"
}
func GetFeedList() []map[string]string {
var ret []map[string]string
feedMap := make(map[string]string)
feedMap["slug"] = "dilbert"
feedMap["name"] = "Dilbert"
feedMap["author"] = "Scott Adams"
feedMap["source"] = GetSourceName()
ret = append(ret, feedMap)
return ret
}
func getRssItem(slug string) (string, error) {
desc, err := getFeedDesc(time.Now())
if err != nil {
return "", err
}
feed, err := m.GetFeed(SRC_DILBERT, slug)
if err != nil {
return "", err
}
desc = "<![CDATA[" + desc + "]]>"
ret := " <item>\n"
ret += " <title>" + feed.Name + "</title>\n"
ret += " <pubDate>" + feed.LastUpdate.Format(time.RFC1123Z) + "</pubDate>\n"
ret += " <guid>dilbert;" + slug + ";" + feed.LastUpdate.Format(time.RFC1123Z) + "</guid>\n"
ret += " <link>" + getFeedUrl(time.Now()) + "</link>\n"
ret += " <description>" + desc + "</description>\n"
ret += " </item>\n"
return ret, nil
}
func getFeedUrl(date time.Time) string {
func GetFeedUrl(slug string, date time.Time) (string, error) {
return fmt.Sprintf(
"http://dilbert.com/strip/%4d-%02d-%02d",
date.Year(),
date.Month(),
date.Day(),
)
), nil
}
func getFeedDesc(date time.Time) (string, error) {
res, err := http.Get(getFeedUrl(date))
func GetFeedDesc(slug string, date time.Time) (string, error) {
url, err := GetFeedUrl(slug, date)
if err != nil {
return "", err
}
res, err := http.Get(url)
if err != nil {
return "", err
}

View File

@@ -11,8 +11,12 @@ import (
"github.com/PuerkitoBio/goquery"
)
func downloadList() {
var ret []Feed
func GetSourceName() string {
return "gocomics"
}
func GetFeedList() []map[string]string {
var ret []map[string]string
lstUrl := "http://www.gocomics.com/comics/a-to-z"
res, err := http.Get(lstUrl)
if err != nil {
@@ -48,44 +52,33 @@ func downloadList() {
}
author = strings.TrimPrefix(author, "By ")
author = strings.Replace(author, "\u0026", "&", -1)
ret = append(ret, *NewFeed(slug, name, author, "gocomics"))
feedMap := make(map[string]string)
feedMap["slug"] = slug
feedMap["name"] = name
feedMap["author"] = author
feedMap["source"] = GetSourceName()
ret = append(ret, feedMap)
}
})
return ret
}
func getRssItem(slug string) (string, error) {
desc, err := getFeedDesc(slug, time.Now())
if err != nil {
return "", err
}
comic, err := m.GetComic(SRC_GOCOMICS, slug)
if err != nil {
return "", err
}
desc = "<![CDATA[" + desc + "]]>"
ret := " <item>\n"
ret += " <title>" + comic.Name + "</title>\n"
ret += " <pubDate>" + comic.LastUpdate.Format(time.RFC1123Z) + "</pubDate>\n"
ret += " <guid>gocomics;" + slug + ";" + comic.LastUpdate.Format(time.RFC1123Z) + "</guid>\n"
ret += " <link>" + getGoComicsComicUrl(slug, time.Now()) + "</link>\n"
ret += " <description>" + desc + "</description>\n"
ret += " </item>\n"
return ret, nil
}
func getFeedUrl(slug string, date time.Time) string {
func GetFeedUrl(slug string, date time.Time) (string, error) {
return fmt.Sprintf(
"http://www.gocomics.com/%s/%04d/%02d/%02d",
slug,
date.Year(),
date.Month(),
date.Day(),
)
), nil
}
func getFeedDesc(slug string, date time.Time) (string, error) {
res, err := http.Get(getFeedUrl(slug, date))
func GetFeedDesc(slug string, date time.Time) (string, error) {
url, err := GetFeedUrl(slug, date)
if err != nil {
return "", err
}
res, err := http.Get(url)
if err != nil {
return "", err
}

View File

@@ -10,12 +10,22 @@ import (
"github.com/PuerkitoBio/goquery"
)
func getFeedList() []Feed {
var ret []Feed
ret = append(ret, *NewFeed("xkcd", "XKCD", "Randall Munroe", "xkcd"))
func GetSourceName() string {
return "xkcd"
}
func GetFeedList() []map[string]string {
var ret []map[string]string
feedMap := make(map[string]string)
feedMap["slug"] = "xkcd"
feedMap["name"] = "XKCD"
feedMap["author"] = "Randall Munroe"
feedMap["source"] = GetSourceName()
ret = append(ret, feedMap)
return ret
}
/*
func getRssItem(slug string) (string, error) {
desc, err := getFeedDesc(time.Now())
if err != nil {
@@ -35,8 +45,9 @@ func getRssItem(slug string) (string, error) {
ret += " </item>\n"
return ret, nil
}
*/
func getFeedUrl(date time.Time) (string, error) {
func GetFeedUrl(slug string, dt time.Time) (string, error) {
var isComicDay = func(dt time.Time) bool {
return dt.Weekday() == time.Monday || dt.Weekday() == time.Wednesday || dt.Weekday() == time.Friday
}
@@ -54,8 +65,13 @@ func getFeedUrl(date time.Time) (string, error) {
return fmt.Sprintf("https://xkcd.com/%d", num), nil
}
func getFeedDesc(date time.Time) (string, error) {
res, err := http.Get(getUrl(date))
func GetFeedDesc(slug string, dt time.Time) (string, error) {
var url string
var err error
if url, err = GetFeedUrl(slug, dt); err != nil {
return "", err
}
res, err := http.Get(url)
if err != nil {
return "", err
}