packages feed

twitter-conduit-0.1.0: sample/oslist.hs

{-# 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