2025-01-25 05:27:26 +00:00
|
|
|
package web
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
|
|
|
|
"github.com/Jaculabilis/intake/core"
|
|
|
|
"github.com/Jaculabilis/intake/web/html"
|
|
|
|
)
|
|
|
|
|
2025-01-28 00:38:02 +00:00
|
|
|
func (env *Env) getSource(writer http.ResponseWriter, req *http.Request) {
|
|
|
|
source := req.PathValue("source")
|
2025-01-31 22:16:45 +00:00
|
|
|
if exists, err := core.SourceExists(env.db, source); !exists || err != nil {
|
2025-01-28 00:38:02 +00:00
|
|
|
http.NotFound(writer, req)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2025-02-07 16:17:51 +00:00
|
|
|
page := getQueryInt(req, "page", 1)
|
|
|
|
count := getQueryInt(req, "count", core.DefaultFeedLimit)
|
|
|
|
showHidden := getQueryInt(req, "hidden", 0)
|
|
|
|
|
2025-01-31 01:20:29 +00:00
|
|
|
var items []core.Item
|
|
|
|
var err error
|
2025-02-07 16:17:51 +00:00
|
|
|
if showHidden != 0 {
|
|
|
|
items, err = core.GetAllItemsForSource(env.db, source, (page-1)*count, count)
|
2025-01-31 01:20:29 +00:00
|
|
|
} else {
|
2025-02-07 16:17:51 +00:00
|
|
|
items, err = core.GetActiveItemsForSource(env.db, source, (page-1)*count, count)
|
2025-01-31 01:20:29 +00:00
|
|
|
}
|
2025-01-25 05:27:26 +00:00
|
|
|
if err != nil {
|
2025-01-31 00:55:02 +00:00
|
|
|
http.Error(writer, err.Error(), 500)
|
2025-01-25 05:27:26 +00:00
|
|
|
return
|
|
|
|
}
|
2025-01-31 01:20:29 +00:00
|
|
|
|
2025-01-25 05:41:46 +00:00
|
|
|
data := html.FeedData{
|
2025-02-07 16:17:51 +00:00
|
|
|
Items: items,
|
|
|
|
ShowHidden: showHidden,
|
|
|
|
Page: page,
|
|
|
|
Count: count,
|
2025-01-25 05:41:46 +00:00
|
|
|
}
|
|
|
|
html.Feed(writer, data)
|
2025-01-25 05:27:26 +00:00
|
|
|
}
|