0.4.0 • Published 5 years ago

@funniray/osu-parser v0.4.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

osu-parser

Build Status

A parser for Nodejs that converts osu files into javascript objects. Feel free to give it a try and post issues to help me improve it ;)

Installation

npm install osu-parser

Usage

  var parser = require('osu-parser');

  parser.parseFile('path/to/map.osu', function (err, beatmap) {
    console.log(beatmap);
  });

The resulting object

Simple key/value entries like this...

...
PreviewTime: 42860
...

...are directly reachable as properties :

console.log(beatmap['PreviewTime']);
// prints 42860

Additionnal beatmap properties :

TimingPoint properties

HitObject properties

Slider specific properties
Spinner specific properties

Methods

parseFile(filepath, callback)

Parse the given file. The callback returns (error, beatmap).

  var parser = require('osu-parser');

  parser.parseFile('path/to/map.osu', function (err, beatmap) {
    console.log(beatmap);
  });

parseStream(stream, callback)

Parse a stream containing a file content. The callback returns (error, beatmap).

  var parser = require('osu-parser');
  var fs     = require('fs');
  var stream = fs.createReadStream('path/to/map.osu');

  parser.parseStream(stream, function (err, beatmap) {
    console.log(beatmap);
  });

parseContent(content)

Parse the content of a file as a string or a buffer.

  var parser  = require('osu-parser');
  var fs      = require('fs');
  var content = fs.readFileSync('path/to/map.osu');

  var beatmap = parser.parseContent(content);

TODO

  • translate the samplesetId of timing points
  • parse events
  • make tests more reliable
  • add a synchronous version of parseFile
  • make it usable in a browser ? (not sure that would be useful)
  • ...
0.4.0

5 years ago