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 +5/−0
- LICENSE +30/−0
- README.md +3/−0
- src/Media/Subtitles/SRT/Attoparsec.hs +46/−0
- srt-attoparsec.cabal +41/−0
+ 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