{-# LANGUAGE OverloadedStrings #-} module Main where import FeedMonad import Data.Category 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 = [ Category "Code" [Leaf (FeedId (URL "https://github.com/feediron/feediron-recipes/commits/master.atom"))] , Category "News" [ Category "Yle" [ Leaf (FeedId (URL "https://feeds.yle.fi/uutiset/v1/majorHeadlines/YLE_UUTISET.rss")) , Leaf (FeedId (URL "https://feeds.yle.fi/uutiset/v1/recent.rss?publisherIds=YLE_UUTISET&concepts=18-147345")) ] ] , Category "Programming" [ Leaf (FeedId (URL "https://reddit.com/r/haskell.rss")) , Leaf (FeedId (URL "https://discourse.dhall-lang.org/latest.rss")) , Leaf (FeedId (URL "https://www.haskellforall.com/feeds/posts/default")) ] ] 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, filters = myFilters }