Created
July 26, 2013 20:18
-
-
Save egonSchiele/6091917 to your computer and use it in GitHub Desktop.
Github emailer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Control.Applicative | |
| import Github.Gists | |
| import Github.Users.Followers | |
| import System.Directory | |
| import Control.Monad | |
| import qualified Data.Set as S | |
| import Text.Printf | |
| import System.Process | |
| import System.IO.Unsafe | |
| followersFile = "followers.txt" | |
| compareFollowers Nothing _ = return () | |
| compareFollowers (Just prev) cur = do | |
| let newFollowers = S.toList $ cur S.\\ prev | |
| unfollowedBy = S.toList $ prev S.\\ cur | |
| forM_ newFollowers $ \userName -> | |
| system (printf "echo 'https://www.github.com/%s' | mail -s '%s followed you on Github!' bluemangroupie@gmail.com" userName userName) | |
| forM_ unfollowedBy $ \userName -> | |
| system (printf "echo 'https://www.github.com/%s' | mail -s '%s unfollowed you on Github!' bluemangroupie@gmail.com" userName userName) | |
| main = do | |
| followers_ <- usersFollowing "egonSchiele" | |
| fileExists <- doesFileExist followersFile | |
| let prevFollowers = if fileExists | |
| then Just (S.fromList . lines . unsafePerformIO . readFile $ followersFile) | |
| else Nothing | |
| case followers_ of | |
| Left err -> print err | |
| Right followers -> do | |
| let logins = githubOwnerLogin <$> followers | |
| compareFollowers prevFollowers (S.fromList logins) | |
| writeFile followersFile (unlines logins) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment