{-# LANGUAGE OverloadedStrings #-}
module Main where
import Web.Twitter.Conduit hiding (map)
import Common
import Control.Monad.IO.Class
import qualified Data.Conduit as C
import qualified Data.Conduit.List as CL
import qualified Data.Map as M
import Network.HTTP.Conduit
import System.Environment
main :: IO ()
main = do
[screenName] <- liftIO getArgs
twInfo <- getTWInfoFromEnv
let sn = ScreenNameParam screenName
(folids, friids) <- withManager $ \mgr -> do
folids <- sourceWithCursor twInfo mgr (followersIds sn) C.$$ CL.consume
friids <- sourceWithCursor twInfo mgr (friendsIds sn) C.$$ CL.consume
return (folids, friids)
let folmap = M.fromList $ map (flip (,) True) folids
os = filter (\uid -> M.notMember uid folmap) friids
bo = filter (\usr -> M.member usr folmap) friids
liftIO $ putStrLn "one sided:"
liftIO $ print os
liftIO $ putStrLn "both following:"
liftIO $ print bo