UNPKG

nodesu

Version:
104 lines (79 loc) 5.28 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: components/ReplayComponent.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: components/ReplayComponent.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>'use strict'; const Component = require('./Component') , ApiConstants = require('../Constants').API , ReplayData = require('../struct/ReplayData'); /** * Replay-related API component * @memberof module:Components * @example * api.replay * .get('1110141', '4222959', Nodesu.Mode.osu) * .then(console.log); */ class ReplayComponent extends Component { /** * Gets the replay. - If ratelimiting is enabled in the Client, this is rate limited under a different bucket with the more stricter conditions that is forced upon this endpoint! * @param {String} beatmapId The beatmap ID of the map. * @param {String} userId The user that played that beatmap. * @param {Mode} mode The gamemode of the play. * @param {LookupType} [lookupType] The lookup type, id/string to lookup the user. * @param {Mods} [mods] The bitwise combination for the mods. * @return {Promise&lt;Object|ReplayData>} An object with the `content` LZMA-stream data encoded as the encoding specified in `object`. If custom classes are enabled, a buffer of the encoded data will be provided by the `content` property. */ get(beatmapId, userId, mode, lookupType, mods) { if (!this.api.disableRateLimiting) { // needs to be cleaned up just like in the requester return new Promise((resolve, reject) => { this.api.ratelimiting.replayBucket.removeTokens(1, () => { this._get(beatmapId, userId, mode, lookupType, mods) .then(resolve) .catch(reject); }); }); } return this._get(beatmapId, userId, mode, lookupType, mods); } _get(beatmapId, userId, mode, type, mods) { let options = { b: beatmapId, u: userId, m: mode, type: type, mods: mods }; return this.api.requester.get(ApiConstants.REPLAY_GET, options, true, false, ReplayData); } } module.exports = ReplayComponent;</code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-Components.html">Components</a></li><li><a href="module-CustomClasses.html">CustomClasses</a></li><li><a href="module-Enums.html">Enums</a></li><li><a href="module-Errors.html">Errors</a></li></ul><h3>Classes</h3><ul><li><a href="Client.html">Client</a></li><li><a href="module-Components.BeatmapsComponent.html">BeatmapsComponent</a></li><li><a href="module-Components.MultiComponent.html">MultiComponent</a></li><li><a href="module-Components.ReplayComponent.html">ReplayComponent</a></li><li><a href="module-Components.ScoresComponent.html">ScoresComponent</a></li><li><a href="module-Components.UserComponent.html">UserComponent</a></li><li><a href="module-CustomClasses.Beatmap.html">Beatmap</a></li><li><a href="module-CustomClasses.BeatmapScore.html">BeatmapScore</a></li><li><a href="module-CustomClasses.Multi.html">Multi</a></li><li><a href="module-CustomClasses.MultiGame.html">MultiGame</a></li><li><a href="module-CustomClasses.MultiMatch.html">MultiMatch</a></li><li><a href="module-CustomClasses.MultiScore.html">MultiScore</a></li><li><a href="module-CustomClasses.ReplayData.html">ReplayData</a></li><li><a href="module-CustomClasses.Score.html">Score</a></li><li><a href="module-CustomClasses.User.html">User</a></li><li><a href="module-CustomClasses.UserEvent.html">UserEvent</a></li><li><a href="module-CustomClasses.UserScore.html">UserScore</a></li><li><a href="module-Errors.OsuApiError.html">OsuApiError</a></li><li><a href="Requester.html">Requester</a></li></ul><h3>Global</h3><ul><li><a href="global.html#ApprovalStatus">ApprovalStatus</a></li><li><a href="global.html#Converts">Converts</a></li><li><a href="global.html#Genre">Genre</a></li><li><a href="global.html#Language">Language</a></li><li><a href="global.html#LookupType">LookupType</a></li><li><a href="global.html#Mode">Mode</a></li><li><a href="global.html#Mods">Mods</a></li><li><a href="global.html#MultiScoringType">MultiScoringType</a></li><li><a href="global.html#MultiTeam">MultiTeam</a></li><li><a href="global.html#MultiTeamType">MultiTeamType</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Sat Apr 11 2020 14:41:31 GMT+1000 (GMT+10:00) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>