musicScroll 0.3.1.0 → 0.3.2.1
raw patch · 7 files changed
+25/−25 lines, 7 filesdep ~base
Dependency ranges changed: base
Files
- musicScroll.cabal +3/−3
- src/MusicScroll/DatabaseUtils.hs +17/−17
- src/MusicScroll/EventLoop.hs +2/−1
- src/MusicScroll/LyricsPipeline.hs +1/−0
- src/MusicScroll/TrackSuplement.hs +0/−1
- src/MusicScroll/UIContext.hs +1/−1
- src/MusicScroll/Web.hs +1/−2
musicScroll.cabal view
@@ -4,7 +4,7 @@ -- http://haskell.org/cabal/users-guide/ name: musicScroll-version: 0.3.1.0+version: 0.3.2.1 synopsis: Supply your tunes info without leaving your music player. description: Automatically retrive the lyrics of of your current song on SMPlayer/VLC and update it on each change. See the@@ -33,7 +33,7 @@ ghc-options: -optl-fuse-ld=gold ld-options: -fuse-ld=gold hs-source-dirs: src- build-depends: base <4.14 ,+ build-depends: base <4.15, containers, dbus, gi-gtk,@@ -85,7 +85,7 @@ main-is: Main.hs -- other-modules: -- other-extensions:- build-depends: base,+ build-depends: base <4.15, musicScroll hs-source-dirs: app default-language: Haskell2010
src/MusicScroll/DatabaseUtils.hs view
@@ -9,24 +9,24 @@ , getDBPath ) where -import Prelude hiding (null)-import Control.Applicative (Alternative(..))-import Control.Exception (evaluate)-import Control.Monad.Trans.Reader (ReaderT, ask)-import Control.Monad.IO.Class (MonadIO(..))-import Control.Concurrent.MVar-import Control.DeepSeq (rnf)-import Crypto.Hash (SHA1, hashUpdate, hashInit, hashFinalize)-import Data.ByteString (hGet, null)-import System.IO (withFile, IOMode(..))-import Data.Text (Text)-import Database.SQLite.Simple-import System.Environment.XDG.BaseDir (getUserCacheDir)-import Data.Coerce-import System.Directory (createDirectory)+import Prelude hiding (null)+import Control.Applicative (Alternative(..))+import Control.Exception (evaluate)+import Control.Monad.Trans.Reader (ReaderT, ask)+import Control.Monad.IO.Class (MonadIO(..))+import Control.Concurrent.MVar+import Control.DeepSeq (rnf)+import Crypto.Hash (SHA1, hashUpdate, hashInit, hashFinalize)+import Data.ByteString (hGet, null)+import System.IO (withFile, IOMode(..))+import Data.Text (Text)+import Database.SQLite.Simple+import System.Environment.XDG.BaseDir (getUserCacheDir)+import Data.Coerce+import System.Directory (createDirectory) -import MusicScroll.TrackInfo (TrackInfo(..), SongFilePath)-import MusicScroll.Providers.Utils (Lyrics(..))+import MusicScroll.TrackInfo (TrackInfo(..), SongFilePath)+import MusicScroll.Providers.Utils (Lyrics(..)) getDBLyrics :: SongFilePath -> ReaderT (MVar Connection) IO Lyrics getDBLyrics songUrl = snd <$> getDBSong songUrl
src/MusicScroll/EventLoop.hs view
@@ -2,6 +2,7 @@ import Control.Concurrent.Async import Control.Concurrent.STM+import Data.Foldable (traverse_) import MusicScroll.Pipeline @@ -16,7 +17,7 @@ eventLoop :: EventLoopState -> IO a eventLoop st = do newCallback <- atomically . readTBQueue $ evUiCallbacks st- maybe (pure ()) cancel (evEphemeral st)+ traverse_ cancel (evEphemeral st) newAsync <- async (newCallback (evAppState st)) let st' = st { evEphemeral = Just newAsync } eventLoop st'
src/MusicScroll/LyricsPipeline.hs view
@@ -25,6 +25,7 @@ import MusicScroll.Providers.MusiXMatch (musiXMatchInstance) data SongByOrigin = DB | Web deriving (Show)+ data SearchResult = GotLyric SongByOrigin TrackInfo Lyrics | ErrorOn ErrorCause deriving (Show)
src/MusicScroll/TrackSuplement.hs view
@@ -10,7 +10,6 @@ import MusicScroll.TrackInfo ( TrackInfo(..), TrackByPath(..) , TrackIdentifier, pattern OnlyMissingArtist ) - -- | Invariant, always a valid artist text. data TrackSuplement = TrackSuplement { tsTitle :: Text
src/MusicScroll/UIContext.hs view
@@ -6,7 +6,7 @@ import Data.Maybe (isNothing) import Data.Text as T import qualified GI.Gtk as Gtk-import Pipes+import Pipes import MusicScroll.TrackInfo (TrackInfo(..), TrackByPath(..)) import MusicScroll.Providers.Utils (Lyrics(..))
src/MusicScroll/Web.hs view
@@ -1,5 +1,4 @@-{-# language OverloadedStrings, NamedFieldPuns, RecordWildCards #-}-{-# language TypeApplications, DataKinds #-}+{-# language RecordWildCards, TypeApplications, DataKinds #-} module MusicScroll.Web (getLyricsFromWeb) where import Control.Exception (try)