From 2a104eff7548fd9ef168b312c7dfca0ea9731b6d Mon Sep 17 00:00:00 2001 From: Carlos Sosa Date: Tue, 30 Jul 2019 15:56:18 -0700 Subject: Initial commit --- app/Main.hs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/Main.hs (limited to 'app') diff --git a/app/Main.hs b/app/Main.hs new file mode 100644 index 0000000..c2b7765 --- /dev/null +++ b/app/Main.hs @@ -0,0 +1,48 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE FlexibleContexts #-} + +module Main where + +import Web.Twitter.Conduit +import Web.Twitter.Types.Lens +import Control.Lens +import Conduit +import qualified Data.Conduit.List as CL + +tokens :: OAuth +tokens = twitterOAuth + { oauthConsumerKey = "YOUR_OAUTH_CONSUMER_KEY" + , oauthConsumerSecret = "YOUR_OAUTH_CONSUMER_SECRET" + } + +credential :: Credential +credential = Credential + [ ("oauth_token", "YOUR_OAUTH_TOKEN") + , ("oauth_token_secret", "YOUR_OAUTH_TOKEN_SECRET") + ] + +twInfo :: TWInfo +twInfo = def + { twToken = def { twOAuth = tokens, twCredential = credential } + , twProxy = Nothing + } + +main :: IO () +main = do + mgr <- newManager tlsManagerSettings + putStrLn $ "# your home timeline (up to 200 tweets):" + destroyReqs <- runConduit $ + sourceWithMaxId twInfo mgr (userTimeline (ScreenNameParam "someUser")) + .| (CL.isolate 200) + .| (mapC (\status -> do + status ^. statusId)) + .| (mapC destroyId) + .| (mapC (\req -> do + callWithResponse twInfo mgr req)) + .| sinkList + + resp <- sequence destroyReqs + mapM_ (putStrLn . show) resp + + + -- cgit v1.3-2-g0d8e