rx-akatsuki-pp

1.0.1 • Public • Published

Before we get started, this is a modified ojsama version to calculate Akatsuki's Relax PP Otherwise, everything is working like ojsama :)


this is free and unencumbered software released into the public

domain. refer to the attached UNLICENSE or http://unlicense.org/

pure javascript implementation of

https://github.com/Francesco149/oppai-ng intended to be easier

to use and set up for js developers as well as more portable

than straight up bindings at the cost of some performance

installation:


since this is a single-file library, you can just drop the file

into your project:

 
cd my/project
 
curl https://waa.ai/ojsama > rx-akatsuki-pp.js
 

it's also available as a npm package:

 
npm install rx-akatsuki-pp

you can find full documentation of the code at

http://hnng.moe/stuff/ojsama.html or simply read rx-akatsuki-pp.js

usage (nodejs):


(change ./rx-akatsuki-pp to rx-akatsuki-pp if you installed through npm)

 
var readline =  require("readline");
 
var osu =  require("./rx-akatsuki-pp");
 
  
 
var parser =  new  osu.parser();
 
readline.createInterface({
 
input: process.stdin, terminal: falsei
 
})
 
.on("line", parser.feed_line.bind(parser))
 
.on("close", function() {
 
console.log(osu.ppv2({map: parser.map}).toString());
 
});
 
 
$ curl https://osu.ppy.sh/osu/67079 | node minexample.js
 
133.24 pp (36.23 aim, 40.61 speed, 54.42 acc)
 

advanced usage (nodejs with acc, mods, combo...):


 
var readline =  require("readline");
 
var osu =  require("./rx-akatsuki-pp");
 
  
 
var mods = osu.modbits.none;
 
var acc_percent;
 
var combo;
 
var nmiss;
 
  
 
// get mods, acc, combo, misses from command line arguments
 
// format: +HDDT 95% 300x 1m
 
var argv = process.argv;
 
  
 
for (var i =  2; i < argv.length; ++i)
 
{
 
if (argv[i].startsWith("+")) {
 
mods = osu.modbits.from_string(argv[i].slice(1) ||  "");
 
}
 
  
 
else  if (argv[i].endsWith("%")) {
 
acc_percent =  parseFloat(argv[i]);
 
}
 
  
 
else  if (argv[i].endsWith("x")) {
 
combo =  parseInt(argv[i]);
 
}
 
  
 
else  if (argv[i].endsWith("m")) {
 
nmiss =  parseInt(argv[i]);
 
}
 
}
 
  
 
var parser =  new  osu.parser();
 
readline.createInterface({
 
input: process.stdin, terminal: false
 
})
 
.on("line", parser.feed_line.bind(parser))
 
.on("close", function() {
 
var map = parser.map;
 
console.log(map.toString());
 
  
 
if (mods) {
 
console.log("+"  + osu.modbits.string(mods));
 
}
 
  
 
var stars =  new  osu.diff().calc({map: map, mods: mods});
 
console.log(stars.toString());
 
  
 
var pp = osu.ppv2({
 
stars: stars,
 
combo: combo,
 
nmiss: nmiss,
 
acc_percent: acc_percent,
 
});
 
  
 
var max_combo = map.max_combo();
 
combo = combo || max_combo;
 
  
 
console.log(pp.computed_accuracy.toString());
 
console.log(combo +  "/"  + max_combo +  "x");
 
  
 
console.log(pp.toString());
 
});
 
 
$ curl https://osu.ppy.sh/osu/67079 | node example.js
 
TERRA - Tenjou no Hoshi ~Reimeiki~ [BMax] mapped by ouranhshc
 
  
 
AR5 OD8 CS4 HP8
 
262 circles, 69 sliders, 5 spinners
 
469 max combo
 
  
 
4.33 stars (2.09 aim, 2.19 speed)
 
100.00% 0x100 0x50 0xmiss
 
469/469x
 
133.24 pp (36.23 aim, 40.61 speed, 54.42 acc)
 
  
 
$ curl https://osu.ppy.sh/osu/67079 \
 
| node example.js +HDDT 98% 400x 1m
 
...
 
+HDDT
 
6.13 stars (2.92 aim, 3.11 speed)
 
97.92% 9x100 0x50 1xmiss
 
400/469x
 
266.01 pp (99.70 aim, 101.68 speed, 60.41 acc)
 

Install

npm i rx-akatsuki-pp

DownloadsWeekly Downloads

0

Version

1.0.1

License

Unlicense

Unpacked Size

54.3 kB

Total Files

6

Last publish

Collaborators

  • tienei