xdcc 1.1.1 → 1.1.2
raw patch · 4 files changed
+23/−6 lines, 4 files
Files
- src/IRC/Types.hs +19/−4
- src/XDCC.hs +1/−1
- src/ZNC.hs +2/−0
- xdcc.cabal +1/−1
src/IRC/Types.hs view
@@ -4,12 +4,17 @@ , Nickname , Password , Hook(..)+ , addHandler' ) where -import Data.ByteString.Char8 (ByteString)-import Data.CaseInsensitive (CI)-import qualified Data.Text as T (Text)-import Network.IRC.Client (EventHandler, StatefulIRC)+import Control.Concurrent.STM (atomically)+import Control.Concurrent.STM.TVar (readTVar, writeTVar)+import Control.Monad.IO.Class (liftIO)+import Data.ByteString.Char8 (ByteString)+import Data.CaseInsensitive (CI)+import qualified Data.Text as T (Text)+import Network.IRC.Client (EventHandler, InstanceConfig (..),+ StatefulIRC, instanceConfigTVar) type Network = ByteString type Channel = CI T.Text@@ -20,3 +25,13 @@ , events :: [EventHandler s] , onDisconnect :: StatefulIRC s () }++-- TODO Remove when https://github.com/barrucadu/irc-client/pull/19 is merged.+-- | Add an event handler+addHandler' :: EventHandler s -> StatefulIRC s ()+addHandler' handler = do+ tvarI <- instanceConfigTVar++ liftIO . atomically $ do+ iconf <- readTVar tvarI+ writeTVar tvarI iconf { _eventHandlers = handler : _eventHandlers iconf }
src/XDCC.hs view
@@ -45,7 +45,7 @@ liftIO . atomically . modifyTVar state $ \s -> s { xdccStatus = newS } addDccHandler :: IRC.EventHandler Stati -> XdccIO ()-addDccHandler = XdccIO . IRC.addHandler+addDccHandler = XdccIO . addHandler' sendXdcc :: XdccCommand a => Nickname -> a -> XdccIO () sendXdcc nick = XdccIO . IRC.send . IRC.Privmsg nick . Right . toText
src/ZNC.hs view
@@ -15,8 +15,10 @@ host == "znc.in" user == "znc" -}+pattern ZncStatusUser :: Source T.Text pattern ZncStatusUser = User "*status" +pattern ZncDisconnectedMsg :: T.Text -> Message T.Text pattern ZncDisconnectedMsg target = Privmsg target (Right "You are currently disconnected from IRC. Use 'connect' to reconnect.")
xdcc.cabal view
@@ -1,5 +1,5 @@ name: xdcc-version: 1.1.1+version: 1.1.2 synopsis: A wget-like utility for retrieving files from XDCC bots on IRC description: XDCC (eXtended DCC) is a protocol used by IRC bots to make