mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
fever api feed last_updated_on_time
This commit is contained in:
parent
60a947f131
commit
e4cc96ef09
@ -39,7 +39,7 @@ type FeverFeed struct {
|
|||||||
Url string `json:"url"`
|
Url string `json:"url"`
|
||||||
SiteUrl string `json:"site_url"`
|
SiteUrl string `json:"site_url"`
|
||||||
IsSpark int `json:"is_spark"`
|
IsSpark int `json:"is_spark"`
|
||||||
LastUpdatedOnTime int64 `json:"last_updated_on_time"`
|
LastUpdated int64 `json:"last_updated_on_time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type FeverItem struct {
|
type FeverItem struct {
|
||||||
@ -128,10 +128,14 @@ func FeverGroupsHandler(rw http.ResponseWriter, req *http.Request) {
|
|||||||
|
|
||||||
func FeverFeedsHandler(rw http.ResponseWriter, req *http.Request) {
|
func FeverFeedsHandler(rw http.ResponseWriter, req *http.Request) {
|
||||||
feeds := db(req).ListFeeds()
|
feeds := db(req).ListFeeds()
|
||||||
|
httpStates := db(req).ListHTTPStates()
|
||||||
|
|
||||||
feverFeeds := make([]*FeverFeed, len(feeds))
|
feverFeeds := make([]*FeverFeed, len(feeds))
|
||||||
for i, feed := range feeds {
|
for i, feed := range feeds {
|
||||||
// TODO: check url/siteurl
|
var lastUpdated int64
|
||||||
|
if state, ok := httpStates[feed.Id]; ok {
|
||||||
|
lastUpdated = state.LastRefreshed.Unix()
|
||||||
|
}
|
||||||
// TODO: store last updated on time?
|
// TODO: store last updated on time?
|
||||||
feverFeeds[i] = &FeverFeed{
|
feverFeeds[i] = &FeverFeed{
|
||||||
ID: feed.Id,
|
ID: feed.Id,
|
||||||
@ -140,7 +144,7 @@ func FeverFeedsHandler(rw http.ResponseWriter, req *http.Request) {
|
|||||||
Url: feed.FeedLink,
|
Url: feed.FeedLink,
|
||||||
SiteUrl: feed.Link,
|
SiteUrl: feed.Link,
|
||||||
IsSpark: 0,
|
IsSpark: 0,
|
||||||
LastUpdatedOnTime: 1,
|
LastUpdated: lastUpdated,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
writeFeverJSON(rw, map[string]interface{}{
|
writeFeverJSON(rw, map[string]interface{}{
|
||||||
|
@ -12,6 +12,30 @@ type HTTPState struct {
|
|||||||
Etag string
|
Etag string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Storage) ListHTTPStates() map[int64]HTTPState {
|
||||||
|
result := make(map[int64]HTTPState)
|
||||||
|
rows, err := s.db.Query(`select feed_id, last_refreshed, last_modified, etag from http_states`)
|
||||||
|
if err != nil {
|
||||||
|
s.log.Print(err)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
for rows.Next() {
|
||||||
|
var state HTTPState
|
||||||
|
err = rows.Scan(
|
||||||
|
&state.FeedID,
|
||||||
|
&state.LastRefreshed,
|
||||||
|
&state.LastModified,
|
||||||
|
&state.Etag,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
s.log.Print(err)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
result[state.FeedID] = state
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Storage) GetHTTPState(feedID int64) *HTTPState {
|
func (s *Storage) GetHTTPState(feedID int64) *HTTPState {
|
||||||
row := s.db.QueryRow(`
|
row := s.db.QueryRow(`
|
||||||
select feed_id, last_refreshed, last_modified, etag
|
select feed_id, last_refreshed, last_modified, etag
|
||||||
|
Loading…
x
Reference in New Issue
Block a user