fix item order

This commit is contained in:
x2cf 2023-04-28 15:59:39 +08:00 committed by Nazar Kanaev
parent 9f1a0534a3
commit 32ca121520
3 changed files with 27 additions and 4 deletions

View File

@ -76,7 +76,7 @@ func (s *Storage) CreateItems(items []Item) bool {
return false return false
} }
now := time.Now() now := time.Now().UTC()
for _, item := range items { for _, item := range items {
_, err = tx.Exec(` _, err = tx.Exec(`
@ -85,7 +85,7 @@ func (s *Storage) CreateItems(items []Item) bool {
content, image, podcast_url, content, image, podcast_url,
date_arrived, status date_arrived, status
) )
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) values (?, ?, ?, ?, strftime('%Y-%m-%d %H:%M:%f', ?), ?, ?, ?, ?, ?)
on conflict (feed_id, guid) do nothing`, on conflict (feed_id, guid) do nothing`,
item.GUID, item.FeedId, item.Title, item.Link, item.Date, item.GUID, item.FeedId, item.Title, item.Link, item.Date,
item.Content, item.ImageURL, item.AudioURL, item.Content, item.ImageURL, item.AudioURL,
@ -343,7 +343,7 @@ func (s *Storage) DeleteOldItems() {
feedId, feedId,
STARRED, STARRED,
limit, limit,
time.Now().Add(-time.Hour*time.Duration(24*itemsKeepDays)), time.Now().UTC().Add(-time.Hour*time.Duration(24*itemsKeepDays)),
) )
if err != nil { if err != nil {
log.Print(err) log.Print(err)

View File

@ -276,7 +276,7 @@ func TestMarkItemsRead(t *testing.T) {
func TestDeleteOldItems(t *testing.T) { func TestDeleteOldItems(t *testing.T) {
extraItems := 10 extraItems := 10
now := time.Now() now := time.Now().UTC()
db := testDB() db := testDB()
feed := db.CreateFeed("feed", "", "", "http://test.com/feed11.xml", nil) feed := db.CreateFeed("feed", "", "", "http://test.com/feed11.xml", nil)

View File

@ -4,6 +4,7 @@ import (
"database/sql" "database/sql"
"fmt" "fmt"
"log" "log"
"time"
) )
var migrations = []func(*sql.Tx) error{ var migrations = []func(*sql.Tx) error{
@ -14,6 +15,7 @@ var migrations = []func(*sql.Tx) error{
m05_move_description_to_content, m05_move_description_to_content,
m06_fill_missing_dates, m06_fill_missing_dates,
m07_add_feed_size, m07_add_feed_size,
m08_normalize_datetime,
} }
var maxVersion = int64(len(migrations)) var maxVersion = int64(len(migrations))
@ -271,3 +273,24 @@ func m07_add_feed_size(tx *sql.Tx) error {
_, err := tx.Exec(sql) _, err := tx.Exec(sql)
return err return err
} }
func m08_normalize_datetime(tx *sql.Tx) error {
rows, err := tx.Query(`select id, date_arrived from items;`)
if err != nil {
return err
}
for rows.Next() {
var id int64
var dateArrived time.Time
err = rows.Scan(&id, &dateArrived)
if err != nil {
return err
}
_, err = tx.Exec(`update items set date_arrived = ? where id = ?;`, dateArrived.UTC(), id)
if err != nil {
return err
}
}
_, err = tx.Exec(`update items set date = strftime('%Y-%m-%d %H:%M:%f', date);`)
return err
}