Parsing atom feeds and running middleware on them
This commit is contained in:
@ -32,7 +32,9 @@ executable FeedMonad-demo
|
||||
build-depends:
|
||||
base ^>=4.14.3.0,
|
||||
FeedMonad,
|
||||
containers
|
||||
containers,
|
||||
lens,
|
||||
regex-tdfa
|
||||
|
||||
hs-source-dirs: app
|
||||
default-language: Haskell2010
|
||||
|
@ -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 }
|
||||
|
@ -1,11 +1,14 @@
|
||||
{ mkDerivation, base, FeedMonad, lib }:
|
||||
{ mkDerivation, base, containers, FeedMonad, lens, lib, regex-tdfa
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "FeedMonad-demo";
|
||||
version = "0.1.0.0";
|
||||
src = ./.;
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = [ base FeedMonad ];
|
||||
executableHaskellDepends = [
|
||||
base containers FeedMonad lens regex-tdfa
|
||||
];
|
||||
license = "unknown";
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
}
|
||||
|
Reference in New Issue
Block a user