Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@qgustavor/ass-parser

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@qgustavor/ass-parser - npm Package Compare versions

Comparing version 0.2.2 to 0.3.0

11

index.js

@@ -55,2 +55,13 @@ import parseDescriptor from './src/descriptor.js'

const detectStringifyOptions = (text) => {
// If text includes '\r\n' assume it uses it for new lines
const lineBreak = text.includes('\r\n') ? '\r\n' : '\n'
// Use a Regex to detect which joiner the subtitle uses
const formatJoiner = text.match(/^Format: \S+$/m) ? ',' : ', '
return { lineBreak, formatJoiner }
}
export default parseAss
export { detectStringifyOptions }

6

package.json
{
"name": "@qgustavor/ass-parser",
"version": "0.2.2",
"version": "0.3.0",
"description": "Parse SSA/ASS subtitle format",

@@ -13,3 +13,4 @@ "author": "Eugene Sharygin <eush77@gmail.com>",

"scripts": {
"test": "tape test/*.js"
"test": "standard && tape test/*.js",
"test-fix": "standard --fix && tape test/*.js"
},

@@ -37,4 +38,5 @@ "files": [

"devDependencies": {
"standard": "^17.0.0",
"tape": "^5.5.3"
}
}

@@ -1,184 +0,15 @@

[![npm](https://nodei.co/npm/ass-parser.png)](https://nodei.co/npm/ass-parser/)
# ass-parser
[![Build Status][travis-badge]][travis] [![Dependency Status][david-badge]][david]
Parse SSA/ASS subtitle format. Forked from [eush77/ass-parser](https://github.com/eush77/ass-parser).
Parse SSA/ASS subtitle format.
## Changes:
[travis]: https://travis-ci.org/eush77/ass-parser
[travis-badge]: https://travis-ci.org/eush77/ass-parser.svg
[david]: https://david-dm.org/eush77/ass-parser
[david-badge]: https://david-dm.org/eush77/ass-parser.png
- All dependencies replaced with native modern JavaScript functions.
- ES Modules instead of CommonJS.
- Add `detectStringifyOptions` helper function.
## Example
## Demo
For the ASS subtitle below (from the [Wikipedia page](http://en.wikipedia.org/wiki/SubStation_Alpha))
[https://codepen.io/qgustavor/full/YzaRXeX](https://codepen.io/qgustavor/full/YzaRXeX)
```
[Script Info]
; This is a Sub Station Alpha v4 script.
; For Sub Station Alpha info and downloads,
; go to http://www.eswat.demon.co.uk/
Title: Neon Genesis Evangelion - Episode 26 (neutral Spanish)
Original Script: RoRo
Script Updated By: version 2.8.01
ScriptType: v4.00
Collisions: Normal
PlayResY: 600
PlayDepth: 0
Timer: 100,0000
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: DefaultVCD, Arial,28,11861244,11861244,11861244,-2147483640,-1,0,1,1,2,2,30,30,30,0,0
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.18,0:00:06.85,DefaultVCD, NTP,0000,0000,0000,,{\pos(400,570)}Like an angel with pity on nobody
```
`assParser(text, { comments: true })` returns the following:
```js
[
{
"section": "Script Info",
"body": [
{
"type": "comment",
"value": " This is a Sub Station Alpha v4 script."
},
{
"type": "comment",
"value": " For Sub Station Alpha info and downloads,"
},
{
"type": "comment",
"value": " go to http://www.eswat.demon.co.uk/"
},
{
"key": "Title",
"value": "Neon Genesis Evangelion - Episode 26 (neutral Spanish)"
},
{
"key": "Original Script",
"value": "RoRo"
},
{
"key": "Script Updated By",
"value": "version 2.8.01"
},
{
"key": "ScriptType",
"value": "v4.00"
},
{
"key": "Collisions",
"value": "Normal"
},
{
"key": "PlayResY",
"value": "600"
},
{
"key": "PlayDepth",
"value": "0"
},
{
"key": "Timer",
"value": "100,0000"
}
]
},
{
"section": "V4 Styles",
"body": [
{
"key": "Format",
"value": [
"Name",
"Fontname",
"Fontsize",
"PrimaryColour",
"SecondaryColour",
"TertiaryColour",
"BackColour",
"Bold",
"Italic",
"BorderStyle",
"Outline",
"Shadow",
"Alignment",
"MarginL",
"MarginR",
"MarginV",
"AlphaLevel",
"Encoding"
]
},
{
"key": "Style",
"value": {
"Name": "DefaultVCD",
"Fontname": "Arial",
"Fontsize": "28",
"PrimaryColour": "11861244",
"SecondaryColour": "11861244",
"TertiaryColour": "11861244",
"BackColour": "-2147483640",
"Bold": "-1",
"Italic": "0",
"BorderStyle": "1",
"Outline": "1",
"Shadow": "2",
"Alignment": "2",
"MarginL": "30",
"MarginR": "30",
"MarginV": "30",
"AlphaLevel": "0",
"Encoding": "0"
}
}
]
},
{
"section": "Events",
"body": [
{
"key": "Format",
"value": [
"Marked",
"Start",
"End",
"Style",
"Name",
"MarginL",
"MarginR",
"MarginV",
"Effect",
"Text"
]
},
{
"key": "Dialogue",
"value": {
"Marked": "Marked=0",
"Start": "0:00:01.18",
"End": "0:00:06.85",
"Style": "DefaultVCD",
"Name": "NTP",
"MarginL": "0000",
"MarginR": "0000",
"MarginV": "0000",
"Effect": "",
"Text": "{\\pos(400,570)}Like an angel with pity on nobody"
}
}
]
}
]
```
## API

@@ -188,3 +19,3 @@

Returns the parse tree.
Default export. Returns the parse tree.

@@ -199,5 +30,6 @@ Comments are ignored unless `options.comments` is set.

Subtitle is a list of sections, each of them has `section` and `body` properties. The `body` is a list of key-value bindings (descriptors), with `key` and `value` properties (`type == 'comment'` and `value` for comments).
Subtitle is a list of sections, each of them has `section` and `body` properties. The `body` is a list of key-value bindings (descriptors), with `key` and `value` properties (`type === 'comment'` and `value` for comments).
`value` can be one of the following:
- array if the descriptor key is `"Format"`;

@@ -207,10 +39,14 @@ - object if there is a `"Format"` descriptor above in the section;

### `detectStringifyOptions(text)`
Named export. Returns an options object to be passed to `stringify` in order to parse then stringify a subtitle with the minimal differences possible.
## References
- [Wikipedia page](http://en.wikipedia.org/wiki/SubStation_Alpha)
- [format specification](http://www.perlfu.co.uk/projects/asa/ass-specs.doc)
- [Format specification](http://www.perlfu.co.uk/projects/asa/ass-specs.doc)
## Related
- [ass-stringify](https://www.npmjs.com/packages/ass-stringify) - stringify SSA/ASS parse tree.
- [@qgustavor/ass-stringify](https://www.npmjs.com/package/@qgustavor/ass-stringify) - stringify SSA/ASS parse tree.

@@ -217,0 +53,0 @@ ## Install

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc