diff --git a/storage/item.go b/storage/item.go index 2183c37..ac7681b 100644 --- a/storage/item.go +++ b/storage/item.go @@ -76,6 +76,9 @@ func (s *Storage) CreateItems(items []Item) bool { if item.Date == nil { item.Date = item.DateUpdated } + if item.GUID == "" { + item.GUID = item.Link + } _, err = tx.Exec(` insert into items ( guid, feed_id, title, link, description, @@ -84,7 +87,7 @@ func (s *Storage) CreateItems(items []Item) bool { status, image ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - on conflict (guid) do update set + on conflict (feed_id, guid) do update set date_updated = ?, date_arrived = ?`, item.GUID, item.FeedId, html.UnescapeString(item.Title), item.Link, item.Description, item.Content, item.Author, diff --git a/storage/storage.go b/storage/storage.go index 38ba92b..c78e29c 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -48,8 +48,8 @@ create table if not exists items ( create index if not exists idx_item_feed_id on items(feed_id); create index if not exists idx_item_status on items(status); -create unique index if not exists idx_item_guid on items(guid); create index if not exists idx_item_search_rowid on items(search_rowid); +create unique index if not exists idx_item_guid on items(feed_id, guid); create table if not exists settings ( key string primary key,