packages feed

srt-attoparsec (empty) → 0.1.0.0

raw patch · 5 files changed

+125/−0 lines, 5 filesdep +attoparsecdep +basedep +mtl

Dependencies added: attoparsec, base, mtl, simple-media-timestamp, simple-media-timestamp-attoparsec, srt, text

Files

+ ChangeLog.md view
@@ -0,0 +1,5 @@+# Changelog for srt-attoparsec++## v0.1.0.0++* Add attoparsec parser for srt.
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright Daniel Firth (c) 2021++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Daniel Firth nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ README.md view
@@ -0,0 +1,3 @@+# srt-attoparsec++Attoparsec parser for [srt](https://hackage.haskell.com/package/srt).
+ src/Media/Subtitles/SRT/Attoparsec.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE OverloadedStrings #-}++module Media.Subtitles.SRT.Attoparsec+  ( parseLine,+    parseSRT,+    parseDialog,+  )+where++import Control.Applicative+import Control.Monad.State+import Data.Attoparsec.Text+import Data.Text as T+import Media.Subtitles.SRT+import Media.Timestamp+import Media.Timestamp.Attoparsec++-- | Parse a single line.+--+-- @since 0.1.0.0+parseLine :: Parser Line+parseLine =+  Line <$> parseIndex <*> parseRangeA parseTimec <* endOfLine <*> parseDialog++parseIndex :: Parser Int+parseIndex = decimal <* endOfLine++-- | Parse a dialogue section+--+-- @since 0.1.0.0+parseDialog :: Parser Text+parseDialog = fmap (T.intercalate "\n") $ execStateT f []+  where+    f = do+      line <- lift $ takeWhile1 (not . isEndOfLine) <* endOfLine+      modify+        (<> [line])+      (lift endOfInput *> pure ())+        <|> (lift endOfLine *> pure ())+        <|> f++-- | Parse a whole subtitles file.+--+-- @since 0.1.0.0+parseSRT :: Parser SRT+parseSRT = SRT <$> many1 parseLine
+ srt-attoparsec.cabal view
@@ -0,0 +1,41 @@+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.34.4.+--+-- see: https://github.com/sol/hpack++name:           srt-attoparsec+version:        0.1.0.0+synopsis:       Attoparsec parser for the SRT format.+description:    Attoparsec parser for the SRT format.+category:       Media+author:         Daniel Firth+maintainer:     dan.firth@homotopic.tech+copyright:      2021 Daniel Firth+license:        MIT+license-file:   LICENSE+build-type:     Simple+extra-source-files:+    README.md+    ChangeLog.md++source-repository head+  type: git+  location: https://gitlab.com/homotopic-tech/srt-attoparsec++library+  exposed-modules:+      Media.Subtitles.SRT.Attoparsec+  other-modules:+      Paths_srt_attoparsec+  hs-source-dirs:+      src+  build-depends:+      attoparsec >=0.10 && <=0.15+    , base >=4.7 && <5+    , mtl >=1.0 && <=2.3+    , simple-media-timestamp ==0.2.*+    , simple-media-timestamp-attoparsec ==0.1.*+    , srt >=0.1.1 && <0.2+    , text >=1.0 && <1.3+  default-language: Haskell2010