From adb2efc538cc780fbc3282f6be9706191bb057d0 Mon Sep 17 00:00:00 2001 From: Carlos Sosa Date: Wed, 31 Jul 2019 16:32:14 -0700 Subject: Move to specific commands per executable --- app/timeline-delete/Main.hs | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/timeline-delete/Main.hs (limited to 'app/timeline-delete') diff --git a/app/timeline-delete/Main.hs b/app/timeline-delete/Main.hs new file mode 100644 index 0000000..c2b7765 --- /dev/null +++ b/app/timeline-delete/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