mirror of
https://github.com/nkanaev/yarr.git
synced 2026-06-24 09:05:16 +00:00
golines -w src
This commit is contained in:
@@ -191,7 +191,10 @@ func listQueryPredicate(filter ItemFilter, newestFirst bool) (string, []interfac
|
||||
terms[idx] = word + "*"
|
||||
}
|
||||
|
||||
cond = append(cond, "i.search_rowid in (select rowid from search where search match :search)")
|
||||
cond = append(
|
||||
cond,
|
||||
"i.search_rowid in (select rowid from search where search match :search)",
|
||||
)
|
||||
args = append(args, sql.Named("search", strings.Join(terms, " ")))
|
||||
}
|
||||
if filter.After != nil {
|
||||
@@ -199,7 +202,13 @@ func listQueryPredicate(filter ItemFilter, newestFirst bool) (string, []interfac
|
||||
if newestFirst {
|
||||
compare = "<"
|
||||
}
|
||||
cond = append(cond, fmt.Sprintf("(i.date, i.id) %s (select date, id from items where id = :after_id)", compare))
|
||||
cond = append(
|
||||
cond,
|
||||
fmt.Sprintf(
|
||||
"(i.date, i.id) %s (select date, id from items where id = :after_id)",
|
||||
compare,
|
||||
),
|
||||
)
|
||||
args = append(args, sql.Named("after_id", *filter.After))
|
||||
}
|
||||
if filter.IDs != nil && len(*filter.IDs) > 0 {
|
||||
@@ -249,7 +258,12 @@ func (s *Storage) CountItems(filter ItemFilter) int {
|
||||
return count
|
||||
}
|
||||
|
||||
func (s *Storage) ListItems(filter ItemFilter, limit int, newestFirst bool, withContent bool) []Item {
|
||||
func (s *Storage) ListItems(
|
||||
filter ItemFilter,
|
||||
limit int,
|
||||
newestFirst bool,
|
||||
withContent bool,
|
||||
) []Item {
|
||||
predicate, args := listQueryPredicate(filter, newestFirst)
|
||||
result := make([]Item, 0)
|
||||
|
||||
@@ -450,7 +464,8 @@ func (s *Storage) DeleteOldItems() {
|
||||
}
|
||||
|
||||
for feedId, limit := range feedLimits {
|
||||
result, err := s.db.Exec(`
|
||||
result, err := s.db.Exec(
|
||||
`
|
||||
delete from items
|
||||
where id in (
|
||||
select i.id
|
||||
@@ -463,7 +478,10 @@ func (s *Storage) DeleteOldItems() {
|
||||
sql.Named("feed_id", feedId),
|
||||
sql.Named("starred_status", STARRED),
|
||||
sql.Named("limit", limit),
|
||||
sql.Named("date_limit", time.Now().UTC().Add(-time.Hour*time.Duration(24*itemsKeepDays))),
|
||||
sql.Named(
|
||||
"date_limit",
|
||||
time.Now().UTC().Add(-time.Hour*time.Duration(24*itemsKeepDays)),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
|
||||
@@ -47,21 +47,62 @@ func testItemsSetup(db *Storage) testItemScope {
|
||||
db.CreateItems([]Item{
|
||||
// feed11
|
||||
{GUID: "item111", FeedId: feed11.Id, Title: "title111", Date: now.Add(time.Hour * 24 * 1)},
|
||||
{GUID: "item112", FeedId: feed11.Id, Title: "title112", Date: now.Add(time.Hour * 24 * 2)}, // read
|
||||
{GUID: "item113", FeedId: feed11.Id, Title: "title113", Date: now.Add(time.Hour * 24 * 3)}, // starred
|
||||
{
|
||||
GUID: "item112",
|
||||
FeedId: feed11.Id,
|
||||
Title: "title112",
|
||||
Date: now.Add(time.Hour * 24 * 2),
|
||||
}, // read
|
||||
{
|
||||
GUID: "item113",
|
||||
FeedId: feed11.Id,
|
||||
Title: "title113",
|
||||
Date: now.Add(time.Hour * 24 * 3),
|
||||
}, // starred
|
||||
// feed12
|
||||
{GUID: "item121", FeedId: feed12.Id, Title: "title121", Date: now.Add(time.Hour * 24 * 4)},
|
||||
{GUID: "item122", FeedId: feed12.Id, Title: "title122", Date: now.Add(time.Hour * 24 * 5)}, // read
|
||||
{
|
||||
GUID: "item122",
|
||||
FeedId: feed12.Id,
|
||||
Title: "title122",
|
||||
Date: now.Add(time.Hour * 24 * 5),
|
||||
}, // read
|
||||
// feed21
|
||||
{GUID: "item211", FeedId: feed21.Id, Title: "title211", Date: now.Add(time.Hour * 24 * 6)}, // read
|
||||
{GUID: "item212", FeedId: feed21.Id, Title: "title212", Date: now.Add(time.Hour * 24 * 7)}, // starred
|
||||
{
|
||||
GUID: "item211",
|
||||
FeedId: feed21.Id,
|
||||
Title: "title211",
|
||||
Date: now.Add(time.Hour * 24 * 6),
|
||||
}, // read
|
||||
{
|
||||
GUID: "item212",
|
||||
FeedId: feed21.Id,
|
||||
Title: "title212",
|
||||
Date: now.Add(time.Hour * 24 * 7),
|
||||
}, // starred
|
||||
// feed01
|
||||
{GUID: "item011", FeedId: feed01.Id, Title: "title011", Date: now.Add(time.Hour * 24 * 8)},
|
||||
{GUID: "item012", FeedId: feed01.Id, Title: "title012", Date: now.Add(time.Hour * 24 * 9)}, // read
|
||||
{GUID: "item013", FeedId: feed01.Id, Title: "title013", Date: now.Add(time.Hour * 24 * 10)}, // starred
|
||||
{
|
||||
GUID: "item012",
|
||||
FeedId: feed01.Id,
|
||||
Title: "title012",
|
||||
Date: now.Add(time.Hour * 24 * 9),
|
||||
}, // read
|
||||
{
|
||||
GUID: "item013",
|
||||
FeedId: feed01.Id,
|
||||
Title: "title013",
|
||||
Date: now.Add(time.Hour * 24 * 10),
|
||||
}, // starred
|
||||
})
|
||||
db.db.Exec(`update items set status = :status where guid in ("item112", "item122", "item211", "item012")`, sql.Named("status", READ))
|
||||
db.db.Exec(`update items set status = :status where guid in ("item113", "item212", "item013")`, sql.Named("status", STARRED))
|
||||
db.db.Exec(
|
||||
`update items set status = :status where guid in ("item112", "item122", "item211", "item012")`,
|
||||
sql.Named("status", READ),
|
||||
)
|
||||
db.db.Exec(
|
||||
`update items set status = :status where guid in ("item113", "item212", "item013")`,
|
||||
sql.Named("status", STARRED),
|
||||
)
|
||||
|
||||
return testItemScope{
|
||||
feed11: feed11,
|
||||
@@ -208,7 +249,9 @@ func TestListItemsPaginated(t *testing.T) {
|
||||
|
||||
// unread, newest first
|
||||
unread := UNREAD
|
||||
have = getItemGuids(db.ListItems(ItemFilter{After: &item012.Id, Status: &unread}, 3, true, false))
|
||||
have = getItemGuids(
|
||||
db.ListItems(ItemFilter{After: &item012.Id, Status: &unread}, 3, true, false),
|
||||
)
|
||||
want = []string{"item011", "item121", "item111"}
|
||||
if !reflect.DeepEqual(have, want) {
|
||||
t.Logf("want: %#v", want)
|
||||
@@ -218,7 +261,9 @@ func TestListItemsPaginated(t *testing.T) {
|
||||
|
||||
// starred, oldest first
|
||||
starred := STARRED
|
||||
have = getItemGuids(db.ListItems(ItemFilter{After: &item121.Id, Status: &starred}, 3, false, false))
|
||||
have = getItemGuids(
|
||||
db.ListItems(ItemFilter{After: &item121.Id, Status: &starred}, 3, false, false),
|
||||
)
|
||||
want = []string{"item212", "item013"}
|
||||
if !reflect.DeepEqual(have, want) {
|
||||
t.Logf("want: %#v", want)
|
||||
|
||||
Reference in New Issue
Block a user