packages feed

imm 1.6.0.0 → 1.6.1.0

raw patch · 4 files changed

+10/−3 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Imm.Database.FeedTable: listUnprocessedElements :: MonadThrow m => Handle m FeedTable -> FeedID -> m [FeedElement]

Files

README.md view
@@ -96,7 +96,7 @@  - Check for new elements without executing any action:   ```bash-  imm run --no-callbacks --read-only+  imm --read-only run --no-callbacks   ```  - Execute configured callbacks for each new element from subscribed feeds:
imm.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.2 name:                imm-version:             1.6.0.0+version:             1.6.1.0 synopsis:            Execute arbitrary callbacks for each element of RSS/Atom feeds description:         Cf README file homepage:            https://github.com/k0ral/imm
src/lib/Imm/Database/FeedTable.hs view
@@ -198,6 +198,12 @@     , entryReadHashes = mempty     } +listUnprocessedElements :: MonadThrow m +                        => Database.Handle m FeedTable -> FeedID -> m [FeedElement]+listUnprocessedElements database feedID = do+  DatabaseEntry{..} <- fetch database feedID+  return $ Map.keys $ Map.filter not entryItems+ isRead :: MonadCatch m => Database.Handle m FeedTable -> FeedID -> FeedElement -> m Bool isRead database feedID element = do   DatabaseEntry _ _ readHashes _ items lastUpdate <- Database.fetch database feedID
src/main/Main.hs view
@@ -103,7 +103,8 @@           feed <- HTTP.get logger httpClient uri >>= parseXml xmlParser uri            unreadElements <- filterM (fmap not . isRead database feedID) $ getElements feed-          forM_ unreadElements $ \element -> do+          unprocessedElements <- listUnprocessedElements database feedID+          forM_ (unprocessedElements <> unreadElements) $ \element -> do             log logger Info $ "New item:" <+> magenta (pretty feedID) <+> "/" <+> yellow (pretty $ getTitle element)             atomically $ do               writeTMChan newItemsChan (feedID, removeElements feed, element)