aboutsummaryrefslogtreecommitdiff
path: root/app/timeline-delete/Main.hs
blob: c2b77652b3e6f4e1626bd07b6a16a741083215ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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