Parsing atom feeds and running middleware on them

This commit is contained in:
2021-11-11 23:17:57 +02:00
parent 595d5090fe
commit e1b4155a25
5 changed files with 25 additions and 9 deletions

View File

@ -3,8 +3,13 @@ module Main where
import FeedMonad
import Data.Category
import Data.URL (URL(..))
import Data.URL (URL(..), _URL)
import Database (FeedId(..))
import Middleware
import qualified Data.Set as S
import Data.Entry
import Data.List.Lens (prefixed)
import Control.Lens
myFeeds :: [ Category FeedId ]
myFeeds =
@ -12,6 +17,13 @@ myFeeds =
[Leaf (FeedId (URL "https://github.com/feediron/feediron-recipes/commits/master.atom"))]
]
myFilters :: Middleware
myFilters =
modifyScore (has (tags . ix (Tag "github"))) (+10) .
modifyScore (has (tags . ix (Tag "haskell"))) (+20) .
modifyTags (has (url . _URL . prefixed "tag:github.com")) (S.insert (Tag "github"))
main :: IO ()
main = do
defaultMain defaultConfig{feeds = myFeeds }
defaultMain defaultConfig{feeds = myFeeds, filters = myFilters }