From 439ce5ef8565294631ae43744f79a9abbd8a572c Mon Sep 17 00:00:00 2001 From: Taevas <67872932+TTTaevas@users.noreply.github.com> Date: Wed, 17 Apr 2024 03:02:29 +0200 Subject: [PATCH] Update documentation for v1.0.2 --- docs/assets/search.js | 2 +- docs/classes/API.html | 235 +++++++++--------- docs/classes/APIError.html | 18 +- docs/enums/Beatmapset.Genre.html | 4 +- docs/enums/Beatmapset.Language.html | 4 +- docs/enums/Beatmapset.RankStatus.html | 4 +- docs/enums/Ruleset.html | 4 +- .../Beatmap.DifficultyAttributes.get.html | 2 +- ...eatmap.DifficultyAttributes.getFruits.html | 2 +- ...Beatmap.DifficultyAttributes.getMania.html | 2 +- .../Beatmap.DifficultyAttributes.getOsu.html | 2 +- ...Beatmap.DifficultyAttributes.getTaiko.html | 2 +- docs/functions/Beatmap.Pack.getMultiple.html | 2 +- docs/functions/Beatmap.Pack.getOne.html | 2 +- .../Beatmap.UserScore.getMultiple.html | 2 +- docs/functions/Beatmap.UserScore.getOne.html | 2 +- docs/functions/Beatmap.getMultiple.html | 2 +- docs/functions/Beatmap.getOne.html | 2 +- docs/functions/Beatmap.getScores.html | 2 +- docs/functions/Beatmap.getSoloScores.html | 2 +- docs/functions/Beatmap.lookup.html | 2 +- ...eatmapset.Discussion.Post.getMultiple.html | 2 +- ...eatmapset.Discussion.Vote.getMultiple.html | 2 +- .../Beatmapset.Discussion.getMultiple.html | 2 +- .../Beatmapset.Event.getMultiple.html | 2 +- docs/functions/Beatmapset.getOne.html | 2 +- docs/functions/Beatmapset.lookup.html | 2 +- docs/functions/Beatmapset.search.html | 2 +- .../Changelog.Build.getMultiple.html | 2 +- docs/functions/Changelog.Build.getOne.html | 2 +- docs/functions/Changelog.Build.lookup.html | 2 +- .../Changelog.UpdateStream.getAll.html | 2 +- .../Chat.Channel.createAnnouncement.html | 2 +- .../functions/Chat.Channel.createPrivate.html | 2 +- docs/functions/Chat.Channel.getAll.html | 2 +- docs/functions/Chat.Channel.getOne.html | 2 +- docs/functions/Chat.Channel.joinOne.html | 2 +- docs/functions/Chat.Channel.leaveOne.html | 2 +- docs/functions/Chat.Channel.markAsRead.html | 2 +- docs/functions/Chat.Message.getMultiple.html | 2 +- docs/functions/Chat.Message.send.html | 2 +- docs/functions/Chat.Message.sendPrivate.html | 2 +- docs/functions/Chat.keepAlive.html | 2 +- docs/functions/Comment.getMultiple.html | 2 +- docs/functions/Comment.getOne.html | 2 +- docs/functions/Event.getMultiple.html | 4 +- docs/functions/Forum.Post.edit.html | 2 +- docs/functions/Forum.Topic.create.html | 2 +- docs/functions/Forum.Topic.editTitle.html | 2 +- docs/functions/Forum.Topic.reply.html | 2 +- docs/functions/Forum.getTopicAndPosts.html | 2 +- docs/functions/Home.Search.getUsers.html | 2 +- docs/functions/Home.Search.getWikiPages.html | 2 +- .../Multiplayer.Match.getMultiple.html | 2 +- docs/functions/Multiplayer.Match.getOne.html | 2 +- .../Multiplayer.Room.Leader.getMultiple.html | 2 +- ...ltiplayer.Room.PlaylistItem.getScores.html | 2 +- .../Multiplayer.Room.getMultiple.html | 2 +- docs/functions/Multiplayer.Room.getOne.html | 2 +- docs/functions/NewsPost.getMultiple.html | 2 +- docs/functions/NewsPost.getOne.html | 2 +- docs/functions/Ranking.getCountry.html | 2 +- docs/functions/Ranking.getKudosu.html | 2 +- docs/functions/Ranking.getSpotlight.html | 2 +- docs/functions/Ranking.getUser.html | 2 +- docs/functions/Score.getReplay.html | 2 +- docs/functions/Spotlight.getAll.html | 2 +- docs/functions/User.getBeatmaps.html | 2 +- docs/functions/User.getFriends.html | 2 +- docs/functions/User.getKudosu.html | 2 +- docs/functions/User.getMostPlayed.html | 2 +- docs/functions/User.getMultiple.html | 2 +- docs/functions/User.getOne.html | 2 +- docs/functions/User.getRecentActivity.html | 2 +- docs/functions/User.getResourceOwner.html | 2 +- docs/functions/User.getScores.html | 2 +- docs/functions/WikiPage.getOne.html | 2 +- docs/functions/generateAuthorizationURL.html | 2 +- docs/interfaces/Beatmap-1.html | 6 +- docs/interfaces/Beatmap.Config.html | 10 +- .../Beatmap.DifficultyAttributes-1.html | 4 +- .../Beatmap.DifficultyAttributes.Fruits.html | 4 +- .../Beatmap.DifficultyAttributes.Mania.html | 6 +- .../Beatmap.DifficultyAttributes.Osu.html | 4 +- .../Beatmap.DifficultyAttributes.Taiko.html | 4 +- docs/interfaces/Beatmap.Extended-1.html | 6 +- .../Beatmap.Extended.WithFailtimes.html | 6 +- ...tmap.Extended.WithFailtimesBeatmapset.html | 6 +- ...eatmap.Extended.WithFailtimesMaxcombo.html | 6 +- .../Beatmap.Extended.WithMaxcombo.html | 6 +- docs/interfaces/Beatmap.Pack-1.html | 10 +- .../Beatmap.Pack.WithBeatmapset.html | 10 +- docs/interfaces/Beatmap.Playcount.html | 6 +- docs/interfaces/Beatmap.UserScore-1.html | 6 +- docs/interfaces/Beatmap.WithBeatmapset.html | 6 +- ...eatmap.WithBeatmapsetChecksumMaxcombo.html | 6 +- docs/interfaces/Beatmap.WithChecksum.html | 6 +- docs/interfaces/Beatmapset-1.html | 12 +- docs/interfaces/Beatmapset.Config.html | 10 +- docs/interfaces/Beatmapset.Discussion-1.html | 6 +- .../Beatmapset.Discussion.Post-1.html | 4 +- .../Beatmapset.Discussion.Vote-1.html | 4 +- ...eatmapset.Discussion.WithStartingpost.html | 6 +- docs/interfaces/Beatmapset.Event-1.html | 6 +- .../Beatmapset.Event.BeatmapOwnerChange.html | 4 +- .../Beatmapset.Event.Comment-1.html | 2 +- ....Event.Comment.WithDiscussionidPostid.html | 4 +- ...eatmapversionNewuseridNewuserusername.html | 4 +- ...nt.WithDiscussionidPostidNewvotevotes.html | 4 +- ...t.WithDiscussionidPostidNominatorsids.html | 4 +- ...ithDiscussionidPostidOldgenreNewgenre.html | 4 +- ...cussionidPostidOldlanguageNewlanguage.html | 4 +- ....WithDiscussionidPostidOldnsfwNewnsfw.html | 4 +- ...hDiscussionidPostidOldoffsetNewoffset.html | 4 +- ....WithDiscussionidPostidOldtagsNewtags.html | 4 +- ....Comment.WithDiscussionidPostidReason.html | 4 +- ...dPostidSourceuseridSourceuserusername.html | 4 +- .../Beatmapset.Event.Comment.WithModes.html | 4 +- .../Beatmapset.Event.DiscussionDelete.html | 6 +- ...atmapset.Event.DiscussionLockORUnlock.html | 4 +- ....DiscussionRestoreORKudosuRecalculate.html | 4 +- ...set.Event.DisqualifyORNominationReset.html | 4 +- .../Beatmapset.Event.GenreEdit.html | 4 +- ...Beatmapset.Event.IssueResolveOrReopen.html | 4 +- ...ORDenyORDiscussionPostDeleteORRestore.html | 4 +- .../Beatmapset.Event.KudosuGainORLost.html | 4 +- .../Beatmapset.Event.LanguageEdit.html | 4 +- docs/interfaces/Beatmapset.Event.Love.html | 4 +- .../interfaces/Beatmapset.Event.Nominate.html | 4 +- ...tmapset.Event.NominationResetReceived.html | 4 +- .../Beatmapset.Event.NsfwToggle.html | 4 +- .../Beatmapset.Event.OffsetEdit.html | 4 +- .../Beatmapset.Event.QualifyORRank.html | 6 +- .../Beatmapset.Event.RemoveFromLoved.html | 4 +- .../interfaces/Beatmapset.Event.TagsEdit.html | 4 +- docs/interfaces/Beatmapset.Extended-1.html | 14 +- docs/interfaces/Beatmapset.Extended.Plus.html | 22 +- .../Beatmapset.Extended.WithBeatmap.html | 14 +- ...atmapset.Extended.WithBeatmapPacktags.html | 14 +- docs/interfaces/Beatmapset.WithHype.html | 12 +- docs/interfaces/Beatmapset.WithUserHype.html | 12 +- docs/interfaces/Changelog.Build-1.html | 10 +- ...og.Build.WithChangelogentriesVersions.html | 10 +- .../Changelog.Build.WithUpdatestreams.html | 10 +- ...ild.WithUpdatestreamsChangelogentries.html | 10 +- docs/interfaces/Changelog.UpdateStream-1.html | 6 +- ...UpdateStream.WithLatestbuildUsercount.html | 8 +- docs/interfaces/Chat.Channel-1.html | 4 +- docs/interfaces/Chat.Channel.WithDetails.html | 8 +- docs/interfaces/Chat.Message-1.html | 6 +- docs/interfaces/Chat.UserSilence.html | 4 +- docs/interfaces/Comment-1.html | 13 +- docs/interfaces/Comment.Bundle-1.html | 6 +- ...Comment.Bundle.WithTotalToplevelcount.html | 6 +- docs/interfaces/Event-1.html | 4 +- docs/interfaces/Event.Achievement.html | 4 +- docs/interfaces/Event.BeatmapPlaycount.html | 4 +- docs/interfaces/Event.BeatmapsetApprove.html | 4 +- docs/interfaces/Event.BeatmapsetDelete.html | 4 +- docs/interfaces/Event.BeatmapsetRevive.html | 4 +- docs/interfaces/Event.BeatmapsetUpdate.html | 4 +- docs/interfaces/Event.BeatmapsetUpload.html | 4 +- docs/interfaces/Event.Rank.html | 8 +- docs/interfaces/Event.RankLost.html | 4 +- .../Event.SharedProperties.Beatmap.html | 6 +- .../Event.SharedProperties.Beatmapset.html | 6 +- .../Event.SharedProperties.User.html | 4 +- docs/interfaces/Event.UserSupportAgain.html | 4 +- docs/interfaces/Event.UserSupportFirst.html | 4 +- docs/interfaces/Event.UserSupportGift.html | 4 +- docs/interfaces/Event.UsernameChange.html | 6 +- docs/interfaces/Forum.Post-1.html | 4 +- docs/interfaces/Forum.Topic-1.html | 6 +- docs/interfaces/Multiplayer.Match-1.html | 6 +- docs/interfaces/Multiplayer.Match.Info.html | 4 +- docs/interfaces/Multiplayer.Room-1.html | 6 +- .../interfaces/Multiplayer.Room.Leader-1.html | 4 +- .../Multiplayer.Room.Leader.WithPosition.html | 4 +- .../Multiplayer.Room.PlaylistItem-1.html | 8 +- .../Multiplayer.Room.PlaylistItem.Scores.html | 8 +- docs/interfaces/NewsPost-1.html | 10 +- .../NewsPost.WithContentNavigation.html | 12 +- docs/interfaces/Ranking.Country.html | 8 +- docs/interfaces/Ranking.Spotlight.html | 4 +- docs/interfaces/Ranking.User.html | 6 +- docs/interfaces/Score-1.html | 12 +- docs/interfaces/Score.Legacy.html | 14 +- docs/interfaces/Score.Multiplayer.html | 10 +- docs/interfaces/Score.Solo.html | 14 +- docs/interfaces/Score.Statistics.html | 6 +- docs/interfaces/Score.WithMatch.html | 14 +- docs/interfaces/Score.WithUser.html | 14 +- docs/interfaces/Score.WithUserBeatmap.html | 14 +- .../Score.WithUserBeatmapBeatmapset.html | 16 +- docs/interfaces/Spotlight-1.html | 6 +- .../Spotlight.WithParticipantcount.html | 6 +- docs/interfaces/User-1.html | 4 +- docs/interfaces/User.Config.html | 6 +- docs/interfaces/User.Extended-1.html | 8 +- .../User.Extended.WithStatisticsrulesets.html | 8 +- docs/interfaces/User.KudosuHistory.html | 4 +- docs/interfaces/User.Statistics-1.html | 8 +- .../User.Statistics.WithCountryrank.html | 8 +- docs/interfaces/User.Statistics.WithUser.html | 8 +- docs/interfaces/User.WithCountry.html | 4 +- docs/interfaces/User.WithCountryCover.html | 4 +- ...thCountryCoverGroupsStatisticsSupport.html | 4 +- ...hCountryCoverGroupsStatisticsrulesets.html | 4 +- docs/interfaces/User.WithGroups.html | 4 +- docs/interfaces/User.WithKudosu.html | 4 +- .../WebSocket.Event.ChatChannelJoin.html | 4 +- .../WebSocket.Event.ChatChannelLeave.html | 4 +- .../WebSocket.Event.ChatMessageNew.html | 4 +- docs/interfaces/WikiPage-1.html | 10 +- .../modules/Beatmap.DifficultyAttributes.html | 2 +- docs/modules/Beatmap.Extended.html | 2 +- docs/modules/Beatmap.Pack.html | 2 +- docs/modules/Beatmap.UserScore.html | 2 +- docs/modules/Beatmap.html | 2 +- docs/modules/Beatmapset.Discussion.Post.html | 2 +- docs/modules/Beatmapset.Discussion.Vote.html | 2 +- docs/modules/Beatmapset.Discussion.html | 2 +- docs/modules/Beatmapset.Event.Comment.html | 2 +- docs/modules/Beatmapset.Event.html | 2 +- docs/modules/Beatmapset.Extended.html | 2 +- docs/modules/Beatmapset.html | 2 +- docs/modules/Changelog.Build.html | 2 +- docs/modules/Changelog.UpdateStream.html | 2 +- docs/modules/Changelog.html | 2 +- docs/modules/Chat.Channel.html | 2 +- docs/modules/Chat.Message.html | 2 +- docs/modules/Chat.html | 2 +- docs/modules/Comment.Bundle.html | 2 +- docs/modules/Comment.html | 2 +- docs/modules/Event.SharedProperties.html | 2 +- docs/modules/Event.html | 2 +- docs/modules/Forum.Post.html | 2 +- docs/modules/Forum.Topic.html | 2 +- docs/modules/Forum.html | 2 +- docs/modules/Home.Search.html | 2 +- docs/modules/Home.html | 2 +- docs/modules/Multiplayer.Match.html | 2 +- docs/modules/Multiplayer.Room.Leader.html | 2 +- .../Multiplayer.Room.PlaylistItem.html | 2 +- docs/modules/Multiplayer.Room.html | 2 +- docs/modules/Multiplayer.html | 2 +- docs/modules/NewsPost.html | 2 +- docs/modules/Ranking.html | 2 +- docs/modules/Score.html | 2 +- docs/modules/Spotlight.html | 2 +- docs/modules/User.Extended.html | 2 +- docs/modules/User.Statistics.html | 2 +- docs/modules/User.html | 2 +- docs/modules/WebSocket.Command.html | 2 +- docs/modules/WebSocket.Event.html | 2 +- docs/modules/WebSocket.html | 2 +- docs/modules/WikiPage.html | 2 +- .../Beatmap.DifficultyAttributes.Any.html | 2 +- docs/types/Beatmapset.Event.Any.html | 2 +- .../Beatmapset.Event.AnyBeatmapChange.html | 2 +- ...apset.Event.AnyBeatmapsetStatusChange.html | 2 +- .../Beatmapset.Event.AnyDiscussionChange.html | 2 +- docs/types/Event.Any.html | 2 +- docs/types/Event.AnyRecentActivity.html | 2 +- docs/types/Mod.html | 2 +- docs/types/Scope.html | 2 +- docs/types/WebSocket.Event.Any.html | 2 +- docs/variables/WebSocket.Command.chatEnd.html | 2 +- .../WebSocket.Command.chatStart.html | 2 +- package.json | 2 +- 270 files changed, 704 insertions(+), 698 deletions(-) diff --git a/docs/assets/search.js b/docs/assets/search.js index 75b55ef..f435126 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/classes/API.html b/docs/classes/API.html index ecd030f..c3de760 100644 --- a/docs/classes/API.html +++ b/docs/classes/API.html @@ -1,23 +1,30 @@ -API | osu-api-v2-js

You can create an API instance without directly providing an access_token by using the API's createAsync function! API.createAsync

-

Constructors

Properties

access_token +API | osu-api-v2-js

You can create an API instance without directly providing an access_token by using API.createAsync!

+

Constructors

  • Please use the API's createAsync method instead of the default constructor if you don't have at least an access_token! +

Constructors

  • Please use API.createAsync instead of the default constructor if you don't have at least an API.access_token! An API object without an access_token is pretty much useless!

    -

    Parameters

    • __namedParameters: {
          access_token?: string;
          client?: {
              id: number;
              secret: string;
          };
          expires?: Date;
          refresh_on_401?: boolean;
          refresh_on_expires?: boolean;
          refresh_token?: string;
          scopes?: Scope[];
          server?: string;
          timeout?: number;
          token_type?: string;
          user?: number;
          verbose?: "all" | "none" | "errors";
      }
      • Optional access_token?: string

        The token used in basically all requests!

        -
      • Optional client?: {
            id: number;
            secret: string;
        }

        The details of your application client, necessary for using the refresh_token

        -
        • id: number
        • secret: string
      • Optional expires?: Date

        The expiration date of your access_token (doesn't affect application behaviour)

        -
      • Optional refresh_on_401?: boolean

        If a 401 error is gotten from the server while it has a refresh token, should it use it and try the request again? (defaults to true)

        -
      • Optional refresh_on_expires?: boolean

        Should the application schedule a task to silently refresh the token right before the access_token expires? (defaults to true)

        -
      • Optional refresh_token?: string

        The token used to update your access_token and your refresh_token

        -
      • Optional scopes?: Scope[]

        The scopes your application have, assuming it acts as a user (doesn't affect application behaviour)

        -
      • Optional server?: string

        The URL of the API server the package contacts

        -
      • Optional timeout?: number

        How many seconds maximum should a request take, if there should be a maximum? (defaults to 20)

        -
      • Optional token_type?: string

        Should always be "Bearer"

        -
      • Optional user?: number

        The id of the user this application acts as, if any (doesn't affect application behaviour)

        -
      • Optional verbose?: "all" | "none" | "errors"

        How much stuff should the package log (defaults to none)

        -

    Returns API

Properties

access_token: string
client: {
    id: number;
    secret: string;
}

Type declaration

  • id: number
  • secret: string
expires: Date

The expiration date of your access_token

-
refresh_on_401: boolean

If true, upon failing a request due to a 401, it will use the refresh_token and retry the request

-
refresh_on_expires: boolean

If true, the application will silently use the refresh_token right before the access_token expires, as determined by expires

-
refresh_token?: string

Valid for an unknown amount of time, allows you to get a new token without going through the Authorization Code Grant! -Use the API's refreshToken function to do that

-
scopes?: Scope[]

The scopes your application have, assuming it acts as a user

-
server: string

The base url of the server where the requests should land (defaults to https://osu.ppy.sh)

+

Parameters

  • properties: Partial<API>

Returns API

Properties

_expires: Date = ...
_refresh_on_expires: boolean = true
_refresh_timeout?: Timeout
_refresh_token?: string
access_token: string = ""

The key that allows you to talk with the API

+
client: {
    id: number;
    secret: string;
} = ...

Type declaration

  • id: number
  • secret: string
refresh_on_401: boolean = true

If true, upon failing a request due to a 401, it will use the API.refresh_token if it exists (defaults to true)

+
retry: {
    delay: number;
    disabled: boolean;
    maximum_amount: number;
    on_automatic_refresh: boolean;
    on_status_codes: number[];
    on_timeout: boolean;
} = ...

Configure how this instance should behave when it comes to automatically retrying a request

+

Type declaration

  • delay: number

    In seconds, how long should it wait until retrying? (defaults to 2)

    +
  • disabled: boolean

    If true, doesn't retry under any circumstances (defaults to false)

    +
  • maximum_amount: number

    How many retries maximum before throwing an APIError (defaults to 5)

    +
  • on_automatic_refresh: boolean

    Should it retry a request upon successfully refreshing the token due to API.refresh_on_401 being true? (defaults to true)

    +
  • on_status_codes: number[]

    Upon failing a request and receiving a response, because of which received status code should the request be retried? (defaults to [429])

    +
  • on_timeout: boolean

    Should it retry a request if that request failed because it has been aborted by the API.timeout? (defaults to false)

    +
scopes?: Scope[]

The Scopes your application has, assuming it acts as a user

+
server: string = "https://osu.ppy.sh"

The base url of the server where the requests should land (defaults to https://osu.ppy.sh)

Remarks

For tokens, requests will be sent to the oauth/token route, other requests will be sent to the api/v2 route

-
timeout: number

The maximum amount of seconds requests should take before returning an answer (defaults to 20)

+
timeout: number = 20

The maximum amount of seconds requests should take before returning an answer (defaults to 20)

Remarks

0 means no maximum, no timeout

-
token_type: string

Should always be "Bearer"

-
user?: number

The osu! user id of the user who went through the Authorization Code Grant

-
verbose: "all" | "none" | "errors"

Which events should be logged (defaults to none)

-

Methods

  • Get a websocket to get WebSocket events from!

    +
token_type: string = "Bearer"

Should always be "Bearer"

+
user?: number

The osu! user id of the user who went through the Authorization Code Grant

+
verbose: "all" | "none" | "errors" = "none"

Which events should be logged (defaults to none)

+

Accessors

  • get expires(): Date
  • The expiration date of your access_token

    +

    Returns Date

  • set expires(date): void
  • Parameters

    • date: Date

    Returns void

  • get refresh_timeout(): undefined | Timeout
  • Returns undefined | Timeout

  • set refresh_timeout(timeout): void
  • Parameters

    • timeout: Timeout

    Returns void

  • get refresh_token(): undefined | string
  • Valid for an unknown amount of time, allows you to get a new token without going through the Authorization Code Grant again! +Use API.refreshToken to do that

    +

    Returns undefined | string

  • set refresh_token(token): void
  • Parameters

    • token: undefined | string

    Returns void

Methods

  • Get a websocket to get WebSocket events from!

    Parameters

    • server: string = ...

      Where the "notification websocket/server" is -(defaults to the api's server's protocol and a maximum of 1 subdomain being replaced by "wss://notify." (so usually wss://notify.ppy.sh))

      -

    Returns WebSocket

  • Set most of an api's properties, like tokens, token_type, scopes, expiration_date

    +(defaults to the API.server's protocol and a maximum of 1 subdomain being replaced by "wss://notify." (so usually wss://notify.ppy.sh))

    +

Returns WebSocket

Returns void

Beatmap Functions

getBeatmap: ((this, beatmap) => Promise<WithFailtimesBeatmapset>) = Beatmap.getOne

Get extensive beatmap data about whichever beatmap you want!

-

Type declaration

getBeatmapDifficultyAttributes: ((this, beatmap, mods?, ruleset?) => Promise<Beatmap.DifficultyAttributes.Any>) = Beatmap.DifficultyAttributes.get

Get various data about the difficulty of a beatmap!

+

Beatmap Functions

getBeatmap: ((this, beatmap) => Promise<WithFailtimesBeatmapset>) = Beatmap.getOne

Get extensive beatmap data about whichever beatmap you want!

+

Type declaration

getBeatmapDifficultyAttributes: ((this, beatmap, mods?, ruleset?) => Promise<Beatmap.DifficultyAttributes.Any>) = Beatmap.DifficultyAttributes.get

Get various data about the difficulty of a beatmap!

Type declaration

Remarks

You may want to use api.getBeatmapDifficultyAttributesOsu (or Taiko or whatever) instead for better type safety

-
getBeatmapDifficultyAttributesFruits: ((this, beatmap, mods?) => Promise<Fruits>) = Beatmap.DifficultyAttributes.getFruits

Get various data about the difficulty of a ctb beatmap!

-

Type declaration

    • (this, beatmap, mods?): Promise<Fruits>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Fruits>

getBeatmapDifficultyAttributesMania: ((this, beatmap, mods?) => Promise<Mania>) = Beatmap.DifficultyAttributes.getMania

Get various data about the difficulty of a mania beatmap!

-

Type declaration

    • (this, beatmap, mods?): Promise<Mania>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Mania>

getBeatmapDifficultyAttributesOsu: ((this, beatmap, mods?) => Promise<Osu>) = Beatmap.DifficultyAttributes.getOsu

Get various data about the difficulty of an osu! beatmap!

-

Type declaration

    • (this, beatmap, mods?): Promise<Osu>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Osu>

getBeatmapDifficultyAttributesTaiko: ((this, beatmap, mods?) => Promise<Taiko>) = Beatmap.DifficultyAttributes.getTaiko

Get various data about the difficulty of a taiko beatmap!

-

Type declaration

    • (this, beatmap, mods?): Promise<Taiko>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Taiko>

getBeatmapPack: ((this, pack, legacy_only?) => Promise<Pack>) = Beatmap.Pack.getOne

Get data about a Beatmap.Pack using its tag!

+
getBeatmapDifficultyAttributesFruits: ((this, beatmap, mods?) => Promise<Fruits>) = Beatmap.DifficultyAttributes.getFruits

Get various data about the difficulty of a ctb beatmap!

+

Type declaration

    • (this, beatmap, mods?): Promise<Fruits>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Fruits>

getBeatmapDifficultyAttributesMania: ((this, beatmap, mods?) => Promise<Mania>) = Beatmap.DifficultyAttributes.getMania

Get various data about the difficulty of a mania beatmap!

+

Type declaration

    • (this, beatmap, mods?): Promise<Mania>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Mania>

getBeatmapDifficultyAttributesOsu: ((this, beatmap, mods?) => Promise<Osu>) = Beatmap.DifficultyAttributes.getOsu

Get various data about the difficulty of an osu! beatmap!

+

Type declaration

    • (this, beatmap, mods?): Promise<Osu>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Osu>

getBeatmapDifficultyAttributesTaiko: ((this, beatmap, mods?) => Promise<Taiko>) = Beatmap.DifficultyAttributes.getTaiko

Get various data about the difficulty of a taiko beatmap!

+

Type declaration

    • (this, beatmap, mods?): Promise<Taiko>
    • Parameters

      • this: API
      • beatmap: number | Beatmap
      • Optional mods: number | string[] | Mod[]

      Returns Promise<Taiko>

getBeatmapPack: ((this, pack, legacy_only?) => Promise<Pack>) = Beatmap.Pack.getOne

Get data about a Beatmap.Pack using its tag!

Type declaration

    • (this, pack, legacy_only?): Promise<Pack>
    • Parameters

      • this: API
      • pack: string | Pack
      • legacy_only: boolean = false

      Returns Promise<Pack>

Remarks

Currently in https://osu.ppy.sh/beatmaps/packs, when hovering a pack, its URL with its tag should be preview by your browser

-
getBeatmapPacks: ((this, type?, cursor_string?) => Promise<{
    beatmap_packs: Pack[];
    cursor_string: string | null;
}>) = Beatmap.Pack.getMultiple

Get an Array of up to 100 Beatmap.Packs of a specific type!

-

Type declaration

    • (this, type?, cursor_string?): Promise<{
          beatmap_packs: Pack[];
          cursor_string: string | null;
      }>
    • Parameters

      • this: API
      • type: "standard" | "loved" | "artist" | "featured" | "tournament" | "chart" | "theme" = "standard"
      • Optional cursor_string: string

      Returns Promise<{
          beatmap_packs: Pack[];
          cursor_string: string | null;
      }>

getBeatmapScores: ((this, beatmap, config?) => Promise<Score.WithUser[]>) = Beatmap.getScores

Get the top scores of a beatmap!

+
getBeatmapPacks: ((this, type?, cursor_string?) => Promise<{
    beatmap_packs: Pack[];
    cursor_string: string | null;
}>) = Beatmap.Pack.getMultiple

Get an Array of up to 100 Beatmap.Packs of a specific type!

+

Type declaration

    • (this, type?, cursor_string?): Promise<{
          beatmap_packs: Pack[];
          cursor_string: string | null;
      }>
    • Parameters

      • this: API
      • type: "standard" | "loved" | "artist" | "featured" | "tournament" | "chart" | "theme" = "standard"
      • Optional cursor_string: string

      Returns Promise<{
          beatmap_packs: Pack[];
          cursor_string: string | null;
      }>

getBeatmapScores: ((this, beatmap, config?) => Promise<Score.WithUser[]>) = Beatmap.getScores

Get the top scores of a beatmap!

Type declaration

Remarks

Please check if mods and type seem to be supported or not by the API: https://osu.ppy.sh/docs/index.html#get-beatmap-scores

-
getBeatmapSoloScores: ((this, beatmap, config?) => Promise<Solo[]>) = Beatmap.getSoloScores

Get the top scores of a beatmap, in the "solo score" format lazer brought with it! +

getBeatmapSoloScores: ((this, beatmap, config?) => Promise<Solo[]>) = Beatmap.getSoloScores

Get the top scores of a beatmap, in the "solo score" format lazer brought with it! More info on GitHub if needed https://github.com/ppy/osu-infrastructure/blob/master/score-submission.md

Type declaration

Remarks

Please check if mods and type seem to be supported or not by the API: https://osu.ppy.sh/docs/index.html#get-beatmap-scores-non-legacy

-
getBeatmapUserScore: ((this, beatmap, user, config?) => Promise<UserScore>) = Beatmap.UserScore.getOne

Get the score on a beatmap made by a specific user (with specific mods and on a specific ruleset if needed)

+
getBeatmapUserScore: ((this, beatmap, user, config?) => Promise<UserScore>) = Beatmap.UserScore.getOne

Get the score on a beatmap made by a specific user (with specific mods and on a specific ruleset if needed)

Type declaration

Returns

An Object with the position of the score according to the specified Mods and Ruleset, and with the score itself

-
getBeatmapUserScores: ((this, beatmap, user, config?) => Promise<Legacy[]>) = Beatmap.UserScore.getMultiple

Get the scores on a beatmap made by a specific user (with the possibility to specify if the scores are on a convert)

-

Type declaration

getBeatmaps: ((this, beatmaps) => Promise<WithFailtimesMaxcombo[]>) = Beatmap.getMultiple

Get extensive beatmap data for up to 50 beatmaps at once!

-

Type declaration

lookupBeatmap: ((this, query) => Promise<WithFailtimesBeatmapset>) = Beatmap.lookup

Get extensive beatmap data about whichever beatmap you want!

-

Type declaration

    • (this, query): Promise<WithFailtimesBeatmapset>
    • Parameters

      • this: API
      • query: {
            checksum?: string;
            filename?: string;
            id?: number;
        }
        • Optional checksum?: string
        • Optional filename?: string
        • Optional id?: number

      Returns Promise<WithFailtimesBeatmapset>

Beatmapset Functions

getBeatmapset: ((this, beatmapset) => Promise<Plus>) = Beatmapset.getOne

Get extensive beatmapset data about whichever beatmapset you want!

-

Type declaration

getBeatmapsetDiscussionPosts: ((this, from?, types?, config?) => Promise<{
    beatmapsets: WithHype[];
    cursor_string: string | null;
    posts: Beatmapset.Discussion.Post[];
    users: User[];
}>) = Beatmapset.Discussion.Post.getMultiple

Get complex data about the posts of a beatmapset's discussion or of a user!

+
getBeatmapUserScores: ((this, beatmap, user, config?) => Promise<Legacy[]>) = Beatmap.UserScore.getMultiple

Get the scores on a beatmap made by a specific user (with the possibility to specify if the scores are on a convert)

+

Type declaration

getBeatmaps: ((this, beatmaps) => Promise<WithFailtimesMaxcombo[]>) = Beatmap.getMultiple

Get extensive beatmap data for up to 50 beatmaps at once!

+

Type declaration

lookupBeatmap: ((this, query) => Promise<WithFailtimesBeatmapset>) = Beatmap.lookup

Get extensive beatmap data about whichever beatmap you want!

+

Type declaration

    • (this, query): Promise<WithFailtimesBeatmapset>
    • Parameters

      • this: API
      • query: {
            checksum?: string;
            filename?: string;
            id?: number;
        }
        • Optional checksum?: string
        • Optional filename?: string
        • Optional id?: number

      Returns Promise<WithFailtimesBeatmapset>

Beatmapset Functions

getBeatmapset: ((this, beatmapset) => Promise<Plus>) = Beatmapset.getOne

Get extensive beatmapset data about whichever beatmapset you want!

+

Type declaration

getBeatmapsetDiscussionPosts: ((this, from?, types?, config?) => Promise<{
    beatmapsets: WithHype[];
    cursor_string: string | null;
    posts: Beatmapset.Discussion.Post[];
    users: User[];
}>) = Beatmapset.Discussion.Post.getMultiple

Get complex data about the posts of a beatmapset's discussion or of a user!

Type declaration

    • (this, from?, types?, config?): Promise<{
          beatmapsets: WithHype[];
          cursor_string: string | null;
          posts: Beatmapset.Discussion.Post[];
          users: User[];
      }>
    • Parameters

      • this: API
      • Optional from: {
            discussion?: number | Discussion;
            user?: number | User;
        }
        • Optional discussion?: number | Discussion
        • Optional user?: number | User
      • Optional types: ("first" | "reply" | "system")[]
      • Optional config: Beatmapset.Config

      Returns Promise<{
          beatmapsets: WithHype[];
          cursor_string: string | null;
          posts: Beatmapset.Discussion.Post[];
          users: User[];
      }>

Remarks

(2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

Returns

Relevant posts and info about them

-
getBeatmapsetDiscussionVotes: ((this, from?, score?, config?) => Promise<{
    cursor_string: string | null;
    discussions: Discussion[];
    users: WithGroups[];
    votes: Vote[];
}>) = Beatmapset.Discussion.Vote.getMultiple

Get complex data about the votes of a beatmapset's discussions or/and received/given by a specific user!

+
getBeatmapsetDiscussionVotes: ((this, from?, score?, config?) => Promise<{
    cursor_string: string | null;
    discussions: Discussion[];
    users: WithGroups[];
    votes: Vote[];
}>) = Beatmapset.Discussion.Vote.getMultiple

Get complex data about the votes of a beatmapset's discussions or/and received/given by a specific user!

Type declaration

    • (this, from?, score?, config?): Promise<{
          cursor_string: string | null;
          discussions: Discussion[];
          users: WithGroups[];
          votes: Vote[];
      }>
    • Parameters

      • this: API
      • Optional from: {
            discussion?: number | Discussion;
            vote_giver?: number | User;
            vote_receiver?: number | User;
        }
        • Optional discussion?: number | Discussion
        • Optional vote_giver?: number | User
        • Optional vote_receiver?: number | User
      • Optional score: 1 | -1
      • Optional config: Beatmapset.Config

      Returns Promise<{
          cursor_string: string | null;
          discussions: Discussion[];
          users: WithGroups[];
          votes: Vote[];
      }>

Remarks

(2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

Returns

Relevant votes and info about them

-
getBeatmapsetDiscussions: ((this, from?, filter?, config?) => Promise<{
    beatmaps: Beatmap.Extended[];
    beatmapsets: Beatmapset.Extended[];
    cursor_string: string | null;
    discussions: WithStartingpost[];
    included_discussions: WithStartingpost[];
    reviews_config: {
        max_blocks: number;
    };
    users: WithGroups[];
}>) = Beatmapset.Discussion.getMultiple

Get complex data about the discussion page of any beatmapet that you want!

+
getBeatmapsetDiscussions: ((this, from?, filter?, config?) => Promise<{
    beatmaps: Beatmap.Extended[];
    beatmapsets: Beatmapset.Extended[];
    cursor_string: string | null;
    discussions: WithStartingpost[];
    included_discussions: WithStartingpost[];
    reviews_config: {
        max_blocks: number;
    };
    users: WithGroups[];
}>) = Beatmapset.Discussion.getMultiple

Get complex data about the discussion page of any beatmapet that you want!

Type declaration

    • (this, from?, filter?, config?): Promise<{
          beatmaps: Beatmap.Extended[];
          beatmapsets: Beatmapset.Extended[];
          cursor_string: string | null;
          discussions: WithStartingpost[];
          included_discussions: WithStartingpost[];
          reviews_config: {
              max_blocks: number;
          };
          users: WithGroups[];
      }>
    • Parameters

      • this: API
      • Optional from: {
            beatmapset?: number | Beatmapset;
            status?: "all" | "ranked" | "qualified" | "disqualified" | "never_qualified";
            user?: number | User;
        }
        • Optional beatmapset?: number | Beatmapset
        • Optional status?: "all" | "ranked" | "qualified" | "disqualified" | "never_qualified"
        • Optional user?: number | User
      • Optional filter: {
            only_unresolved?: boolean;
            types?: ("suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review")[];
        }
        • Optional only_unresolved?: boolean
        • Optional types?: ("suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review")[]
      • Optional config: Beatmapset.Config

      Returns Promise<{
          beatmaps: Beatmap.Extended[];
          beatmapsets: Beatmapset.Extended[];
          cursor_string: string | null;
          discussions: WithStartingpost[];
          included_discussions: WithStartingpost[];
          reviews_config: {
              max_blocks: number;
          };
          users: WithGroups[];
      }>

Remarks

(2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

Returns

Relevant discussions and info about them

-
getBeatmapsetEvents: ((this, from?, types?, config?) => Promise<{
    events: Beatmapset.Event.Any[];
    users: WithGroups[];
}>) = Beatmapset.Event.getMultiple

Get complex data about the events of a beatmapset and the users involved with them!

+
getBeatmapsetEvents: ((this, from?, types?, config?) => Promise<{
    events: Beatmapset.Event.Any[];
    users: WithGroups[];
}>) = Beatmapset.Event.getMultiple

Get complex data about the events of a beatmapset and the users involved with them!

Type declaration

    • (this, from?, types?, config?): Promise<{
          events: Beatmapset.Event.Any[];
          users: WithGroups[];
      }>
    • Parameters

      • this: API
      • Optional from: {
            beatmapset?: number | Beatmapset;
            max_date?: Date;
            min_date?: Date;
            user?: number | User;
        }
        • Optional beatmapset?: number | Beatmapset
        • Optional max_date?: Date
        • Optional min_date?: Date
        • Optional user?: number | User
      • Optional types: ("nominate" | "love" | "remove_from_loved" | "qualify" | "disqualify" | "approve" | "rank" | "kudosu_allow" | "kudosu_deny" | "kudosu_gain" | "kudosu_lost" | "kudosu_recalculate" | "issue_resolve" | "issue_reopen" | "discussion_lock" | "discussion_unlock" | "discussion_delete" | "discussion_restore" | "discussion_post_delete" | "discussion_post_restore" | "nomination_reset" | "nomination_reset_received" | "genre_edit" | "language_edit" | "nsfw_toggle" | "offset_edit" | "tags_edit" | "beatmap_owner_change")[]
      • Optional config: Beatmapset.Config

      Returns Promise<{
          events: Beatmapset.Event.Any[];
          users: WithGroups[];
      }>

Remarks

(2024-03-11) For months now, the API's documentation says the response is likely to change, so beware, and also there's no documentation for this route in the API, so this is only the result of my interpretation of the website's code lol

Returns

Relevant events and users

-
lookupBeatmapset: ((this, beatmap) => Promise<Plus>) = Beatmapset.lookup

Get extensive data about a beatmapset by using a beatmap!

-

Type declaration

    • (this, beatmap): Promise<Plus>
    • Parameters

      Returns Promise<Plus>

searchBeatmapsets: ((this, query?) => Promise<{
    beatmapsets: WithBeatmapPacktags[];
    cursor_string: string | null;
    error: any | null;
    recommended_difficulty: number | null;
    total: number;
}>) = Beatmapset.search

Search for beatmapsets as if you were on the website or on lazer!

-

Type declaration

    • (this, query?): Promise<{
          beatmapsets: WithBeatmapPacktags[];
          cursor_string: string | null;
          error: any | null;
          recommended_difficulty: number | null;
          total: number;
      }>
    • Parameters

      • this: API
      • Optional query: {
            categories?: "Any" | "Ranked" | "Qualified" | "Loved" | "Favourites" | "Pending" | "WIP" | "Graveyard" | "My Maps";
            cursor_string?: string;
            extra?: ("must_have_video" | "must_have_storyboard")[];
            general?: ("Recommended difficulty" | "Include converted beatmaps" | "Subscribed mappers" | "Spotlighted beatmaps" | "Featured Artists")[];
            genre?: Unspecified | any[any] | Anime | Rock | Pop | Other | Novelty | any[any] | Electronic | Metal | Classical | Folk | Jazz;
            hide_explicit_content?: true;
            keywords?: string;
            language?: Unspecified | English | Japanese | Chinese | Instrumental | Korean | French | German | Swedish | Spanish | Italian | Russian | Polish | Other;
            mode?: Ruleset;
            played?: "Played" | "Unplayed";
            rank_achieved?: ("A" | "Silver SS" | "SS" | "Silver S" | "S" | "B" | "C" | "D")[];
            sort?: {
                by: "title" | "ranked" | "artist" | "difficulty" | "rating" | "plays" | "favourites" | "updated";
                in: "desc" | "asc";
            };
        }
        • Optional categories?: "Any" | "Ranked" | "Qualified" | "Loved" | "Favourites" | "Pending" | "WIP" | "Graveyard" | "My Maps"

          Filter in sets depending on their status or on their relation with the authorized user (defaults to all that have a leaderboard)

          +
lookupBeatmapset: ((this, beatmap) => Promise<Plus>) = Beatmapset.lookup

Get extensive data about a beatmapset by using a beatmap!

+

Type declaration

    • (this, beatmap): Promise<Plus>
    • Parameters

      Returns Promise<Plus>

searchBeatmapsets: ((this, query?) => Promise<{
    beatmapsets: WithBeatmapPacktags[];
    cursor_string: string | null;
    error: any | null;
    recommended_difficulty: number | null;
    total: number;
}>) = Beatmapset.search

Search for beatmapsets as if you were on the website or on lazer!

+

Type declaration

    • (this, query?): Promise<{
          beatmapsets: WithBeatmapPacktags[];
          cursor_string: string | null;
          error: any | null;
          recommended_difficulty: number | null;
          total: number;
      }>
    • Parameters

      • this: API
      • Optional query: {
            categories?: "Any" | "Ranked" | "Qualified" | "Loved" | "Favourites" | "Pending" | "WIP" | "Graveyard" | "My Maps";
            cursor_string?: string;
            extra?: ("must_have_video" | "must_have_storyboard")[];
            general?: ("Recommended difficulty" | "Include converted beatmaps" | "Subscribed mappers" | "Spotlighted beatmaps" | "Featured Artists")[];
            genre?: Unspecified | any[any] | Anime | Rock | Pop | Other | Novelty | any[any] | Electronic | Metal | Classical | Folk | Jazz;
            hide_explicit_content?: true;
            keywords?: string;
            language?: Unspecified | English | Japanese | Chinese | Instrumental | Korean | French | German | Swedish | Spanish | Italian | Russian | Polish | Other;
            mode?: Ruleset;
            played?: "Played" | "Unplayed";
            rank_achieved?: ("A" | "Silver SS" | "SS" | "Silver S" | "S" | "B" | "C" | "D")[];
            sort?: {
                by: "title" | "ranked" | "artist" | "difficulty" | "rating" | "plays" | "favourites" | "updated";
                in: "desc" | "asc";
            };
        }
        • Optional categories?: "Any" | "Ranked" | "Qualified" | "Loved" | "Favourites" | "Pending" | "WIP" | "Graveyard" | "My Maps"

          Filter in sets depending on their status or on their relation with the authorized user (defaults to all that have a leaderboard)

        • Optional cursor_string?: string

          The thing you've got from a previous request to get another page of results!

        • Optional extra?: ("must_have_video" | "must_have_storyboard")[]

          Should all sets have a video, a storyboard, maybe both at once?

        • Optional general?: ("Recommended difficulty" | "Include converted beatmaps" | "Subscribed mappers" | "Spotlighted beatmaps" | "Featured Artists")[]

          Various filters to activate

          @@ -196,36 +201,36 @@

          Returns

          Relevant events and users

        • Optional sort?: {
              by: "title" | "ranked" | "artist" | "difficulty" | "rating" | "plays" | "favourites" | "updated";
              in: "desc" | "asc";
          }

          Sort by what, in ascending/descending order

          • by: "title" | "ranked" | "artist" | "difficulty" | "rating" | "plays" | "favourites" | "updated"
          • in: "desc" | "asc"

      Returns Promise<{
          beatmapsets: WithBeatmapPacktags[];
          cursor_string: string | null;
          error: any | null;
          recommended_difficulty: number | null;
          total: number;
      }>

Remarks

This does not bypass the current osu!supporter requirement for certain filters

Returns

Relevant Beatmapsets that contain Beatmaps, and a cursor_string to allow you to look for more of the same!

-

Changelog Functions

getChangelogBuild: ((this, stream, build) => Promise<WithChangelogentriesVersions>) = Changelog.Build.getOne

Get details about the version/update/build of something related to osu!

-

Type declaration

getChangelogBuilds: ((this, stream?, range?, message_formats?) => Promise<WithUpdatestreamsChangelogentries[]>) = Changelog.Build.getMultiple

Get up to 21 versions/updates/builds!

+

Changelog Functions

getChangelogBuild: ((this, stream, build) => Promise<WithChangelogentriesVersions>) = Changelog.Build.getOne

Get details about the version/update/build of something related to osu!

+

Type declaration

getChangelogBuilds: ((this, stream?, range?, message_formats?) => Promise<WithUpdatestreamsChangelogentries[]>) = Changelog.Build.getMultiple

Get up to 21 versions/updates/builds!

Type declaration

    • (this, stream?, range?, message_formats?): Promise<WithUpdatestreamsChangelogentries[]>
    • Parameters

      • this: API
      • Optional stream: string
      • Optional range: {
            from?: string;
            to?: string | number;
        }
        • Optional from?: string

          The name of the build

        • Optional to?: string | number

          The name or the id of the build

          -
      • message_formats: ("html" | "markdown")[] = ...

      Returns Promise<WithUpdatestreamsChangelogentries[]>

getChangelogStreams: ((this) => Promise<WithLatestbuildUsercount[]>) = Changelog.UpdateStream.getAll

An effective way to get all available streams, as well as their latest version!

-

Type declaration

lookupChangelogBuild: ((this, changelog, message_formats?) => Promise<WithChangelogentriesVersions>) = Changelog.Build.lookup

Get details about the version/update/build of something related to osu!

-

Type declaration

Chat Functions

createChatAnnouncementChannel: ((this, channel, user_targets, message) => Promise<Channel>) = Chat.Channel.createAnnouncement

Create a new announcement!

+
  • message_formats: ("html" | "markdown")[] = ...
  • Returns Promise<WithUpdatestreamsChangelogentries[]>

    getChangelogStreams: ((this) => Promise<WithLatestbuildUsercount[]>) = Changelog.UpdateStream.getAll

    An effective way to get all available streams, as well as their latest version!

    +

    Type declaration

    lookupChangelogBuild: ((this, changelog, message_formats?) => Promise<WithChangelogentriesVersions>) = Changelog.Build.lookup

    Get details about the version/update/build of something related to osu!

    +

    Type declaration

    Chat Functions

    createChatAnnouncementChannel: ((this, channel, user_targets, message) => Promise<Channel>) = Chat.Channel.createAnnouncement

    Create a new announcement!

    Type declaration

      • (this, channel, user_targets, message): Promise<Channel>
      • Parameters

        • this: API
        • channel: {
              description: string;
              name: string;
          }
          • description: string
          • name: string
        • user_targets: (number | User)[]
        • message: string

        Returns Promise<Channel>

    Remarks

    From my understanding, this WILL 403 unless the user is kinda special

    Returns

    The newly created channel!

    -
    createChatPrivateChannel: ((this, user_target) => Promise<Channel>) = Chat.Channel.createPrivate

    Create/Open/Join a private messages chat channel!

    +
    createChatPrivateChannel: ((this, user_target) => Promise<Channel>) = Chat.Channel.createPrivate

    Create/Open/Join a private messages chat channel!

    Type declaration

      • (this, user_target): Promise<Channel>
      • Parameters

        • this: API
        • user_target: number | User

        Returns Promise<Channel>

    Returns

    The newly created channel!

    -
    getChatChannel: ((this, channel) => Promise<WithDetails>) = Chat.Channel.getOne

    Get a ChatChannel that you have joined, and the users in it if it is a private channel!

    +
    getChatChannel: ((this, channel) => Promise<WithDetails>) = Chat.Channel.getOne

    Get a ChatChannel that you have joined, and the users in it if it is a private channel!

    Type declaration

    Remarks

    Will 404 if the user has not joined the channel (use joinChatChannel for that)

    -
    getChatChannels: ((this) => Promise<Channel[]>) = Chat.Channel.getAll

    Get a list of all publicly joinable channels!

    -

    Type declaration

    getChatMessages: ((this, channel, limit?, since?, until?) => Promise<Message[]>) = Chat.Message.getMultiple

    Get the recent messages of a specific ChatChannel!

    -

    Type declaration

      • (this, channel, limit?, since?, until?): Promise<Message[]>
      • Parameters

        Returns Promise<Message[]>

    joinChatChannel: ((this, channel, user?) => Promise<WithDetails>) = Chat.Channel.joinOne

    Join a public or multiplayer ChatChannel, allowing you to interact with it!

    -

    Type declaration

    keepChatAlive: ((this, since?) => Promise<UserSilence[]>) = Chat.keepAlive

    Needs to be done periodically to reset chat activity timeout

    +
    getChatChannels: ((this) => Promise<Channel[]>) = Chat.Channel.getAll

    Get a list of all publicly joinable channels!

    +

    Type declaration

    getChatMessages: ((this, channel, limit?, since?, until?) => Promise<Message[]>) = Chat.Message.getMultiple

    Get the recent messages of a specific ChatChannel!

    +

    Type declaration

      • (this, channel, limit?, since?, until?): Promise<Message[]>
      • Parameters

        Returns Promise<Message[]>

    joinChatChannel: ((this, channel, user?) => Promise<WithDetails>) = Chat.Channel.joinOne

    Join a public or multiplayer ChatChannel, allowing you to interact with it!

    +

    Type declaration

    keepChatAlive: ((this, since?) => Promise<UserSilence[]>) = Chat.keepAlive

    Needs to be done periodically to reset chat activity timeout

    Type declaration

    Remarks

    Every 30 seconds is a good idea

    Returns

    A list of recent silences

    -
    leaveChatChannel: ((this, channel, user?) => Promise<void>) = Chat.Channel.leaveOne

    Leave/Close a public ChatChannel!

    -

    Type declaration

      • (this, channel, user?): Promise<void>
      • Parameters

        Returns Promise<void>

    markChatChannelAsRead: ((this, channel, message) => Promise<void>) = Chat.Channel.markAsRead

    Mark a certain channel as read up to a given message!

    -

    Type declaration

      • (this, channel, message): Promise<void>
      • Parameters

        Returns Promise<void>

    sendChatMessage: ((this, channel, message, is_action?) => Promise<Message>) = Chat.Message.send

    Send a message in a ChatChannel!

    -

    Type declaration

      • (this, channel, message, is_action?): Promise<Message>
      • Parameters

        • this: API
        • channel: number | Channel
        • message: string
        • is_action: boolean = false

        Returns Promise<Message>

    Returns

    The newly sent ChatMessage!

    -
    sendChatPrivateMessage: ((this, user_target, message, is_action?, uuid?) => Promise<{
        channel: Channel;
        message: Message;
    }>) = Chat.Message.sendPrivate

    Send a private message to someone!

    -

    Type declaration

      • (this, user_target, message, is_action?, uuid?): Promise<{
            channel: Channel;
            message: Message;
        }>
      • Parameters

        • this: API
        • user_target: number | User
        • message: string
        • is_action: boolean = false
        • Optional uuid: string

        Returns Promise<{
            channel: Channel;
            message: Message;
        }>

    Remarks

    You don't need to use createChatPrivateChannel before sending a message

    +
    leaveChatChannel: ((this, channel, user?) => Promise<void>) = Chat.Channel.leaveOne

    Leave/Close a public ChatChannel!

    +

    Type declaration

      • (this, channel, user?): Promise<void>
      • Parameters

        Returns Promise<void>

    markChatChannelAsRead: ((this, channel, message) => Promise<void>) = Chat.Channel.markAsRead

    Mark a certain channel as read up to a given message!

    +

    Type declaration

      • (this, channel, message): Promise<void>
      • Parameters

        Returns Promise<void>

    sendChatMessage: ((this, channel, message, is_action?) => Promise<Message>) = Chat.Message.send

    Send a message in a ChatChannel!

    +

    Type declaration

      • (this, channel, message, is_action?): Promise<Message>
      • Parameters

        • this: API
        • channel: number | Channel
        • message: string
        • is_action: boolean = false

        Returns Promise<Message>

    Returns

    The newly sent ChatMessage!

    +
    sendChatPrivateMessage: ((this, user_target, message, is_action?, uuid?) => Promise<{
        channel: Channel;
        message: Message;
    }>) = Chat.Message.sendPrivate

    Send a private message to someone!

    +

    Type declaration

      • (this, user_target, message, is_action?, uuid?): Promise<{
            channel: Channel;
            message: Message;
        }>
      • Parameters

        • this: API
        • user_target: number | User
        • message: string
        • is_action: boolean = false
        • Optional uuid: string

        Returns Promise<{
            channel: Channel;
            message: Message;
        }>

    Remarks

    You don't need to use createChatPrivateChannel before sending a message

    Returns

    The message you sent

    -

    Comment Functions

    getComment: ((this, comment) => Promise<Bundle>) = Comment.getOne

    Get a specific comment by using its id!

    -

    Type declaration

    getComments: ((this, from?, parent?, sort?) => Promise<WithTotalToplevelcount>) = Comment.getMultiple

    Get comments that meet any of your requirements!

    -

    Type declaration

      • (this, from?, parent?, sort?): Promise<WithTotalToplevelcount>
      • Parameters

        • this: API
        • Optional from: {
              id: number;
              type: "beatmapset" | "build" | "news_post";
          }
          • id: number
          • type: "beatmapset" | "build" | "news_post"
        • Optional parent: number | Comment
        • Optional sort: {
              after?: number | Comment;
              cursor?: null | {
                  created_at: Date;
                  id: number;
              };
              type?: "new" | "top" | "old";
          }
          • Optional after?: number | Comment
          • Optional cursor?: null | {
                created_at: Date;
                id: number;
            }
          • Optional type?: "new" | "top" | "old"

        Returns Promise<WithTotalToplevelcount>

    Event Functions

    getEvents: ((this, sort?, cursor_string?) => Promise<{
        cursor_string: string | null;
        events: Event.Any[];
    }>) = Event.getMultiple

    Get everything note-worthy that happened on osu! recently!

    -

    Type declaration

      • (this, sort?, cursor_string?): Promise<{
            cursor_string: string | null;
            events: Event.Any[];
        }>
      • Parameters

        • this: API
        • sort: "id_desc" | "id_asc" = "id_desc"
        • Optional cursor_string: string

        Returns Promise<{
            cursor_string: string | null;
            events: Event.Any[];
        }>

    Forum Functions

    createForumTopic: ((this, forum_id, title, text, poll?) => Promise<{
        post: Forum.Post;
        topic: Topic;
    }>) = Forum.Topic.create

    Create a new ForumTopic in the forum of your choice!

    +

    Comment Functions

    getComment: ((this, comment) => Promise<Bundle>) = Comment.getOne

    Get a specific comment by using its id!

    +

    Type declaration

    getComments: ((this, from?, parent?, sort?) => Promise<WithTotalToplevelcount>) = Comment.getMultiple

    Get comments that meet any of your requirements!

    +

    Type declaration

      • (this, from?, parent?, sort?): Promise<WithTotalToplevelcount>
      • Parameters

        • this: API
        • Optional from: {
              id: number;
              type: "beatmapset" | "build" | "news_post";
          }
          • id: number
          • type: "beatmapset" | "build" | "news_post"
        • Optional parent: number | Comment
        • Optional sort: {
              after?: number | Comment;
              cursor?: null | {
                  created_at: Date;
                  id: number;
              };
              type?: "new" | "top" | "old";
          }
          • Optional after?: number | Comment
          • Optional cursor?: null | {
                created_at: Date;
                id: number;
            }
          • Optional type?: "new" | "top" | "old"

        Returns Promise<WithTotalToplevelcount>

    Event Functions

    getEvents: ((this, sort?, cursor_string?) => Promise<{
        cursor_string: string | null;
        events: Event.Any[];
    }>) = Event.getMultiple

    Get everything note-worthy that happened on osu! recently!

    +

    Type declaration

      • (this, sort?, cursor_string?): Promise<{
            cursor_string: string | null;
            events: Event.Any[];
        }>
      • Parameters

        • this: API
        • sort: "id_desc" | "id_asc" = "id_desc"
        • Optional cursor_string: string

        Returns Promise<{
            cursor_string: string | null;
            events: Event.Any[];
        }>

    Forum Functions

    createForumTopic: ((this, forum_id, title, text, poll?) => Promise<{
        post: Forum.Post;
        topic: Topic;
    }>) = Forum.Topic.create

    Create a new ForumTopic in the forum of your choice!

    Type declaration

      • (this, forum_id, title, text, poll?): Promise<{
            post: Forum.Post;
            topic: Topic;
        }>
      • Parameters

        • this: API
        • forum_id: number
        • title: string
        • text: string
        • Optional poll: {
              hide_results?: boolean;
              length_days: number;
              max_options?: number;
              options: string[];
              title: string;
              vote_change?: boolean;
          }
          • Optional hide_results?: boolean

            Should the results of the poll be hidden while the voting period is still active? (defaults to false)

          • length_days: number

            Length of voting period in days, 0 means forever

          • Optional max_options?: number

            The maximum amount of votes per user! (defaults to 1)

            @@ -233,59 +238,59 @@

            Returns

            The message you sent

          • title: string
          • Optional vote_change?: boolean

            Do you allow users to change their vote? (defaults to false)

        Returns Promise<{
            post: Forum.Post;
            topic: Topic;
        }>

    Remarks

    Some users may not be allowed to do that, such as newly registered users, so this can 403 even with the right scopes

    Returns

    An object with the topic you've made, and its first initial post (which uses your text)

    -
    editForumPost: ((this, post, new_text) => Promise<Forum.Post>) = Forum.Post.edit

    Edit a ForumPost! Note that it can be the initial one of a ForumTopic!

    +
    editForumPost: ((this, post, new_text) => Promise<Forum.Post>) = Forum.Post.edit

    Edit a ForumPost! Note that it can be the initial one of a ForumTopic!

    Type declaration

    Returns

    The edited ForumPost

    -
    editForumTopicTitle: ((this, topic, new_title) => Promise<Topic>) = Forum.Topic.editTitle

    Edit the title of a Forum.Topic!

    +
    editForumTopicTitle: ((this, topic, new_title) => Promise<Topic>) = Forum.Topic.editTitle

    Edit the title of a Forum.Topic!

    Type declaration

      • (this, topic, new_title): Promise<Topic>
      • Parameters

        • this: API
        • topic: number | Topic
        • new_title: string

        Returns Promise<Topic>

    Remarks

    Use editForumPost if you wanna edit the post at the top of the topic

    Returns

    The edited ForumTopic

    -
    getForumTopicAndPosts: ((this, topic, config?) => Promise<{
        cursor_string: string | null;
        posts: Forum.Post[];
        topic: Topic;
    }>) = Forum.getTopicAndPosts

    Get a forum topic, as well as its main post (content) and the posts that were sent in it!

    +
    getForumTopicAndPosts: ((this, topic, config?) => Promise<{
        cursor_string: string | null;
        posts: Forum.Post[];
        topic: Topic;
    }>) = Forum.getTopicAndPosts

    Get a forum topic, as well as its main post (content) and the posts that were sent in it!

    Type declaration

      • (this, topic, config?): Promise<{
            cursor_string: string | null;
            posts: Forum.Post[];
            topic: Topic;
        }>
      • Parameters

        • this: API
        • topic: number | Topic
        • Optional config: {
              cursor_string?: string;
              first_post?: number | Forum.Post;
              limit?: number;
              sort?: "id_desc" | "id_asc";
          }
          • Optional cursor_string?: string

            Use a response's cursor_string with the same parameters to get the next "page" of results, so posts in this instance!

          • Optional first_post?: number | Forum.Post

            The id (or the post itself) of the first post to be returned in posts (irrelevant if using a cursor_string)

          • Optional limit?: number

            How many posts maximum, up to 50

          • Optional sort?: "id_desc" | "id_asc"

            "id_asc" to have the oldest post at the beginning of the posts array, "id_desc" to have the newest instead

        Returns Promise<{
            cursor_string: string | null;
            posts: Forum.Post[];
            topic: Topic;
        }>

    Remarks

    The oldest post of a topic is the text of a topic

    -
    replyForumTopic: ((this, topic, text) => Promise<Forum.Post>) = Forum.Topic.reply

    Make and send a Forum.Post in a Forum.Topic!

    +
    replyForumTopic: ((this, topic, text) => Promise<Forum.Post>) = Forum.Topic.reply

    Make and send a Forum.Post in a Forum.Topic!

    Type declaration

    Remarks

    Replying when the last post was made by the authorized user will likely cause the server to return a 403

    Returns

    The reply you've made, as a Forum.Post!

    -

    Home Functions

    searchUser: ((this, query, page?) => Promise<{
        data: User[];
        total: number;
    }>) = Home.Search.getUsers

    Look for a user like you would on the website!

    -

    Type declaration

      • (this, query, page?): Promise<{
            data: User[];
            total: number;
        }>
      • Parameters

        • this: API
        • query: string
        • page: number = 1

        Returns Promise<{
            data: User[];
            total: number;
        }>

    searchWiki: ((this, query, page?) => Promise<{
        data: WikiPage[];
        total: number;
    }>) = Home.Search.getWikiPages

    Look for a wiki page like you would on the website!

    -

    Type declaration

      • (this, query, page?): Promise<{
            data: WikiPage[];
            total: number;
        }>
      • Parameters

        • this: API
        • query: string
        • page: number = 1

        Returns Promise<{
            data: WikiPage[];
            total: number;
        }>

    Multiplayer Functions

    getMatch: ((this, match) => Promise<Match>) = Multiplayer.Match.getOne

    Get data about a lazer multiplayer room (realtime or playlists)!

    -

    Type declaration

      • (this, match): Promise<Match>
      • Parameters

        Returns Promise<Match>

    getMatches: ((this, query?) => Promise<Info[]>) = Multiplayer.Match.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Home Functions

    searchUser: ((this, query, page?) => Promise<{
        data: User[];
        total: number;
    }>) = Home.Search.getUsers

    Look for a user like you would on the website!

    +

    Type declaration

      • (this, query, page?): Promise<{
            data: User[];
            total: number;
        }>
      • Parameters

        • this: API
        • query: string
        • page: number = 1

        Returns Promise<{
            data: User[];
            total: number;
        }>

    searchWiki: ((this, query, page?) => Promise<{
        data: WikiPage[];
        total: number;
    }>) = Home.Search.getWikiPages

    Look for a wiki page like you would on the website!

    +

    Type declaration

      • (this, query, page?): Promise<{
            data: WikiPage[];
            total: number;
        }>
      • Parameters

        • this: API
        • query: string
        • page: number = 1

        Returns Promise<{
            data: WikiPage[];
            total: number;
        }>

    Multiplayer Functions

    getMatch: ((this, match) => Promise<Match>) = Multiplayer.Match.getOne

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Type declaration

      • (this, match): Promise<Match>
      • Parameters

        Returns Promise<Match>

    getMatches: ((this, query?) => Promise<Info[]>) = Multiplayer.Match.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    Type declaration

      • (this, query?): Promise<Info[]>
      • Parameters

        • this: API
        • Optional query: {
              first_match_in_array?: number | Info;
              limit?: number;
              sort?: "id_desc" | "id_asc";
          }
          • Optional first_match_in_array?: number | Info

            Which match should be featured at index 0 of the returned array? Will get one with a similar id if it is unavailable

            Remarks

            You can use this argument differently to get all matches before/after (depending of query.sort) a certain match, by adding +1/-1 to its id! So if you want all matches after match_id 10 with sorting is_desc, just have this argument be 10 + 1, or 11!

          • Optional limit?: number

            The maximum amount of elements returned in the array (defaults to 50)

          • Optional sort?: "id_desc" | "id_asc"

            "id_desc" has the biggest id (most recent start_time) at the beginning of the array, "id_asc" is the opposite (defaults to id_desc)

            -

        Returns Promise<Info[]>

    getPlaylistItemScores: ((this, item, limit?, sort?, cursor_string?) => Promise<Scores>) = Multiplayer.Room.PlaylistItem.getScores

    Get data about a lazer multiplayer room (realtime or playlists)!

    -

    Type declaration

      • (this, item, limit?, sort?, cursor_string?): Promise<Scores>
      • Parameters

        • this: API
        • item: PlaylistItem | {
              id: number;
              room_id: number;
          }
        • limit: number = 50
        • sort: "score_asc" | "score_desc" = "score_desc"
        • Optional cursor_string: string

        Returns Promise<Scores>

    getRoom: ((this, room) => Promise<Room>) = Multiplayer.Room.getOne

    Get data about a lazer multiplayer room (realtime or playlists)!

    -

    Type declaration

      • (this, room): Promise<Room>
      • Parameters

        Returns Promise<Room>

    getRoomLeaderboard: ((this, room) => Promise<{
        leaderboard: Leader[];
        user_score: WithPosition | null;
    }>) = Multiplayer.Room.Leader.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    -

    Type declaration

      • (this, room): Promise<{
            leaderboard: Leader[];
            user_score: WithPosition | null;
        }>
      • Parameters

        Returns Promise<{
            leaderboard: Leader[];
            user_score: WithPosition | null;
        }>

    getRooms: ((this, type, mode, limit?, sort?) => Promise<Room[]>) = Multiplayer.Room.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    -

    Type declaration

      • (this, type, mode, limit?, sort?): Promise<Room[]>
      • Parameters

        • this: API
        • type: "realtime" | "playlists"
        • mode: "all" | "active" | "ended" | "participated" | "owned"
        • limit: number = 10
        • sort: "ended" | "created" = "created"

        Returns Promise<Room[]>

    NewsPost Functions

    getNewsPost: ((this, post) => Promise<WithContentNavigation>) = NewsPost.getOne

    Get a NewsPost, its content, and the NewsPosts right before and right after it!

    -

    Type declaration

    getNewsPosts: ((this, year?) => Promise<NewsPost[]>) = NewsPost.getMultiple

    Get all the NewsPosts of a specific year!

    +

    Returns Promise<Info[]>

    getPlaylistItemScores: ((this, item, limit?, sort?, cursor_string?) => Promise<Scores>) = Multiplayer.Room.PlaylistItem.getScores

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Type declaration

      • (this, item, limit?, sort?, cursor_string?): Promise<Scores>
      • Parameters

        • this: API
        • item: PlaylistItem | {
              id: number;
              room_id: number;
          }
        • limit: number = 50
        • sort: "score_asc" | "score_desc" = "score_desc"
        • Optional cursor_string: string

        Returns Promise<Scores>

    getRoom: ((this, room) => Promise<Room>) = Multiplayer.Room.getOne

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Type declaration

      • (this, room): Promise<Room>
      • Parameters

        Returns Promise<Room>

    getRoomLeaderboard: ((this, room) => Promise<{
        leaderboard: Leader[];
        user_score: WithPosition | null;
    }>) = Multiplayer.Room.Leader.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Type declaration

      • (this, room): Promise<{
            leaderboard: Leader[];
            user_score: WithPosition | null;
        }>
      • Parameters

        Returns Promise<{
            leaderboard: Leader[];
            user_score: WithPosition | null;
        }>

    getRooms: ((this, type, mode, limit?, sort?) => Promise<Room[]>) = Multiplayer.Room.getMultiple

    Get data about a lazer multiplayer room (realtime or playlists)!

    +

    Type declaration

      • (this, type, mode, limit?, sort?): Promise<Room[]>
      • Parameters

        • this: API
        • type: "realtime" | "playlists"
        • mode: "all" | "active" | "ended" | "participated" | "owned"
        • limit: number = 10
        • sort: "ended" | "created" = "created"

        Returns Promise<Room[]>

    NewsPost Functions

    getNewsPost: ((this, post) => Promise<WithContentNavigation>) = NewsPost.getOne

    Get a NewsPost, its content, and the NewsPosts right before and right after it!

    +

    Type declaration

    getNewsPosts: ((this, year?) => Promise<NewsPost[]>) = NewsPost.getMultiple

    Get all the NewsPosts of a specific year!

    Type declaration

      • (this, year?): Promise<NewsPost[]>
      • Parameters

        • this: API
        • Optional year: number

        Returns Promise<NewsPost[]>

    Remarks

    If the specified year is invalid/has no news, it fallbacks to the default year

    -

    Other Functions

    getReplay: ((this, score) => Promise<string>) = Score.getReplay

    Get the replay for a score!

    +

    Other Functions

    getReplay: ((this, score) => Promise<string>) = Score.getReplay

    Get the replay for a score!

    Type declaration

      • (this, score): Promise<string>
      • Parameters

        Returns Promise<string>

    Returns

    The correctly encoded content of what would be a replay file (you can just fs.writeFileSync with it!)

    -
    getSpotlights: ((this) => Promise<Spotlight[]>) = Spotlight.getAll

    Get ALL legacy spotlights! (2009-2020, somewhat known as charts/ranking charts, available @ https://osu.ppy.sh/rankings/osu/charts)

    +
    getSpotlights: ((this) => Promise<Spotlight[]>) = Spotlight.getAll

    Get ALL legacy spotlights! (2009-2020, somewhat known as charts/ranking charts, available @ https://osu.ppy.sh/rankings/osu/charts)

    Type declaration

    Remarks

    The data for newer spotlights (2020-, somewhat known as seasons) can be obtained through getRoom() but you can't really get the id of those newer spotlights without going through the website's URLs (https://osu.ppy.sh/seasons/latest) as far as I know :(

    -

    Ranking Functions

    getCountryRanking: ((this, ruleset, page?) => Promise<Country>) = Ranking.getCountry

    Get the top countries of a specific ruleset!

    -

    Type declaration

    getKudosuRanking: ((this) => Promise<WithKudosu[]>) = Ranking.getKudosu

    Get the top 50 players who have the most total kudosu!

    -

    Type declaration

    getSpotlightRanking: ((this, ruleset, spotlight, filter?) => Promise<Ranking.Spotlight>) = Ranking.getSpotlight

    Get the rankings of a spotlight from 2009 to 2020 on a specific ruleset!

    -

    Type declaration

    getUserRanking: ((this, ruleset, type, config?) => Promise<Ranking.User>) = Ranking.getUser

    Get the top players of the game, with some filters!

    +

    Ranking Functions

    getCountryRanking: ((this, ruleset, page?) => Promise<Country>) = Ranking.getCountry

    Get the top countries of a specific ruleset!

    +

    Type declaration

    getKudosuRanking: ((this) => Promise<WithKudosu[]>) = Ranking.getKudosu

    Get the top 50 players who have the most total kudosu!

    +

    Type declaration

    getSpotlightRanking: ((this, ruleset, spotlight, filter?) => Promise<Ranking.Spotlight>) = Ranking.getSpotlight

    Get the rankings of a spotlight from 2009 to 2020 on a specific ruleset!

    +

    Type declaration

    getUserRanking: ((this, ruleset, type, config?) => Promise<Ranking.User>) = Ranking.getUser

    Get the top players of the game, with some filters!

    Type declaration

      • (this, ruleset, type, config?): Promise<Ranking.User>
      • Parameters

        • this: API
        • ruleset: Ruleset
        • type: "performance" | "score"
        • Optional config: {
              country?: string;
              filter?: "all" | "friends";
              page?: number;
              variant?: "4k" | "7k";
          }
          • Optional country?: string

            Only get players from a specific country, using its ISO 3166-1 alpha-2 country code! (France would be FR, United States US)

          • Optional filter?: "all" | "friends"

            What kind of players do you want to see? Keep in mind friends has no effect if no authorized user

          • Optional page?: number

            Imagine the array you get as a page, it can only have a maximum of 50 players, while 50 others may be on the next one

          • Optional variant?: "4k" | "7k"

            If type is performance and ruleset is mania, choose between 4k and 7k!

            -

        Returns Promise<Ranking.User>

    User Functions

    getFriends: ((this) => Promise<WithCountryCoverGroupsStatisticsSupport[]>) = User.getFriends

    Get user data of each friend of the authorized user

    -

    Type declaration

    getResourceOwner: ((this, ruleset?) => Promise<WithStatisticsrulesets>) = User.getResourceOwner

    Get extensive user data about the authorized user

    -

    Type declaration

    getUser: ((this, user, ruleset?) => Promise<User.Extended>) = User.getOne

    Get extensive user data about whoever you want!

    -

    Type declaration

    getUserBeatmaps: ((this, user, type, config?) => Promise<WithBeatmap[]>) = User.getBeatmaps

    Get beatmaps favourited or made by a user!

    -

    Type declaration

      • (this, user, type, config?): Promise<WithBeatmap[]>
      • Parameters

        • this: API
        • user: number | User
        • type: "pending" | "favourite" | "graveyard" | "guest" | "loved" | "nominated" | "ranked"
        • Optional config: User.Config

        Returns Promise<WithBeatmap[]>

    getUserKudosu: ((this, user, config?) => Promise<KudosuHistory[]>) = User.getKudosu

    Get data about the activity of a user kudosu-wise!

    -

    Type declaration

    getUserMostPlayed: ((this, user, config?) => Promise<Playcount[]>) = User.getMostPlayed

    Get the beatmaps most played by a user!

    -

    Type declaration

    getUserRecentActivity: ((this, user, config?) => Promise<AnyRecentActivity[]>) = User.getRecentActivity

    Get an array of Events of different types that relate to a user's activity during the last 31 days! (or 100 activities, whatever comes first)

    -

    Type declaration

    getUserScores: ((this, user, type, ruleset?, include?, config?) => Promise<WithUserBeatmapBeatmapset[]>) = User.getScores

    Get "notable" scores from a user

    -

    Type declaration

      • (this, user, type, ruleset?, include?, config?): Promise<WithUserBeatmapBeatmapset[]>
      • Parameters

        • this: API
        • user: number | User
        • type: "best" | "firsts" | "recent"
        • Optional ruleset: Ruleset
        • include: {
              fails?: boolean;
              lazer?: boolean;
          } = ...
          • Optional fails?: boolean
          • Optional lazer?: boolean
        • Optional config: User.Config

        Returns Promise<WithUserBeatmapBeatmapset[]>

    getUsers: ((this, users) => Promise<WithCountryCoverGroupsStatisticsrulesets[]>) = User.getMultiple

    Get user data for up to 50 users at once!

    -

    Type declaration

    WikiPage Functions

    getWikiPage: ((this, path, locale?) => Promise<WikiPage>) = WikiPage.getOne

    Get a wiki page!

    -

    Type declaration

      • (this, path, locale?): Promise<WikiPage>
      • Parameters

        • this: API
        • path: string
        • locale: string = "en"

        Returns Promise<WikiPage>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Ranking.User>

    User Functions

    getFriends: ((this) => Promise<WithCountryCoverGroupsStatisticsSupport[]>) = User.getFriends

    Get user data of each friend of the authorized user

    +

    Type declaration

    getResourceOwner: ((this, ruleset?) => Promise<WithStatisticsrulesets>) = User.getResourceOwner

    Get extensive user data about the authorized user

    +

    Type declaration

    getUser: ((this, user, ruleset?) => Promise<User.Extended>) = User.getOne

    Get extensive user data about whoever you want!

    +

    Type declaration

    getUserBeatmaps: ((this, user, type, config?) => Promise<WithBeatmap[]>) = User.getBeatmaps

    Get beatmaps favourited or made by a user!

    +

    Type declaration

      • (this, user, type, config?): Promise<WithBeatmap[]>
      • Parameters

        • this: API
        • user: number | User
        • type: "pending" | "favourite" | "graveyard" | "guest" | "loved" | "nominated" | "ranked"
        • Optional config: User.Config

        Returns Promise<WithBeatmap[]>

    getUserKudosu: ((this, user, config?) => Promise<KudosuHistory[]>) = User.getKudosu

    Get data about the activity of a user kudosu-wise!

    +

    Type declaration

    getUserMostPlayed: ((this, user, config?) => Promise<Playcount[]>) = User.getMostPlayed

    Get the beatmaps most played by a user!

    +

    Type declaration

    getUserRecentActivity: ((this, user, config?) => Promise<AnyRecentActivity[]>) = User.getRecentActivity

    Get an array of Events of different types that relate to a user's activity during the last 31 days! (or 100 activities, whatever comes first)

    +

    Type declaration

    getUserScores: ((this, user, type, ruleset?, include?, config?) => Promise<WithUserBeatmapBeatmapset[]>) = User.getScores

    Get "notable" scores from a user

    +

    Type declaration

      • (this, user, type, ruleset?, include?, config?): Promise<WithUserBeatmapBeatmapset[]>
      • Parameters

        • this: API
        • user: number | User
        • type: "best" | "firsts" | "recent"
        • Optional ruleset: Ruleset
        • include: {
              fails?: boolean;
              lazer?: boolean;
          } = ...
          • Optional fails?: boolean
          • Optional lazer?: boolean
        • Optional config: User.Config

        Returns Promise<WithUserBeatmapBeatmapset[]>

    getUsers: ((this, users) => Promise<WithCountryCoverGroupsStatisticsrulesets[]>) = User.getMultiple

    Get user data for up to 50 users at once!

    +

    Type declaration

    WikiPage Functions

    getWikiPage: ((this, path, locale?) => Promise<WikiPage>) = WikiPage.getOne

    Get a wiki page!

    +

    Type declaration

      • (this, path, locale?): Promise<WikiPage>
      • Parameters

        • this: API
        • path: string
        • locale: string = "en"

        Returns Promise<WikiPage>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/classes/APIError.html b/docs/classes/APIError.html index 287b0c8..e6e68ea 100644 --- a/docs/classes/APIError.html +++ b/docs/classes/APIError.html @@ -1,15 +1,15 @@ -APIError | osu-api-v2-js

    Class APIError

    If the API throws an error, it should always be an APIError!

    -

    Constructors

    constructor +APIError | osu-api-v2-js

    Class APIError

    If the API throws an error, it should always be an APIError!

    +

    Constructors

    • Parameters

      • message: string
      • server: string
      • endpoint: string
      • parameters: object
      • Optional status_code: number
      • Optional original_error: Error

      Returns APIError

    Properties

    endpoint: string

    The type of resource that was requested from the server

    -
    message: string

    The reason why things didn't go as expected

    -
    original_error?: Error

    The error that caused the api to throw an APIError in the first place, if there is one

    -
    parameters: object

    The filters that were used to specify what resource was wanted

    -
    server: string

    The server to which the request was sent

    -
    status_code?: number

    The status code that was returned by the server, if there is one

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Constructors

    • Parameters

      • message: string
      • server: string
      • endpoint: string
      • parameters: object
      • Optional status_code: number
      • Optional original_error: Error

      Returns APIError

    Properties

    endpoint: string

    The type of resource that was requested from the server

    +
    message: string

    The reason why things didn't go as expected

    +
    original_error?: Error

    The error that caused the api to throw an APIError in the first place, if there is one

    +
    parameters: object

    The filters that were used to specify what resource was wanted

    +
    server: string

    The server to which the request was sent

    +
    status_code?: number

    The status code that was returned by the server, if there is one

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/enums/Beatmapset.Genre.html b/docs/enums/Beatmapset.Genre.html index cca9059..ccc194d 100644 --- a/docs/enums/Beatmapset.Genre.html +++ b/docs/enums/Beatmapset.Genre.html @@ -1,4 +1,4 @@ -Genre | osu-api-v2-js

    Enumeration Members

    Anime +Genre | osu-api-v2-js

    Enumeration Members

    Enumeration Members

    Anime: 3
    Any: 0
    Classical: 12
    Electronic: 10
    Folk: 13
    Hip Hop: 9
    Jazz: 14
    Metal: 11
    Novelty: 7
    Other: 6
    Pop: 5
    Rock: 4
    Unspecified: 1
    Video Game: 2

    Generated using TypeDoc

    \ No newline at end of file +

    Enumeration Members

    Anime: 3
    Any: 0
    Classical: 12
    Electronic: 10
    Folk: 13
    Hip Hop: 9
    Jazz: 14
    Metal: 11
    Novelty: 7
    Other: 6
    Pop: 5
    Rock: 4
    Unspecified: 1
    Video Game: 2

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/enums/Beatmapset.Language.html b/docs/enums/Beatmapset.Language.html index 7c81da2..a775140 100644 --- a/docs/enums/Beatmapset.Language.html +++ b/docs/enums/Beatmapset.Language.html @@ -1,4 +1,4 @@ -Language | osu-api-v2-js

    Enumeration Members

    Any +Language | osu-api-v2-js

    Enumeration Members

    Enumeration Members

    Any: 0
    Chinese: 4
    English: 2
    French: 7
    German: 8
    Instrumental: 5
    Italian: 11
    Japanese: 3
    Korean: 6
    Other: 14
    Polish: 13
    Russian: 12
    Spanish: 10
    Swedish: 9
    Unspecified: 1

    Generated using TypeDoc

    \ No newline at end of file +

    Enumeration Members

    Any: 0
    Chinese: 4
    English: 2
    French: 7
    German: 8
    Instrumental: 5
    Italian: 11
    Japanese: 3
    Korean: 6
    Other: 14
    Polish: 13
    Russian: 12
    Spanish: 10
    Swedish: 9
    Unspecified: 1

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/enums/Beatmapset.RankStatus.html b/docs/enums/Beatmapset.RankStatus.html index 2a6c3d3..f08fc14 100644 --- a/docs/enums/Beatmapset.RankStatus.html +++ b/docs/enums/Beatmapset.RankStatus.html @@ -1,8 +1,8 @@ -RankStatus | osu-api-v2-js

    Enumeration RankStatus

    Enumeration Members

    Approved +RankStatus | osu-api-v2-js

    Enumeration RankStatus

    Enumeration Members

    Approved: 2
    Graveyard: -2
    Loved: 4
    Pending: 0
    Qualified: 3
    Ranked: 1
    Wip: -1

    Generated using TypeDoc

    \ No newline at end of file +

    Enumeration Members

    Approved: 2
    Graveyard: -2
    Loved: 4
    Pending: 0
    Qualified: 3
    Ranked: 1
    Wip: -1

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/enums/Ruleset.html b/docs/enums/Ruleset.html index 7ddf581..455e9cf 100644 --- a/docs/enums/Ruleset.html +++ b/docs/enums/Ruleset.html @@ -1,5 +1,5 @@ -Ruleset | osu-api-v2-js

    Enumeration Ruleset

    Enumeration Members

    fruits +Ruleset | osu-api-v2-js

    Enumeration Ruleset

    Enumeration Members

    Enumeration Members

    fruits: 2
    mania: 3
    osu: 0
    taiko: 1

    Generated using TypeDoc

    \ No newline at end of file +

    Enumeration Members

    fruits: 2
    mania: 3
    osu: 0
    taiko: 1

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.DifficultyAttributes.get.html b/docs/functions/Beatmap.DifficultyAttributes.get.html index 6dde2ab..51ff3dd 100644 --- a/docs/functions/Beatmap.DifficultyAttributes.get.html +++ b/docs/functions/Beatmap.DifficultyAttributes.get.html @@ -3,4 +3,4 @@
  • Optional mods: number | string[] | Mod[]

    Can be a bitset of mods, an array of mod acronyms, or an array of Mods (ignores mod settings) (defaults to No Mod)

  • Optional ruleset: Ruleset

    Useful to specify if the beatmap is a convert (defaults to the ruleset the beatmap was intended for)

  • Returns Promise<Beatmap.DifficultyAttributes.Any>

    Remarks

    You may want to use api.getBeatmapDifficultyAttributesOsu (or Taiko or whatever) instead for better type safety

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.DifficultyAttributes.getFruits.html b/docs/functions/Beatmap.DifficultyAttributes.getFruits.html index d7d2a52..c86e87b 100644 --- a/docs/functions/Beatmap.DifficultyAttributes.getFruits.html +++ b/docs/functions/Beatmap.DifficultyAttributes.getFruits.html @@ -1,4 +1,4 @@ getFruits | osu-api-v2-js
    • Get various data about the difficulty of a ctb beatmap!

      Parameters

      • this: API
      • beatmap: number | Beatmap

        The Beatmap in question

      • Optional mods: number | string[] | Mod[]

        Can be a bitset of mods, an array of mod acronyms, or an array of Mods (ignores mod settings) (defaults to No Mod)

        -

      Returns Promise<Fruits>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Fruits>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.DifficultyAttributes.getMania.html b/docs/functions/Beatmap.DifficultyAttributes.getMania.html index fd4bbe9..787c92a 100644 --- a/docs/functions/Beatmap.DifficultyAttributes.getMania.html +++ b/docs/functions/Beatmap.DifficultyAttributes.getMania.html @@ -1,4 +1,4 @@ getMania | osu-api-v2-js
    • Get various data about the difficulty of a mania beatmap!

      Parameters

      • this: API
      • beatmap: number | Beatmap

        The Beatmap in question

      • Optional mods: number | string[] | Mod[]

        Can be a bitset of mods, an array of mod acronyms, or an array of Mods (ignores mod settings) (defaults to No Mod)

        -

      Returns Promise<Mania>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Mania>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.DifficultyAttributes.getOsu.html b/docs/functions/Beatmap.DifficultyAttributes.getOsu.html index bd67e76..7aba19c 100644 --- a/docs/functions/Beatmap.DifficultyAttributes.getOsu.html +++ b/docs/functions/Beatmap.DifficultyAttributes.getOsu.html @@ -1,4 +1,4 @@ getOsu | osu-api-v2-js
    • Get various data about the difficulty of an osu! beatmap!

      Parameters

      • this: API
      • beatmap: number | Beatmap

        The Beatmap in question

      • Optional mods: number | string[] | Mod[]

        Can be a bitset of mods, an array of mod acronyms, or an array of Mods (ignores mod settings) (defaults to No Mod)

        -

      Returns Promise<Osu>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Osu>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.DifficultyAttributes.getTaiko.html b/docs/functions/Beatmap.DifficultyAttributes.getTaiko.html index ba2dfe8..94eed69 100644 --- a/docs/functions/Beatmap.DifficultyAttributes.getTaiko.html +++ b/docs/functions/Beatmap.DifficultyAttributes.getTaiko.html @@ -1,4 +1,4 @@ getTaiko | osu-api-v2-js
    • Get various data about the difficulty of a taiko beatmap!

      Parameters

      • this: API
      • beatmap: number | Beatmap

        The Beatmap in question

      • Optional mods: number | string[] | Mod[]

        Can be a bitset of mods, an array of mod acronyms, or an array of Mods (ignores mod settings) (defaults to No Mod)

        -

      Returns Promise<Taiko>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Taiko>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.Pack.getMultiple.html b/docs/functions/Beatmap.Pack.getMultiple.html index 047dccf..835f11b 100644 --- a/docs/functions/Beatmap.Pack.getMultiple.html +++ b/docs/functions/Beatmap.Pack.getMultiple.html @@ -1,4 +1,4 @@ getMultiple | osu-api-v2-js
    • Get an Array of up to 100 Beatmap.Packs of a specific type!

      Parameters

      • this: API
      • type: "standard" | "loved" | "artist" | "featured" | "tournament" | "chart" | "theme" = "standard"

        The type of the BeatmapPacks (defaults to standard)

      • Optional cursor_string: string

        Use a response's cursor_string with the same parameters to get the next "page" of results!

        -

      Returns Promise<{
          beatmap_packs: Pack[];
          cursor_string: string | null;
      }>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<{
        beatmap_packs: Pack[];
        cursor_string: string | null;
    }>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.Pack.getOne.html b/docs/functions/Beatmap.Pack.getOne.html index f398a6b..ca78700 100644 --- a/docs/functions/Beatmap.Pack.getOne.html +++ b/docs/functions/Beatmap.Pack.getOne.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<Pack>

    Remarks

    Currently in https://osu.ppy.sh/beatmaps/packs, when hovering a pack, its URL with its tag should be preview by your browser

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.UserScore.getMultiple.html b/docs/functions/Beatmap.UserScore.getMultiple.html index 0bb61ed..ce8a732 100644 --- a/docs/functions/Beatmap.UserScore.getMultiple.html +++ b/docs/functions/Beatmap.UserScore.getMultiple.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<Legacy[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Legacy[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.UserScore.getOne.html b/docs/functions/Beatmap.UserScore.getOne.html index b5b0052..d31076f 100644 --- a/docs/functions/Beatmap.UserScore.getOne.html +++ b/docs/functions/Beatmap.UserScore.getOne.html @@ -3,4 +3,4 @@
  • user: number | User

    The User who made the score

  • Optional config: Beatmap.Config

    Specify the score's ruleset, the score's mods, prevent a lazer score from being returned (type should not be supported)

  • Returns Promise<UserScore>

    An Object with the position of the score according to the specified Mods and Ruleset, and with the score itself

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.getMultiple.html b/docs/functions/Beatmap.getMultiple.html index f47ef21..3af1d1a 100644 --- a/docs/functions/Beatmap.getMultiple.html +++ b/docs/functions/Beatmap.getMultiple.html @@ -1,3 +1,3 @@ getMultiple | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithFailtimesMaxcombo[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.getOne.html b/docs/functions/Beatmap.getOne.html index 481e936..5865e3c 100644 --- a/docs/functions/Beatmap.getOne.html +++ b/docs/functions/Beatmap.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithFailtimesBeatmapset>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.getScores.html b/docs/functions/Beatmap.getScores.html index c2af94d..36073dd 100644 --- a/docs/functions/Beatmap.getScores.html +++ b/docs/functions/Beatmap.getScores.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<Score.WithUser[]>

    Remarks

    Please check if mods and type seem to be supported or not by the API: https://osu.ppy.sh/docs/index.html#get-beatmap-scores

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.getSoloScores.html b/docs/functions/Beatmap.getSoloScores.html index 9bdf70b..2c5ccba 100644 --- a/docs/functions/Beatmap.getSoloScores.html +++ b/docs/functions/Beatmap.getSoloScores.html @@ -3,4 +3,4 @@

    Parameters

    Returns Promise<Solo[]>

    Remarks

    Please check if mods and type seem to be supported or not by the API: https://osu.ppy.sh/docs/index.html#get-beatmap-scores-non-legacy

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmap.lookup.html b/docs/functions/Beatmap.lookup.html index adc4447..9046c7f 100644 --- a/docs/functions/Beatmap.lookup.html +++ b/docs/functions/Beatmap.lookup.html @@ -1,3 +1,3 @@ lookup | osu-api-v2-js
    • Get extensive beatmap data about whichever beatmap you want!

      Parameters

      • this: API
      • query: {
            checksum?: string;
            filename?: string;
            id?: number;
        }

        What to specify in order to find the right beatmap

        -
        • Optional checksum?: string
        • Optional filename?: string
        • Optional id?: number

      Returns Promise<WithFailtimesBeatmapset>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithFailtimesBeatmapset>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.Discussion.Post.getMultiple.html b/docs/functions/Beatmapset.Discussion.Post.getMultiple.html index d71b994..70e44ff 100644 --- a/docs/functions/Beatmapset.Discussion.Post.getMultiple.html +++ b/docs/functions/Beatmapset.Discussion.Post.getMultiple.html @@ -4,4 +4,4 @@
  • Optional config: Beatmapset.Config

    How many results maximum, how to sort them, which page of those, maybe a cursor_string...

  • Returns Promise<{
        beatmapsets: WithHype[];
        cursor_string: string | null;
        posts: Beatmapset.Discussion.Post[];
        users: User[];
    }>

    Relevant posts and info about them

    Remarks

    (2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.Discussion.Vote.getMultiple.html b/docs/functions/Beatmapset.Discussion.Vote.getMultiple.html index 41d5f7f..08993bb 100644 --- a/docs/functions/Beatmapset.Discussion.Vote.getMultiple.html +++ b/docs/functions/Beatmapset.Discussion.Vote.getMultiple.html @@ -4,4 +4,4 @@
  • Optional config: Beatmapset.Config

    How many results maximum, how to sort them, which page of those, maybe a cursor_string...

  • Returns Promise<{
        cursor_string: string | null;
        discussions: Discussion[];
        users: WithGroups[];
        votes: Vote[];
    }>

    Relevant votes and info about them

    Remarks

    (2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.Discussion.getMultiple.html b/docs/functions/Beatmapset.Discussion.getMultiple.html index 3207d96..4a03ec6 100644 --- a/docs/functions/Beatmapset.Discussion.getMultiple.html +++ b/docs/functions/Beatmapset.Discussion.getMultiple.html @@ -4,4 +4,4 @@
  • Optional config: Beatmapset.Config

    How many results maximum, how to sort them, which page of those, maybe a cursor_string...

  • Returns Promise<{
        beatmaps: Beatmap.Extended[];
        beatmapsets: Beatmapset.Extended[];
        cursor_string: string | null;
        discussions: WithStartingpost[];
        included_discussions: WithStartingpost[];
        reviews_config: {
            max_blocks: number;
        };
        users: WithGroups[];
    }>

    Relevant discussions and info about them

    Remarks

    (2024-03-11) For months now, the API's documentation says the response is likely to change, so beware

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.Event.getMultiple.html b/docs/functions/Beatmapset.Event.getMultiple.html index 353e71d..2d622ca 100644 --- a/docs/functions/Beatmapset.Event.getMultiple.html +++ b/docs/functions/Beatmapset.Event.getMultiple.html @@ -5,4 +5,4 @@

    Returns Promise<{
        events: Beatmapset.Event.Any[];
        users: WithGroups[];
    }>

    Relevant events and users

    Remarks

    (2024-03-11) For months now, the API's documentation says the response is likely to change, so beware, and also there's no documentation for this route in the API, so this is only the result of my interpretation of the website's code lol

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.getOne.html b/docs/functions/Beatmapset.getOne.html index 3c17e58..1836686 100644 --- a/docs/functions/Beatmapset.getOne.html +++ b/docs/functions/Beatmapset.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js
    • Get extensive beatmapset data about whichever beatmapset you want!

      Parameters

      • this: API
      • beatmapset: number | Beatmapset

        The beatmapset or the id of the beatmapset you're trying to get

        -

      Returns Promise<Plus>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Plus>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.lookup.html b/docs/functions/Beatmapset.lookup.html index 2b3832b..faff26d 100644 --- a/docs/functions/Beatmapset.lookup.html +++ b/docs/functions/Beatmapset.lookup.html @@ -1,3 +1,3 @@ lookup | osu-api-v2-js
    • Get extensive data about a beatmapset by using a beatmap!

      Parameters

      • this: API
      • beatmap: number | Beatmap

        A beatmap from the beatmapset you're looking for

        -

      Returns Promise<Plus>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Plus>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Beatmapset.search.html b/docs/functions/Beatmapset.search.html index e7aded8..6ae6eae 100644 --- a/docs/functions/Beatmapset.search.html +++ b/docs/functions/Beatmapset.search.html @@ -18,4 +18,4 @@
  • Optional sort?: {
        by: "title" | "ranked" | "artist" | "difficulty" | "rating" | "plays" | "favourites" | "updated";
        in: "desc" | "asc";
    }

    Sort by what, in ascending/descending order

  • Returns Promise<{
        beatmapsets: WithBeatmapPacktags[];
        cursor_string: string | null;
        error: any | null;
        recommended_difficulty: number | null;
        total: number;
    }>

    Relevant Beatmapsets that contain Beatmaps, and a cursor_string to allow you to look for more of the same!

    Remarks

    This does not bypass the current osu!supporter requirement for certain filters

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Changelog.Build.getMultiple.html b/docs/functions/Changelog.Build.getMultiple.html index f931b7d..4517020 100644 --- a/docs/functions/Changelog.Build.getMultiple.html +++ b/docs/functions/Changelog.Build.getMultiple.html @@ -4,4 +4,4 @@
  • message_formats: ("html" | "markdown")[] = ...

    changelog_entries will have a message property if markdown, message_html property if html (defaults to both)

    -
  • Returns Promise<WithUpdatestreamsChangelogentries[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithUpdatestreamsChangelogentries[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Changelog.Build.getOne.html b/docs/functions/Changelog.Build.getOne.html index 4c944f8..bccbf90 100644 --- a/docs/functions/Changelog.Build.getOne.html +++ b/docs/functions/Changelog.Build.getOne.html @@ -1,4 +1,4 @@ getOne | osu-api-v2-js
    • Get details about the version/update/build of something related to osu!

      Parameters

      • this: API
      • stream: string

        The name of the thing related to osu!, like lazer, web, cuttingedge, beta40, stable40

      • build: string

        The name of the version! Usually something like 2023.1026.0 for lazer, or 20230326 for stable

        -

      Returns Promise<WithChangelogentriesVersions>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithChangelogentriesVersions>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Changelog.Build.lookup.html b/docs/functions/Changelog.Build.lookup.html index cebc1e4..06d5dfd 100644 --- a/docs/functions/Changelog.Build.lookup.html +++ b/docs/functions/Changelog.Build.lookup.html @@ -1,4 +1,4 @@ lookup | osu-api-v2-js
    • Get details about the version/update/build of something related to osu!

      Parameters

      • this: API
      • changelog: string | number

        A stream name like lazer, a build version like 2023.1026.0, or the id of a build

      • message_formats: ("html" | "markdown")[] = ...

        changelog_entries will have a message property if markdown, message_html property if html (defaults to both)

        -

      Returns Promise<WithChangelogentriesVersions>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithChangelogentriesVersions>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Changelog.UpdateStream.getAll.html b/docs/functions/Changelog.UpdateStream.getAll.html index 26024fd..6ae7292 100644 --- a/docs/functions/Changelog.UpdateStream.getAll.html +++ b/docs/functions/Changelog.UpdateStream.getAll.html @@ -1,4 +1,4 @@ getAll | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.createAnnouncement.html b/docs/functions/Chat.Channel.createAnnouncement.html index 740e614..51d87a2 100644 --- a/docs/functions/Chat.Channel.createAnnouncement.html +++ b/docs/functions/Chat.Channel.createAnnouncement.html @@ -5,4 +5,4 @@

    Returns Promise<Channel>

    The newly created channel!

    Scope

    "chat.write_manage"

    Remarks

    From my understanding, this WILL 403 unless the user is kinda special

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.createPrivate.html b/docs/functions/Chat.Channel.createPrivate.html index bde4902..c5c0c1b 100644 --- a/docs/functions/Chat.Channel.createPrivate.html +++ b/docs/functions/Chat.Channel.createPrivate.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<Channel>

    The newly created channel!

    Scope

    "chat.read"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.getAll.html b/docs/functions/Chat.Channel.getAll.html index 777247b..b8f4f1b 100644 --- a/docs/functions/Chat.Channel.getAll.html +++ b/docs/functions/Chat.Channel.getAll.html @@ -1,3 +1,3 @@ getAll | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.getOne.html b/docs/functions/Chat.Channel.getOne.html index a0c29d7..5dd7a31 100644 --- a/docs/functions/Chat.Channel.getOne.html +++ b/docs/functions/Chat.Channel.getOne.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<WithDetails>

    Scope

    "chat.read"

    Remarks

    Will 404 if the user has not joined the channel (use joinChatChannel for that)

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.joinOne.html b/docs/functions/Chat.Channel.joinOne.html index 87288e8..4b9a394 100644 --- a/docs/functions/Chat.Channel.joinOne.html +++ b/docs/functions/Chat.Channel.joinOne.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<WithDetails>

    Scope

    "chat.write_manage"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.leaveOne.html b/docs/functions/Chat.Channel.leaveOne.html index 3b9b9c7..fb92a76 100644 --- a/docs/functions/Chat.Channel.leaveOne.html +++ b/docs/functions/Chat.Channel.leaveOne.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<void>

    Scope

    "chat.write_manage"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Channel.markAsRead.html b/docs/functions/Chat.Channel.markAsRead.html index 793b5f6..0e75524 100644 --- a/docs/functions/Chat.Channel.markAsRead.html +++ b/docs/functions/Chat.Channel.markAsRead.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<void>

    Scope

    "chat.read"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Message.getMultiple.html b/docs/functions/Chat.Message.getMultiple.html index 1220196..6eac80d 100644 --- a/docs/functions/Chat.Message.getMultiple.html +++ b/docs/functions/Chat.Message.getMultiple.html @@ -4,4 +4,4 @@
  • Optional since: number | Message

    Get the messages sent after this message

  • Optional until: number | Message

    Get the messages sent up to but not including this message

  • Returns Promise<Message[]>

    Scope

    "chat.read"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Message.send.html b/docs/functions/Chat.Message.send.html index cf60e77..c985447 100644 --- a/docs/functions/Chat.Message.send.html +++ b/docs/functions/Chat.Message.send.html @@ -4,4 +4,4 @@
  • is_action: boolean = false

    Is it a command? Like /me dances (defaults to false)

  • Returns Promise<Message>

    The newly sent ChatMessage!

    Scope

    "chat.write"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.Message.sendPrivate.html b/docs/functions/Chat.Message.sendPrivate.html index 0c13dbd..a318207 100644 --- a/docs/functions/Chat.Message.sendPrivate.html +++ b/docs/functions/Chat.Message.sendPrivate.html @@ -6,4 +6,4 @@

    Returns Promise<{
        channel: Channel;
        message: Message;
    }>

    The message you sent

    Scope

    "chat.write"

    Remarks

    You don't need to use createChatPrivateChannel before sending a message

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Chat.keepAlive.html b/docs/functions/Chat.keepAlive.html index fc51c6c..40cdbc2 100644 --- a/docs/functions/Chat.keepAlive.html +++ b/docs/functions/Chat.keepAlive.html @@ -3,4 +3,4 @@

    Returns Promise<UserSilence[]>

    A list of recent silences

    Scope

    "chat.read"

    Remarks

    Every 30 seconds is a good idea

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Comment.getMultiple.html b/docs/functions/Comment.getMultiple.html index be60361..39200f8 100644 --- a/docs/functions/Comment.getMultiple.html +++ b/docs/functions/Comment.getMultiple.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<WithTotalToplevelcount>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithTotalToplevelcount>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Comment.getOne.html b/docs/functions/Comment.getOne.html index 84c2102..4d09b57 100644 --- a/docs/functions/Comment.getOne.html +++ b/docs/functions/Comment.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js
    • Get a specific comment by using its id!

      Parameters

      • this: API
      • comment: number | Comment

        The comment in question

        -

      Returns Promise<Bundle>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Bundle>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Event.getMultiple.html b/docs/functions/Event.getMultiple.html index c7b4f6e..55b15cf 100644 --- a/docs/functions/Event.getMultiple.html +++ b/docs/functions/Event.getMultiple.html @@ -1,4 +1,4 @@ getMultiple | osu-api-v2-js

    Function getMultiple

    • Get everything note-worthy that happened on osu! recently!

      Parameters

      • this: API
      • sort: "id_desc" | "id_asc" = "id_desc"

        "id_asc" to have the oldest recent event first, "id_desc" to have the newest instead (defaults to id_desc)

        -
      • Optional cursor_string: string

        Use a response's cursor_string with the same parameters to get the next "page" of results, so posts in this instance!

        -

      Returns Promise<{
          cursor_string: string | null;
          events: Event.Any[];
      }>

    Generated using TypeDoc

    \ No newline at end of file +
  • Optional cursor_string: string

    Use a response's cursor_string with the same parameters to get the next "page" of results, so events in this instance!

    +
  • Returns Promise<{
        cursor_string: string | null;
        events: Event.Any[];
    }>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Forum.Post.edit.html b/docs/functions/Forum.Post.edit.html index cde1552..cceb534 100644 --- a/docs/functions/Forum.Post.edit.html +++ b/docs/functions/Forum.Post.edit.html @@ -3,4 +3,4 @@
  • new_text: string

    The new content of the post (replaces the old content)

  • Returns Promise<Forum.Post>

    The edited ForumPost

    Scope

    "forum.write"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Forum.Topic.create.html b/docs/functions/Forum.Topic.create.html index a8fcddc..0fb0f42 100644 --- a/docs/functions/Forum.Topic.create.html +++ b/docs/functions/Forum.Topic.create.html @@ -11,4 +11,4 @@

    Returns Promise<{
        post: Forum.Post;
        topic: Topic;
    }>

    An object with the topic you've made, and its first initial post (which uses your text)

    Scope

    "forum.write"

    Remarks

    Some users may not be allowed to do that, such as newly registered users, so this can 403 even with the right scopes

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Forum.Topic.editTitle.html b/docs/functions/Forum.Topic.editTitle.html index 76ec78b..03cec49 100644 --- a/docs/functions/Forum.Topic.editTitle.html +++ b/docs/functions/Forum.Topic.editTitle.html @@ -4,4 +4,4 @@

    Returns Promise<Topic>

    The edited ForumTopic

    Scope

    "forum.write"

    Remarks

    Use editForumPost if you wanna edit the post at the top of the topic

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Forum.Topic.reply.html b/docs/functions/Forum.Topic.reply.html index 594b85d..fd5f709 100644 --- a/docs/functions/Forum.Topic.reply.html +++ b/docs/functions/Forum.Topic.reply.html @@ -4,4 +4,4 @@

    Returns Promise<Forum.Post>

    The reply you've made, as a Forum.Post!

    Scope

    "forum.write"

    Remarks

    Replying when the last post was made by the authorized user will likely cause the server to return a 403

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Forum.getTopicAndPosts.html b/docs/functions/Forum.getTopicAndPosts.html index d0b9177..94636b1 100644 --- a/docs/functions/Forum.getTopicAndPosts.html +++ b/docs/functions/Forum.getTopicAndPosts.html @@ -6,4 +6,4 @@
  • Optional limit?: number

    How many posts maximum, up to 50

  • Optional sort?: "id_desc" | "id_asc"

    "id_asc" to have the oldest post at the beginning of the posts array, "id_desc" to have the newest instead

  • Returns Promise<{
        cursor_string: string | null;
        posts: Forum.Post[];
        topic: Topic;
    }>

    Remarks

    The oldest post of a topic is the text of a topic

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Home.Search.getUsers.html b/docs/functions/Home.Search.getUsers.html index fb90a50..f6261db 100644 --- a/docs/functions/Home.Search.getUsers.html +++ b/docs/functions/Home.Search.getUsers.html @@ -1,4 +1,4 @@ getUsers | osu-api-v2-js
    • Look for a user like you would on the website!

      Parameters

      • this: API
      • query: string

        What you would put in the searchbar

      • page: number = 1

        You normally get the first 20 results, but if page is 2, you'd get results 21 to 40 instead for example! (defaults to 1)

        -

      Returns Promise<{
          data: User[];
          total: number;
      }>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<{
        data: User[];
        total: number;
    }>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Home.Search.getWikiPages.html b/docs/functions/Home.Search.getWikiPages.html index 15bd587..863830f 100644 --- a/docs/functions/Home.Search.getWikiPages.html +++ b/docs/functions/Home.Search.getWikiPages.html @@ -1,4 +1,4 @@ getWikiPages | osu-api-v2-js
    • Look for a wiki page like you would on the website!

      Parameters

      • this: API
      • query: string

        What you would put in the searchbar

      • page: number = 1

        You normally get the first 50 results, but if page is 2, you'd get results 51 to 100 instead for example! (defaults to 1)

        -

      Returns Promise<{
          data: WikiPage[];
          total: number;
      }>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<{
        data: WikiPage[];
        total: number;
    }>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Match.getMultiple.html b/docs/functions/Multiplayer.Match.getMultiple.html index 1116a36..e4e3c48 100644 --- a/docs/functions/Multiplayer.Match.getMultiple.html +++ b/docs/functions/Multiplayer.Match.getMultiple.html @@ -5,4 +5,4 @@ by adding +1/-1 to its id! So if you want all matches after match_id 10 with sorting is_desc, just have this argument be 10 + 1, or 11!

  • Optional limit?: number

    The maximum amount of elements returned in the array (defaults to 50)

  • Optional sort?: "id_desc" | "id_asc"

    "id_desc" has the biggest id (most recent start_time) at the beginning of the array, "id_asc" is the opposite (defaults to id_desc)

    -
  • Returns Promise<Info[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Info[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Match.getOne.html b/docs/functions/Multiplayer.Match.getOne.html index 456cbc3..a70d918 100644 --- a/docs/functions/Multiplayer.Match.getOne.html +++ b/docs/functions/Multiplayer.Match.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js
    • Get data of a multiplayer lobby from the stable (non-lazer) client that have URLs with community/matches or mp

      Parameters

      • this: API
      • match: number | Info

        The id of a match can be found at the end of its URL

        -

      Returns Promise<Match>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Match>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Room.Leader.getMultiple.html b/docs/functions/Multiplayer.Room.Leader.getMultiple.html index a0f96d9..463cd82 100644 --- a/docs/functions/Multiplayer.Room.Leader.getMultiple.html +++ b/docs/functions/Multiplayer.Room.Leader.getMultiple.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<{
        leaderboard: Leader[];
        user_score: WithPosition | null;
    }>

    An object with the leaderboard, and the score and position of the authorized user under user_score

    Scope

    "public"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Room.PlaylistItem.getScores.html b/docs/functions/Multiplayer.Room.PlaylistItem.getScores.html index 682599c..d6d7bf2 100644 --- a/docs/functions/Multiplayer.Room.PlaylistItem.getScores.html +++ b/docs/functions/Multiplayer.Room.PlaylistItem.getScores.html @@ -5,4 +5,4 @@
  • Optional cursor_string: string

    Use a Multiplayer.Scores' params and cursor_string to get the next page (scores 51 to 100 for example)

  • Returns Promise<Scores>

    Remarks

    (2024-03-04) This may not work for rooms from before March 5th 2024, use at your own risk https://github.com/ppy/osu-web/issues/10725

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Room.getMultiple.html b/docs/functions/Multiplayer.Room.getMultiple.html index ffb566a..95f1072 100644 --- a/docs/functions/Multiplayer.Room.getMultiple.html +++ b/docs/functions/Multiplayer.Room.getMultiple.html @@ -4,4 +4,4 @@
  • limit: number = 10

    The maximum amount of rooms to return, defaults to 10

  • sort: "ended" | "created" = "created"

    Sort (where most recent is first) by creation date or end date, defaults to the creation date

  • Returns Promise<Room[]>

    Scope

    "public"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Multiplayer.Room.getOne.html b/docs/functions/Multiplayer.Room.getOne.html index d2b926a..fdd3ede 100644 --- a/docs/functions/Multiplayer.Room.getOne.html +++ b/docs/functions/Multiplayer.Room.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js
    • Get data about a lazer multiplayer room (realtime or playlists)!

      Parameters

      • this: API
      • room: number | Room

        The room or the id of the room, can be found at the end of its URL (after /multiplayer/rooms/)

        -

      Returns Promise<Room>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Room>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/NewsPost.getMultiple.html b/docs/functions/NewsPost.getMultiple.html index a71d437..8fe8631 100644 --- a/docs/functions/NewsPost.getMultiple.html +++ b/docs/functions/NewsPost.getMultiple.html @@ -1,4 +1,4 @@ getMultiple | osu-api-v2-js
    • Get all the NewsPosts of a specific year!

      Parameters

      • this: API
      • Optional year: number

        The year the posts were made (defaults to current year)

      Returns Promise<NewsPost[]>

      Remarks

      If the specified year is invalid/has no news, it fallbacks to the default year

      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/NewsPost.getOne.html b/docs/functions/NewsPost.getOne.html index 1721a30..21a9ed4 100644 --- a/docs/functions/NewsPost.getOne.html +++ b/docs/functions/NewsPost.getOne.html @@ -1,3 +1,3 @@ getOne | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithContentNavigation>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Ranking.getCountry.html b/docs/functions/Ranking.getCountry.html index eda0e0a..3775dc7 100644 --- a/docs/functions/Ranking.getCountry.html +++ b/docs/functions/Ranking.getCountry.html @@ -1,4 +1,4 @@ getCountry | osu-api-v2-js
    • Get the top countries of a specific ruleset!

      Parameters

      • this: API
      • ruleset: Ruleset

        On which Ruleset should the countries be compared?

      • page: number = 1

        Imagine the array you get as a page, it can only have a maximum of 50 countries, while 50 others may be on the next one (defaults to 1)

        -

      Returns Promise<Country>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Country>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Ranking.getKudosu.html b/docs/functions/Ranking.getKudosu.html index 8f1b187..87b5f3f 100644 --- a/docs/functions/Ranking.getKudosu.html +++ b/docs/functions/Ranking.getKudosu.html @@ -1,2 +1,2 @@ getKudosu | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    Returns Promise<WithKudosu[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Ranking.getSpotlight.html b/docs/functions/Ranking.getSpotlight.html index 4480987..e63a13c 100644 --- a/docs/functions/Ranking.getSpotlight.html +++ b/docs/functions/Ranking.getSpotlight.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<Ranking.Spotlight>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Ranking.Spotlight>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Ranking.getUser.html b/docs/functions/Ranking.getUser.html index 142e705..4cbc60b 100644 --- a/docs/functions/Ranking.getUser.html +++ b/docs/functions/Ranking.getUser.html @@ -6,4 +6,4 @@
  • Optional filter?: "all" | "friends"

    What kind of players do you want to see? Keep in mind friends has no effect if no authorized user

  • Optional page?: number

    Imagine the array you get as a page, it can only have a maximum of 50 players, while 50 others may be on the next one

  • Optional variant?: "4k" | "7k"

    If type is performance and ruleset is mania, choose between 4k and 7k!

    -
  • Returns Promise<Ranking.User>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Ranking.User>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Score.getReplay.html b/docs/functions/Score.getReplay.html index 78e331e..412d4fe 100644 --- a/docs/functions/Score.getReplay.html +++ b/docs/functions/Score.getReplay.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<string>

    The correctly encoded content of what would be a replay file (you can just fs.writeFileSync with it!)

    Scope

    "public"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/Spotlight.getAll.html b/docs/functions/Spotlight.getAll.html index 662860e..8128d66 100644 --- a/docs/functions/Spotlight.getAll.html +++ b/docs/functions/Spotlight.getAll.html @@ -1,4 +1,4 @@ getAll | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getBeatmaps.html b/docs/functions/User.getBeatmaps.html index fa79077..765388a 100644 --- a/docs/functions/User.getBeatmaps.html +++ b/docs/functions/User.getBeatmaps.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<WithBeatmap[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithBeatmap[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getFriends.html b/docs/functions/User.getFriends.html index 568fecc..1e6a01e 100644 --- a/docs/functions/User.getFriends.html +++ b/docs/functions/User.getFriends.html @@ -1,3 +1,3 @@ getFriends | osu-api-v2-js

    Function getFriends

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getKudosu.html b/docs/functions/User.getKudosu.html index 9e0c46f..22bc256 100644 --- a/docs/functions/User.getKudosu.html +++ b/docs/functions/User.getKudosu.html @@ -1,4 +1,4 @@ getKudosu | osu-api-v2-js

    Function getKudosu

    • Get data about the activity of a user kudosu-wise!

      Parameters

      • this: API
      • user: number | User

        The user in question

      • Optional config: User.Config

        Array limit & offset

        -

      Returns Promise<KudosuHistory[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<KudosuHistory[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getMostPlayed.html b/docs/functions/User.getMostPlayed.html index ed08d00..d172c98 100644 --- a/docs/functions/User.getMostPlayed.html +++ b/docs/functions/User.getMostPlayed.html @@ -1,4 +1,4 @@ getMostPlayed | osu-api-v2-js

    Function getMostPlayed

    • Get the beatmaps most played by a user!

      Parameters

      • this: API
      • user: number | User

        The user who played the beatmaps

      • Optional config: User.Config

        Array limit & offset

        -

      Returns Promise<Playcount[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<Playcount[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getMultiple.html b/docs/functions/User.getMultiple.html index 7856a92..365a6ba 100644 --- a/docs/functions/User.getMultiple.html +++ b/docs/functions/User.getMultiple.html @@ -1,3 +1,3 @@ getMultiple | osu-api-v2-js

    Function getMultiple

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithCountryCoverGroupsStatisticsrulesets[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getOne.html b/docs/functions/User.getOne.html index 9748a23..8d88d67 100644 --- a/docs/functions/User.getOne.html +++ b/docs/functions/User.getOne.html @@ -1,4 +1,4 @@ getOne | osu-api-v2-js
    • Get extensive user data about whoever you want!

      Parameters

      • this: API
      • user: string | number | User

        A user id, a username or a User object!

      • Optional ruleset: Ruleset

        The data should be relevant to which ruleset? (defaults to user's default Ruleset)

        -

      Returns Promise<User.Extended>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<User.Extended>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getRecentActivity.html b/docs/functions/User.getRecentActivity.html index 4e10fb2..ca356f9 100644 --- a/docs/functions/User.getRecentActivity.html +++ b/docs/functions/User.getRecentActivity.html @@ -1,4 +1,4 @@ getRecentActivity | osu-api-v2-js

    Function getRecentActivity

    • Get an array of Events of different types that relate to a user's activity during the last 31 days! (or 100 activities, whatever comes first)

      Parameters

      • this: API
      • user: number | User

        The user in question

      • Optional config: User.Config

        Array limit & offset

        -

      Returns Promise<AnyRecentActivity[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<AnyRecentActivity[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getResourceOwner.html b/docs/functions/User.getResourceOwner.html index 8cfb7c6..38d6700 100644 --- a/docs/functions/User.getResourceOwner.html +++ b/docs/functions/User.getResourceOwner.html @@ -1,4 +1,4 @@ getResourceOwner | osu-api-v2-js

    Function getResourceOwner

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/User.getScores.html b/docs/functions/User.getScores.html index d3144b0..385a1d0 100644 --- a/docs/functions/User.getScores.html +++ b/docs/functions/User.getScores.html @@ -4,4 +4,4 @@
  • Optional ruleset: Ruleset

    The Ruleset the scores were made in (defaults to user's default Ruleset)

  • include: {
        fails?: boolean;
        lazer?: boolean;
    } = ...

    Do you also want lazer scores and failed scores? (defaults to true for lazer & false for fails)

  • Optional config: User.Config

    Array limit & offset

    -
  • Returns Promise<WithUserBeatmapBeatmapset[]>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WithUserBeatmapBeatmapset[]>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/WikiPage.getOne.html b/docs/functions/WikiPage.getOne.html index 92188ea..b644fff 100644 --- a/docs/functions/WikiPage.getOne.html +++ b/docs/functions/WikiPage.getOne.html @@ -2,4 +2,4 @@

    Parameters

    Returns Promise<WikiPage>

    Generated using TypeDoc

    \ No newline at end of file +

    Returns Promise<WikiPage>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/functions/generateAuthorizationURL.html b/docs/functions/generateAuthorizationURL.html index bb20dd3..fbf93d5 100644 --- a/docs/functions/generateAuthorizationURL.html +++ b/docs/functions/generateAuthorizationURL.html @@ -4,4 +4,4 @@
  • scopes: Scope[]

    What you want to do with/as the user

  • server: string = "https://osu.ppy.sh"

    The API server (defaults to https://osu.ppy.sh, leave as is if you don't know exactly what you're doing)

  • Returns string

    The link people should click on

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap-1.html b/docs/interfaces/Beatmap-1.html index 8fc9605..83844c4 100644 --- a/docs/interfaces/Beatmap-1.html +++ b/docs/interfaces/Beatmap-1.html @@ -1,4 +1,4 @@ -Beatmap | osu-api-v2-js

    Interface Beatmap

    interface Beatmap {
        beatmapset_id: number;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset_id +Beatmap | osu-api-v2-js

    Interface Beatmap

    interface Beatmap {
        beatmapset_id: number;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset_id: number
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset_id: number
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Config.html b/docs/interfaces/Beatmap.Config.html index 45c08eb..2b0a507 100644 --- a/docs/interfaces/Beatmap.Config.html +++ b/docs/interfaces/Beatmap.Config.html @@ -1,11 +1,11 @@ Config | osu-api-v2-js

    An interface to tell the API what kind of scores should be in an array returned by a function

    Remarks

    Please note that some properties will be ignored by certain functions, check this in case of doubt: https://osu.ppy.sh/docs/index.html#beatmaps

    -
    interface Config {
        legacy_only?: boolean;
        mods?: string[];
        ruleset?: Ruleset;
        type?: string;
    }

    Properties

    interface Config {
        legacy_only?: boolean;
        mods?: string[];
        ruleset?: Ruleset;
        type?: string;
    }

    Properties

    legacy_only?: boolean

    Exclude lazer scores? (defaults to false)

    -
    mods?: string[]

    The Mods used to make the score, you can simply use ["NM"] to filter out scores with mods (defaults to any mods, no scores filtered)

    -
    ruleset?: Ruleset

    The Ruleset used to make the score, useful if it was made on a convert

    -
    type?: string

    "Beatmap score ranking type", whatever that means...

    -

    Generated using TypeDoc

    \ No newline at end of file +
    mods?: string[]

    The Mods used to make the score, you can simply use ["NM"] to filter out scores with mods (defaults to any mods, no scores filtered)

    +
    ruleset?: Ruleset

    The Ruleset used to make the score, useful if it was made on a convert

    +
    type?: string

    "Beatmap score ranking type", whatever that means...

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.DifficultyAttributes-1.html b/docs/interfaces/Beatmap.DifficultyAttributes-1.html index 060c091..900f900 100644 --- a/docs/interfaces/Beatmap.DifficultyAttributes-1.html +++ b/docs/interfaces/Beatmap.DifficultyAttributes-1.html @@ -1,4 +1,4 @@ DifficultyAttributes | osu-api-v2-js

    Interface DifficultyAttributes

    interface DifficultyAttributes {
        max_combo: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    interface DifficultyAttributes {
        max_combo: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    max_combo: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    max_combo: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.DifficultyAttributes.Fruits.html b/docs/interfaces/Beatmap.DifficultyAttributes.Fruits.html index e880b92..a7dfead 100644 --- a/docs/interfaces/Beatmap.DifficultyAttributes.Fruits.html +++ b/docs/interfaces/Beatmap.DifficultyAttributes.Fruits.html @@ -1,5 +1,5 @@ Fruits | osu-api-v2-js
    interface Fruits {
        approach_rate: number;
        max_combo: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    interface Fruits {
        approach_rate: number;
        max_combo: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    approach_rate: number
    max_combo: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    approach_rate: number
    max_combo: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.DifficultyAttributes.Mania.html b/docs/interfaces/Beatmap.DifficultyAttributes.Mania.html index a852014..afe1da3 100644 --- a/docs/interfaces/Beatmap.DifficultyAttributes.Mania.html +++ b/docs/interfaces/Beatmap.DifficultyAttributes.Mania.html @@ -1,7 +1,7 @@ Mania | osu-api-v2-js
    interface Mania {
        great_hit_window: number;
        max_combo: number;
        score_multiplier?: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    interface Mania {
        great_hit_window: number;
        max_combo: number;
        score_multiplier?: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    great_hit_window: number
    max_combo: number
    score_multiplier?: number

    Remarks

    API documentation says it exists, my thorough testing says it doesn't, so...

    -
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    great_hit_window: number
    max_combo: number
    score_multiplier?: number

    Remarks

    API documentation says it exists, my thorough testing says it doesn't, so...

    +
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.DifficultyAttributes.Osu.html b/docs/interfaces/Beatmap.DifficultyAttributes.Osu.html index 4a6633a..cdaf0f4 100644 --- a/docs/interfaces/Beatmap.DifficultyAttributes.Osu.html +++ b/docs/interfaces/Beatmap.DifficultyAttributes.Osu.html @@ -1,5 +1,5 @@ Osu | osu-api-v2-js
    interface Osu {
        aim_difficulty: number;
        approach_rate: number;
        flashlight_difficulty: number;
        max_combo: number;
        overall_difficulty: number;
        slider_factor: number;
        speed_difficulty: number;
        speed_note_count: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    interface Osu {
        aim_difficulty: number;
        approach_rate: number;
        flashlight_difficulty: number;
        max_combo: number;
        overall_difficulty: number;
        slider_factor: number;
        speed_difficulty: number;
        speed_note_count: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    aim_difficulty: number
    approach_rate: number
    flashlight_difficulty: number
    max_combo: number
    overall_difficulty: number
    slider_factor: number
    speed_difficulty: number
    speed_note_count: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    aim_difficulty: number
    approach_rate: number
    flashlight_difficulty: number
    max_combo: number
    overall_difficulty: number
    slider_factor: number
    speed_difficulty: number
    speed_note_count: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.DifficultyAttributes.Taiko.html b/docs/interfaces/Beatmap.DifficultyAttributes.Taiko.html index 0d85193..6b8017e 100644 --- a/docs/interfaces/Beatmap.DifficultyAttributes.Taiko.html +++ b/docs/interfaces/Beatmap.DifficultyAttributes.Taiko.html @@ -1,9 +1,9 @@ Taiko | osu-api-v2-js
    interface Taiko {
        colour_difficulty: number;
        great_hit_window: number;
        max_combo: number;
        peak_difficulty: number;
        rhythm_difficulty: number;
        stamina_difficulty: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    interface Taiko {
        colour_difficulty: number;
        great_hit_window: number;
        max_combo: number;
        peak_difficulty: number;
        rhythm_difficulty: number;
        stamina_difficulty: number;
        star_rating: number;
    }

    Hierarchy (view full)

    Properties

    colour_difficulty: number
    great_hit_window: number
    max_combo: number
    peak_difficulty: number
    rhythm_difficulty: number
    stamina_difficulty: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    colour_difficulty: number
    great_hit_window: number
    max_combo: number
    peak_difficulty: number
    rhythm_difficulty: number
    stamina_difficulty: number
    star_rating: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Extended-1.html b/docs/interfaces/Beatmap.Extended-1.html index e7e3979..88a3d75 100644 --- a/docs/interfaces/Beatmap.Extended-1.html +++ b/docs/interfaces/Beatmap.Extended-1.html @@ -1,4 +1,4 @@ -Extended | osu-api-v2-js
    interface Extended {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    accuracy +Extended | osu-api-v2-js
    interface Extended {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Extended.WithFailtimes.html b/docs/interfaces/Beatmap.Extended.WithFailtimes.html index ab66e25..d50da25 100644 --- a/docs/interfaces/Beatmap.Extended.WithFailtimes.html +++ b/docs/interfaces/Beatmap.Extended.WithFailtimes.html @@ -1,4 +1,4 @@ -WithFailtimes | osu-api-v2-js
    interface WithFailtimes {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    accuracy +WithFailtimes | osu-api-v2-js
    interface WithFailtimes {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Extended.WithFailtimesBeatmapset.html b/docs/interfaces/Beatmap.Extended.WithFailtimesBeatmapset.html index 3156a00..17280d7 100644 --- a/docs/interfaces/Beatmap.Extended.WithFailtimesBeatmapset.html +++ b/docs/interfaces/Beatmap.Extended.WithFailtimesBeatmapset.html @@ -1,5 +1,5 @@ WithFailtimesBeatmapset | osu-api-v2-js

    Obtainable From

    API.getBeatmap

    -
    interface WithFailtimesBeatmapset {
        accuracy: number;
        ar: number;
        beatmapset: Beatmapset.Extended;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    interface WithFailtimesBeatmapset {
        accuracy: number;
        ar: number;
        beatmapset: Beatmapset.Extended;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number
    ar: number
    beatmapset: Beatmapset.Extended
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    accuracy: number
    ar: number
    beatmapset: Beatmapset.Extended
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Extended.WithFailtimesMaxcombo.html b/docs/interfaces/Beatmap.Extended.WithFailtimesMaxcombo.html index c4a1f9d..fddd153 100644 --- a/docs/interfaces/Beatmap.Extended.WithFailtimesMaxcombo.html +++ b/docs/interfaces/Beatmap.Extended.WithFailtimesMaxcombo.html @@ -1,5 +1,5 @@ WithFailtimesMaxcombo | osu-api-v2-js

    Obtainable From

    API.getBeatmaps

    -
    interface WithFailtimesMaxcombo {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    interface WithFailtimesMaxcombo {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        failtimes: {
            exit: number[];
            fail: number[];
        };
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    failtimes: {
        exit: number[];
        fail: number[];
    }

    Type declaration

    • exit: number[]
    • fail: number[]
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Extended.WithMaxcombo.html b/docs/interfaces/Beatmap.Extended.WithMaxcombo.html index 5419628..1ad570e 100644 --- a/docs/interfaces/Beatmap.Extended.WithMaxcombo.html +++ b/docs/interfaces/Beatmap.Extended.WithMaxcombo.html @@ -1,4 +1,4 @@ -WithMaxcombo | osu-api-v2-js
    interface WithMaxcombo {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    accuracy +WithMaxcombo | osu-api-v2-js
    interface WithMaxcombo {
        accuracy: number;
        ar: number;
        beatmapset_id: number;
        bpm: number;
        checksum: string;
        convert: boolean;
        count_circles: number;
        count_sliders: number;
        count_spinners: number;
        cs: number;
        deleted_at: null | Date;
        difficulty_rating: number;
        drain: number;
        hit_length: number;
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        passcount: number;
        playcount: number;
        ranked: RankStatus;
        status: string;
        total_length: number;
        url: string;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    accuracy: number
    ar: number
    beatmapset_id: number
    bpm: number
    checksum: string
    convert: boolean
    count_circles: number
    count_sliders: number
    count_spinners: number
    cs: number
    deleted_at: null | Date
    difficulty_rating: number
    drain: number
    hit_length: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    passcount: number
    playcount: number
    ranked: RankStatus
    status: string
    total_length: number
    url: string
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Pack-1.html b/docs/interfaces/Beatmap.Pack-1.html index 0342678..4f951b2 100644 --- a/docs/interfaces/Beatmap.Pack-1.html +++ b/docs/interfaces/Beatmap.Pack-1.html @@ -1,5 +1,5 @@ Pack | osu-api-v2-js

    Obtainable From

    API.getBeatmapPacks

    -
    interface Pack {
        author: string;
        date: Date;
        name: string;
        no_diff_reduction: boolean;
        ruleset_id: null | Ruleset;
        tag: string;
        url: string;
        user_completion_data?: {
            beatmapset_ids: number[];
            completed: boolean;
        };
    }

    Hierarchy (view full)

    Properties

    interface Pack {
        author: string;
        date: Date;
        name: string;
        no_diff_reduction: boolean;
        ruleset_id: null | Ruleset;
        tag: string;
        url: string;
        user_completion_data?: {
            beatmapset_ids: number[];
            completed: boolean;
        };
    }

    Hierarchy (view full)

    Properties

    author: string
    date: Date
    name: string
    no_diff_reduction: boolean

    Are difficulty reduction mods unable to be used to clear this pack? (is false if you can use such mods)

    -
    ruleset_id: null | Ruleset
    tag: string
    url: string

    Download page; going there with a web browser should start the download of a zip file automatically

    -
    user_completion_data?: {
        beatmapset_ids: number[];
        completed: boolean;
    }

    Not there if the application doesn't act as a specific user

    +

    Properties

    author: string
    date: Date
    name: string
    no_diff_reduction: boolean

    Are difficulty reduction mods unable to be used to clear this pack? (is false if you can use such mods)

    +
    ruleset_id: null | Ruleset
    tag: string
    url: string

    Download page; going there with a web browser should start the download of a zip file automatically

    +
    user_completion_data?: {
        beatmapset_ids: number[];
        completed: boolean;
    }

    Not there if the application doesn't act as a specific user

    Type declaration

    • beatmapset_ids: number[]

      IDs of beatmapsets completed by the user (according to the requirements of the pack)

    • completed: boolean

      Whether all beatmapsets are completed by the user or not

      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Pack.WithBeatmapset.html b/docs/interfaces/Beatmap.Pack.WithBeatmapset.html index c10747c..b70aed8 100644 --- a/docs/interfaces/Beatmap.Pack.WithBeatmapset.html +++ b/docs/interfaces/Beatmap.Pack.WithBeatmapset.html @@ -1,5 +1,5 @@ WithBeatmapset | osu-api-v2-js

    Obtainable From

    API.getBeatmapPack

    -
    interface WithBeatmapset {
        author: string;
        beatmapsets: Beatmapset.Extended[];
        date: Date;
        name: string;
        no_diff_reduction: boolean;
        ruleset_id: null | Ruleset;
        tag: string;
        url: string;
        user_completion_data?: {
            beatmapset_ids: number[];
            completed: boolean;
        };
    }

    Hierarchy (view full)

    Properties

    interface WithBeatmapset {
        author: string;
        beatmapsets: Beatmapset.Extended[];
        date: Date;
        name: string;
        no_diff_reduction: boolean;
        ruleset_id: null | Ruleset;
        tag: string;
        url: string;
        user_completion_data?: {
            beatmapset_ids: number[];
            completed: boolean;
        };
    }

    Hierarchy (view full)

    Properties

    author: string
    beatmapsets: Beatmapset.Extended[]
    date: Date
    name: string
    no_diff_reduction: boolean

    Are difficulty reduction mods unable to be used to clear this pack? (is false if you can use such mods)

    -
    ruleset_id: null | Ruleset
    tag: string
    url: string

    Download page; going there with a web browser should start the download of a zip file automatically

    -
    user_completion_data?: {
        beatmapset_ids: number[];
        completed: boolean;
    }

    Not there if the application doesn't act as a specific user

    +

    Properties

    author: string
    beatmapsets: Beatmapset.Extended[]
    date: Date
    name: string
    no_diff_reduction: boolean

    Are difficulty reduction mods unable to be used to clear this pack? (is false if you can use such mods)

    +
    ruleset_id: null | Ruleset
    tag: string
    url: string

    Download page; going there with a web browser should start the download of a zip file automatically

    +
    user_completion_data?: {
        beatmapset_ids: number[];
        completed: boolean;
    }

    Not there if the application doesn't act as a specific user

    Type declaration

    • beatmapset_ids: number[]

      IDs of beatmapsets completed by the user (according to the requirements of the pack)

    • completed: boolean

      Whether all beatmapsets are completed by the user or not

      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.Playcount.html b/docs/interfaces/Beatmap.Playcount.html index 7317e5c..91858cd 100644 --- a/docs/interfaces/Beatmap.Playcount.html +++ b/docs/interfaces/Beatmap.Playcount.html @@ -1,7 +1,7 @@ Playcount | osu-api-v2-js

    Obtainable From

    API.getUserMostPlayed

    -
    interface Playcount {
        beatmap: Beatmap;
        beatmap_id: number;
        beatmapset: Beatmapset;
        count: number;
    }

    Properties

    interface Playcount {
        beatmap: Beatmap;
        beatmap_id: number;
        beatmapset: Beatmapset;
        count: number;
    }

    Properties

    beatmap: Beatmap
    beatmap_id: number
    beatmapset: Beatmapset
    count: number

    Playcount

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap: Beatmap
    beatmap_id: number
    beatmapset: Beatmapset
    count: number

    Playcount

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.UserScore-1.html b/docs/interfaces/Beatmap.UserScore-1.html index 164c17d..b879230 100644 --- a/docs/interfaces/Beatmap.UserScore-1.html +++ b/docs/interfaces/Beatmap.UserScore-1.html @@ -1,6 +1,6 @@ UserScore | osu-api-v2-js

    Obtainable From

    API.getBeatmapUserScore

    -
    interface UserScore {
        position: number;
        score: WithUserBeatmap;
    }

    Properties

    interface UserScore {
        position: number;
        score: WithUserBeatmap;
    }

    Properties

    Properties

    position: number

    Value depends on the requested mode and mods!

    -

    The score itself

    -

    Generated using TypeDoc

    \ No newline at end of file +
    score: WithUserBeatmap

    The score itself

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.WithBeatmapset.html b/docs/interfaces/Beatmap.WithBeatmapset.html index e187b01..6074d36 100644 --- a/docs/interfaces/Beatmap.WithBeatmapset.html +++ b/docs/interfaces/Beatmap.WithBeatmapset.html @@ -1,4 +1,4 @@ -WithBeatmapset | osu-api-v2-js

    Interface WithBeatmapset

    interface WithBeatmapset {
        beatmapset: Beatmapset;
        beatmapset_id: number;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset +WithBeatmapset | osu-api-v2-js

    Interface WithBeatmapset

    interface WithBeatmapset {
        beatmapset: Beatmapset;
        beatmapset_id: number;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset: Beatmapset
    beatmapset_id: number
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: Beatmapset
    beatmapset_id: number
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.WithBeatmapsetChecksumMaxcombo.html b/docs/interfaces/Beatmap.WithBeatmapsetChecksumMaxcombo.html index ad6335a..01e543f 100644 --- a/docs/interfaces/Beatmap.WithBeatmapsetChecksumMaxcombo.html +++ b/docs/interfaces/Beatmap.WithBeatmapsetChecksumMaxcombo.html @@ -1,4 +1,4 @@ -WithBeatmapsetChecksumMaxcombo | osu-api-v2-js

    Interface WithBeatmapsetChecksumMaxcombo

    interface WithBeatmapsetChecksumMaxcombo {
        beatmapset: Beatmapset;
        beatmapset_id: number;
        checksum: string;
        difficulty_rating: number;
        id: number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset +WithBeatmapsetChecksumMaxcombo | osu-api-v2-js

    Interface WithBeatmapsetChecksumMaxcombo

    interface WithBeatmapsetChecksumMaxcombo {
        beatmapset: Beatmapset;
        beatmapset_id: number;
        checksum: string;
        difficulty_rating: number;
        id: number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset: Beatmapset
    beatmapset_id: number
    checksum: string
    difficulty_rating: number
    id: number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: Beatmapset
    beatmapset_id: number
    checksum: string
    difficulty_rating: number
    id: number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmap.WithChecksum.html b/docs/interfaces/Beatmap.WithChecksum.html index 8d86ecf..d427e09 100644 --- a/docs/interfaces/Beatmap.WithChecksum.html +++ b/docs/interfaces/Beatmap.WithChecksum.html @@ -1,4 +1,4 @@ -WithChecksum | osu-api-v2-js

    Interface WithChecksum

    interface WithChecksum {
        beatmapset_id: number;
        checksum: string;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset_id +WithChecksum | osu-api-v2-js

    Interface WithChecksum

    interface WithChecksum {
        beatmapset_id: number;
        checksum: string;
        difficulty_rating: number;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        status: string;
        total_length: number;
        user_id: number;
        version: string;
    }

    Hierarchy (view full)

    Properties

    beatmapset_id: number
    checksum: string
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset_id: number
    checksum: string
    difficulty_rating: number
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    status: string
    total_length: number
    user_id: number
    version: string

    The name of the difficulty, maybe something like "Someone's Insane"

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset-1.html b/docs/interfaces/Beatmapset-1.html index 051f59e..af13934 100644 --- a/docs/interfaces/Beatmapset-1.html +++ b/docs/interfaces/Beatmapset-1.html @@ -1,4 +1,4 @@ -Beatmapset | osu-api-v2-js

    Interface Beatmapset

    interface Beatmapset {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist +Beatmapset | osu-api-v2-js

    Interface Beatmapset

    interface Beatmapset {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Config.html b/docs/interfaces/Beatmapset.Config.html index 50355f5..df4fe18 100644 --- a/docs/interfaces/Beatmapset.Config.html +++ b/docs/interfaces/Beatmapset.Config.html @@ -1,10 +1,10 @@ Config | osu-api-v2-js

    An interface to tell the API how the returned Array should be like

    -
    interface Config {
        cursor_string?: string;
        limit?: number;
        page?: number;
        sort?: "id_desc" | "id_asc";
    }

    Properties

    interface Config {
        cursor_string?: string;
        limit?: number;
        page?: number;
        sort?: "id_desc" | "id_asc";
    }

    Properties

    cursor_string?: string

    A cursor_string provided by a previous request

    -
    limit?: number

    The maximum amount of elements to get

    -
    page?: number

    Which page of the results to get

    -
    sort?: "id_desc" | "id_asc"

    "id_asc" to have the oldest element first, "id_desc" to have the newest instead

    -

    Generated using TypeDoc

    \ No newline at end of file +
    limit?: number

    The maximum amount of elements to get

    +
    page?: number

    Which page of the results to get

    +
    sort?: "id_desc" | "id_asc"

    "id_asc" to have the oldest element first, "id_desc" to have the newest instead

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Discussion-1.html b/docs/interfaces/Beatmapset.Discussion-1.html index c545e5e..f6e4d7c 100644 --- a/docs/interfaces/Beatmapset.Discussion-1.html +++ b/docs/interfaces/Beatmapset.Discussion-1.html @@ -1,4 +1,4 @@ -Discussion | osu-api-v2-js
    interface Discussion {
        beatmap_id: null | number;
        beatmapset_id: number;
        can_be_resolved: boolean;
        can_grant_kudosu: boolean;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        kudosu_denied: boolean;
        last_post_at: Date;
        message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review";
        parent_id: null | number;
        resolved: boolean;
        timestamp: null | number;
        updated_at: Date;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    beatmap_id +Discussion | osu-api-v2-js
    interface Discussion {
        beatmap_id: null | number;
        beatmapset_id: number;
        can_be_resolved: boolean;
        can_grant_kudosu: boolean;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        kudosu_denied: boolean;
        last_post_at: Date;
        message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review";
        parent_id: null | number;
        resolved: boolean;
        timestamp: null | number;
        updated_at: Date;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    beatmap_id: null | number
    beatmapset_id: number
    can_be_resolved: boolean
    can_grant_kudosu: boolean
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    kudosu_denied: boolean
    last_post_at: Date
    message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review"
    parent_id: null | number

    For example, the id of the review this discussion is included in

    -
    resolved: boolean
    timestamp: null | number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_id: null | number
    beatmapset_id: number
    can_be_resolved: boolean
    can_grant_kudosu: boolean
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    kudosu_denied: boolean
    last_post_at: Date
    message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review"
    parent_id: null | number

    For example, the id of the review this discussion is included in

    +
    resolved: boolean
    timestamp: null | number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Discussion.Post-1.html b/docs/interfaces/Beatmapset.Discussion.Post-1.html index 838438e..96faead 100644 --- a/docs/interfaces/Beatmapset.Discussion.Post-1.html +++ b/docs/interfaces/Beatmapset.Discussion.Post-1.html @@ -1,4 +1,4 @@ -Post | osu-api-v2-js
    interface Post {
        beatmapset_discussion_id: number;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        last_editor_id: null | number;
        message: string;
        system: boolean;
        updated_at: Date;
        user_id: number;
    }

    Properties

    beatmapset_discussion_id +Post | osu-api-v2-js
    interface Post {
        beatmapset_discussion_id: number;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        last_editor_id: null | number;
        message: string;
        system: boolean;
        updated_at: Date;
        user_id: number;
    }

    Properties

    beatmapset_discussion_id: number
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    last_editor_id: null | number
    message: string
    system: boolean
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset_discussion_id: number
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    last_editor_id: null | number
    message: string
    system: boolean
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Discussion.Vote-1.html b/docs/interfaces/Beatmapset.Discussion.Vote-1.html index 8420e59..40aca3a 100644 --- a/docs/interfaces/Beatmapset.Discussion.Vote-1.html +++ b/docs/interfaces/Beatmapset.Discussion.Vote-1.html @@ -1,7 +1,7 @@ -Vote | osu-api-v2-js
    interface Vote {
        beatmapset_discussion_id: number;
        created_at: Date;
        id: number;
        score: number;
        updated_at: Date;
        user_id: number;
    }

    Properties

    beatmapset_discussion_id +Vote | osu-api-v2-js
    interface Vote {
        beatmapset_discussion_id: number;
        created_at: Date;
        id: number;
        score: number;
        updated_at: Date;
        user_id: number;
    }

    Properties

    beatmapset_discussion_id: number
    created_at: Date
    id: number
    score: number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset_discussion_id: number
    created_at: Date
    id: number
    score: number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Discussion.WithStartingpost.html b/docs/interfaces/Beatmapset.Discussion.WithStartingpost.html index 5c3e956..c93deea 100644 --- a/docs/interfaces/Beatmapset.Discussion.WithStartingpost.html +++ b/docs/interfaces/Beatmapset.Discussion.WithStartingpost.html @@ -1,4 +1,4 @@ -WithStartingpost | osu-api-v2-js
    interface WithStartingpost {
        beatmap_id: null | number;
        beatmapset_id: number;
        can_be_resolved: boolean;
        can_grant_kudosu: boolean;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        kudosu_denied: boolean;
        last_post_at: Date;
        message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review";
        parent_id: null | number;
        resolved: boolean;
        starting_post: Beatmapset.Discussion.Post;
        timestamp: null | number;
        updated_at: Date;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    beatmap_id +WithStartingpost | osu-api-v2-js
    interface WithStartingpost {
        beatmap_id: null | number;
        beatmapset_id: number;
        can_be_resolved: boolean;
        can_grant_kudosu: boolean;
        created_at: Date;
        deleted_at: null | Date;
        deleted_by_id: null | number;
        id: number;
        kudosu_denied: boolean;
        last_post_at: Date;
        message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review";
        parent_id: null | number;
        resolved: boolean;
        starting_post: Beatmapset.Discussion.Post;
        timestamp: null | number;
        updated_at: Date;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    beatmap_id: null | number
    beatmapset_id: number
    can_be_resolved: boolean
    can_grant_kudosu: boolean
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    kudosu_denied: boolean
    last_post_at: Date
    message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review"
    parent_id: null | number

    For example, the id of the review this discussion is included in

    -
    resolved: boolean
    starting_post: Beatmapset.Discussion.Post
    timestamp: null | number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_id: null | number
    beatmapset_id: number
    can_be_resolved: boolean
    can_grant_kudosu: boolean
    created_at: Date
    deleted_at: null | Date
    deleted_by_id: null | number
    id: number
    kudosu_denied: boolean
    last_post_at: Date
    message_type: "suggestion" | "problem" | "mapper_note" | "praise" | "hype" | "review"
    parent_id: null | number

    For example, the id of the review this discussion is included in

    +
    resolved: boolean
    starting_post: Beatmapset.Discussion.Post
    timestamp: null | number
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event-1.html b/docs/interfaces/Beatmapset.Event-1.html index 6f75ee8..d852767 100644 --- a/docs/interfaces/Beatmapset.Event-1.html +++ b/docs/interfaces/Beatmapset.Event-1.html @@ -1,8 +1,8 @@ -Event | osu-api-v2-js
    interface Event {
        beatmapset: WithUserHype;
        comment: null | object;
        created_at: Date;
        id: number;
        type: "nominate" | "love" | "remove_from_loved" | "qualify" | "disqualify" | "approve" | "rank" | "kudosu_allow" | "kudosu_deny" | "kudosu_gain" | "kudosu_lost" | "kudosu_recalculate" | "issue_resolve" | "issue_reopen" | "discussion_lock" | "discussion_unlock" | "discussion_delete" | "discussion_restore" | "discussion_post_delete" | "discussion_post_restore" | "nomination_reset" | "nomination_reset_received" | "genre_edit" | "language_edit" | "nsfw_toggle" | "offset_edit" | "tags_edit" | "beatmap_owner_change";
    }

    Hierarchy (view full)

    Properties

    beatmapset +Event | osu-api-v2-js
    interface Event {
        beatmapset: WithUserHype;
        comment: null | object;
        created_at: Date;
        id: number;
        type: "nominate" | "love" | "remove_from_loved" | "qualify" | "disqualify" | "approve" | "rank" | "kudosu_allow" | "kudosu_deny" | "kudosu_gain" | "kudosu_lost" | "kudosu_recalculate" | "issue_resolve" | "issue_reopen" | "discussion_lock" | "discussion_unlock" | "discussion_delete" | "discussion_restore" | "discussion_post_delete" | "discussion_post_restore" | "nomination_reset" | "nomination_reset_received" | "genre_edit" | "language_edit" | "nsfw_toggle" | "offset_edit" | "tags_edit" | "beatmap_owner_change";
    }

    Hierarchy (view full)

    Properties

    beatmapset: WithUserHype
    comment: null | object
    created_at: Date
    id: number
    type: "nominate" | "love" | "remove_from_loved" | "qualify" | "disqualify" | "approve" | "rank" | "kudosu_allow" | "kudosu_deny" | "kudosu_gain" | "kudosu_lost" | "kudosu_recalculate" | "issue_resolve" | "issue_reopen" | "discussion_lock" | "discussion_unlock" | "discussion_delete" | "discussion_restore" | "discussion_post_delete" | "discussion_post_restore" | "nomination_reset" | "nomination_reset_received" | "genre_edit" | "language_edit" | "nsfw_toggle" | "offset_edit" | "tags_edit" | "beatmap_owner_change"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes +

    Properties

    beatmapset: WithUserHype
    comment: null | object
    created_at: Date
    id: number
    type: "nominate" | "love" | "remove_from_loved" | "qualify" | "disqualify" | "approve" | "rank" | "kudosu_allow" | "kudosu_deny" | "kudosu_gain" | "kudosu_lost" | "kudosu_recalculate" | "issue_resolve" | "issue_reopen" | "discussion_lock" | "discussion_unlock" | "discussion_delete" | "discussion_restore" | "discussion_post_delete" | "discussion_post_restore" | "nomination_reset" | "nomination_reset_received" | "genre_edit" | "language_edit" | "nsfw_toggle" | "offset_edit" | "tags_edit" | "beatmap_owner_change"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes https://github.com/ppy/osu-web/blob/master/app/Models/BeatmapsetEvent.php

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.BeatmapOwnerChange.html b/docs/interfaces/Beatmapset.Event.BeatmapOwnerChange.html index c751133..641a5ce 100644 --- a/docs/interfaces/Beatmapset.Event.BeatmapOwnerChange.html +++ b/docs/interfaces/Beatmapset.Event.BeatmapOwnerChange.html @@ -1,7 +1,7 @@ -BeatmapOwnerChange | osu-api-v2-js
    interface BeatmapOwnerChange {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername;
        created_at: Date;
        id: number;
        type: "beatmap_owner_change";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • BeatmapOwnerChange

    Properties

    beatmapset +BeatmapOwnerChange | osu-api-v2-js
    interface BeatmapOwnerChange {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername;
        created_at: Date;
        id: number;
        type: "beatmap_owner_change";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • BeatmapOwnerChange

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "beatmap_owner_change"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "beatmap_owner_change"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment-1.html b/docs/interfaces/Beatmapset.Event.Comment-1.html index c2b86b4..dba3e92 100644 --- a/docs/interfaces/Beatmapset.Event.Comment-1.html +++ b/docs/interfaces/Beatmapset.Event.Comment-1.html @@ -1,2 +1,2 @@ Comment | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface Comment {}

    Hierarchy (view full)

    Generated using TypeDoc

    \ No newline at end of file +
    interface Comment {}

    Hierarchy (view full)

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostid.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostid.html index d2a2817..d3328ef 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostid.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostid.html @@ -1,4 +1,4 @@ WithDiscussionidPostid | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostid {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
    }

    Hierarchy (view full)

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername.html index cb0bb7b..591c918 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername.html @@ -1,8 +1,8 @@ WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername | osu-api-v2-js

    Interface WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        beatmap_id: number;
        beatmap_version: string;
        new_user_id: number;
        new_user_username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        beatmap_id: number;
        beatmap_version: string;
        new_user_id: number;
        new_user_username: string;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    beatmap_id: number
    beatmap_version: string
    new_user_id: number
    new_user_username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    beatmap_id: number
    beatmap_version: string
    new_user_id: number
    new_user_username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNewvotevotes.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNewvotevotes.html index cab9fdc..a89d46b 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNewvotevotes.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNewvotevotes.html @@ -1,6 +1,6 @@ WithDiscussionidPostidNewvotevotes | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidNewvotevotes {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new_vote: {
            score: number;
            user_id: number;
        };
        votes: {
            score: number;
            user_id: number;
        }[];
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidNewvotevotes {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new_vote: {
            score: number;
            user_id: number;
        };
        votes: {
            score: number;
            user_id: number;
        }[];
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new_vote: {
        score: number;
        user_id: number;
    }

    Type declaration

    • score: number
    • user_id: number
    votes: {
        score: number;
        user_id: number;
    }[]

    Type declaration

    • score: number
    • user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new_vote: {
        score: number;
        user_id: number;
    }

    Type declaration

    • score: number
    • user_id: number
    votes: {
        score: number;
        user_id: number;
    }[]

    Type declaration

    • score: number
    • user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNominatorsids.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNominatorsids.html index 8a28462..90fa0e7 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNominatorsids.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidNominatorsids.html @@ -1,5 +1,5 @@ WithDiscussionidPostidNominatorsids | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidNominatorsids {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        nominator_ids: number[];
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidNominatorsids {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        nominator_ids: number[];
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    nominator_ids: number[]

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    nominator_ids: number[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldgenreNewgenre.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldgenreNewgenre.html index 2b50ad0..c762723 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldgenreNewgenre.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldgenreNewgenre.html @@ -1,6 +1,6 @@ WithDiscussionidPostidOldgenreNewgenre | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidOldgenreNewgenre {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
        old: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidOldgenreNewgenre {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
        old: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"
    old: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"
    old: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldlanguageNewlanguage.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldlanguageNewlanguage.html index a69a737..56c6b18 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldlanguageNewlanguage.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldlanguageNewlanguage.html @@ -1,6 +1,6 @@ WithDiscussionidPostidOldlanguageNewlanguage | osu-api-v2-js

    Interface WithDiscussionidPostidOldlanguageNewlanguage

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidOldlanguageNewlanguage {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
        old: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidOldlanguageNewlanguage {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
        old: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"
    old: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"
    old: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldnsfwNewnsfw.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldnsfwNewnsfw.html index 9d5ed66..8c464b1 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldnsfwNewnsfw.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldnsfwNewnsfw.html @@ -1,6 +1,6 @@ WithDiscussionidPostidOldnsfwNewnsfw | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidOldnsfwNewnsfw {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: boolean;
        old: boolean;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidOldnsfwNewnsfw {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: boolean;
        old: boolean;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: boolean
    old: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: boolean
    old: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldoffsetNewoffset.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldoffsetNewoffset.html index 4d087b9..53a34b2 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldoffsetNewoffset.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldoffsetNewoffset.html @@ -1,6 +1,6 @@ WithDiscussionidPostidOldoffsetNewoffset | osu-api-v2-js

    Interface WithDiscussionidPostidOldoffsetNewoffset

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidOldoffsetNewoffset {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: number;
        old: number;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidOldoffsetNewoffset {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: number;
        old: number;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: number
    old: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: number
    old: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldtagsNewtags.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldtagsNewtags.html index 1eb94ce..617f195 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldtagsNewtags.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidOldtagsNewtags.html @@ -1,6 +1,6 @@ WithDiscussionidPostidOldtagsNewtags | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidOldtagsNewtags {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: string;
        old: string;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidOldtagsNewtags {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        new: string;
        old: string;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: string
    old: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    new: string
    old: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidReason.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidReason.html index 6fe5a41..50aff12 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidReason.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidReason.html @@ -1,5 +1,5 @@ WithDiscussionidPostidReason | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidReason {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        reason: string;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidReason {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        reason: string;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    reason: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    reason: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidSourceuseridSourceuserusername.html b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidSourceuseridSourceuserusername.html index f036d1f..808fd20 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidSourceuseridSourceuserusername.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithDiscussionidPostidSourceuseridSourceuserusername.html @@ -1,6 +1,6 @@ WithDiscussionidPostidSourceuseridSourceuserusername | osu-api-v2-js

    Interface WithDiscussionidPostidSourceuseridSourceuserusername

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithDiscussionidPostidSourceuseridSourceuserusername {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        source_user_id: number;
        source_user_username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithDiscussionidPostidSourceuseridSourceuserusername {
        beatmap_discussion_id: null | number;
        beatmap_discussion_post_id: null | number;
        source_user_id: number;
        source_user_username: string;
    }

    Hierarchy (view full)

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    source_user_id: number
    source_user_username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmap_discussion_id: null | number
    beatmap_discussion_post_id: null | number
    source_user_id: number
    source_user_username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Comment.WithModes.html b/docs/interfaces/Beatmapset.Event.Comment.WithModes.html index 6ec9d64..cea5f7b 100644 --- a/docs/interfaces/Beatmapset.Event.Comment.WithModes.html +++ b/docs/interfaces/Beatmapset.Event.Comment.WithModes.html @@ -1,3 +1,3 @@ WithModes | osu-api-v2-js

    An event's comment (unrelated to comments in bundles) can be a lot of things depending of the event type

    -
    interface WithModes {
        modes: ("osu" | "taiko" | "fruits" | "mania")[];
    }

    Hierarchy (view full)

    Properties

    Properties

    modes: ("osu" | "taiko" | "fruits" | "mania")[]

    Generated using TypeDoc

    \ No newline at end of file +
    interface WithModes {
        modes: ("osu" | "taiko" | "fruits" | "mania")[];
    }

    Hierarchy (view full)

    Properties

    Properties

    modes: ("osu" | "taiko" | "fruits" | "mania")[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.DiscussionDelete.html b/docs/interfaces/Beatmapset.Event.DiscussionDelete.html index b80fead..a02d6cc 100644 --- a/docs/interfaces/Beatmapset.Event.DiscussionDelete.html +++ b/docs/interfaces/Beatmapset.Event.DiscussionDelete.html @@ -1,8 +1,8 @@ -DiscussionDelete | osu-api-v2-js
    interface DiscussionDelete {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        id: number;
        type: "discussion_delete";
    }

    Hierarchy (view full)

    Properties

    beatmapset +DiscussionDelete | osu-api-v2-js
    interface DiscussionDelete {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        id: number;
        type: "discussion_delete";
    }

    Hierarchy (view full)

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "discussion_delete"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "discussion_delete"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes https://github.com/ppy/osu-web/blob/master/app/Models/BeatmapsetEvent.php

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.DiscussionLockORUnlock.html b/docs/interfaces/Beatmapset.Event.DiscussionLockORUnlock.html index 031cf6f..017f311 100644 --- a/docs/interfaces/Beatmapset.Event.DiscussionLockORUnlock.html +++ b/docs/interfaces/Beatmapset.Event.DiscussionLockORUnlock.html @@ -1,8 +1,8 @@ -DiscussionLockORUnlock | osu-api-v2-js
    interface DiscussionLockORUnlock {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "discussion_lock" | "discussion_unlock";
        user_id: number;
    }

    Hierarchy

    • WithOptionalDiscussion
    • WithUserid
      • DiscussionLockORUnlock

    Properties

    beatmapset +DiscussionLockORUnlock | osu-api-v2-js
    interface DiscussionLockORUnlock {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "discussion_lock" | "discussion_unlock";
        user_id: number;
    }

    Hierarchy

    • WithOptionalDiscussion
    • WithUserid
      • DiscussionLockORUnlock

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "discussion_lock" | "discussion_unlock"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "discussion_lock" | "discussion_unlock"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.DiscussionRestoreORKudosuRecalculate.html b/docs/interfaces/Beatmapset.Event.DiscussionRestoreORKudosuRecalculate.html index fc1c53b..045106e 100644 --- a/docs/interfaces/Beatmapset.Event.DiscussionRestoreORKudosuRecalculate.html +++ b/docs/interfaces/Beatmapset.Event.DiscussionRestoreORKudosuRecalculate.html @@ -1,7 +1,7 @@ -DiscussionRestoreORKudosuRecalculate | osu-api-v2-js

    Interface DiscussionRestoreORKudosuRecalculate

    interface DiscussionRestoreORKudosuRecalculate {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "kudosu_recalculate" | "discussion_restore";
    }

    Hierarchy

    • WithOptionalDiscussion
      • DiscussionRestoreORKudosuRecalculate

    Properties

    beatmapset +DiscussionRestoreORKudosuRecalculate | osu-api-v2-js

    Interface DiscussionRestoreORKudosuRecalculate

    interface DiscussionRestoreORKudosuRecalculate {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "kudosu_recalculate" | "discussion_restore";
    }

    Hierarchy

    • WithOptionalDiscussion
      • DiscussionRestoreORKudosuRecalculate

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "kudosu_recalculate" | "discussion_restore"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "kudosu_recalculate" | "discussion_restore"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.DisqualifyORNominationReset.html b/docs/interfaces/Beatmapset.Event.DisqualifyORNominationReset.html index 9865203..cf8c732 100644 --- a/docs/interfaces/Beatmapset.Event.DisqualifyORNominationReset.html +++ b/docs/interfaces/Beatmapset.Event.DisqualifyORNominationReset.html @@ -1,8 +1,8 @@ -DisqualifyORNominationReset | osu-api-v2-js

    Interface DisqualifyORNominationReset

    interface DisqualifyORNominationReset {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidNominatorsids;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "disqualify" | "nomination_reset";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • DisqualifyORNominationReset

    Properties

    beatmapset +DisqualifyORNominationReset | osu-api-v2-js

    Interface DisqualifyORNominationReset

    interface DisqualifyORNominationReset {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidNominatorsids;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "disqualify" | "nomination_reset";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • DisqualifyORNominationReset

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "disqualify" | "nomination_reset"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "disqualify" | "nomination_reset"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.GenreEdit.html b/docs/interfaces/Beatmapset.Event.GenreEdit.html index 4a2fef9..1861a95 100644 --- a/docs/interfaces/Beatmapset.Event.GenreEdit.html +++ b/docs/interfaces/Beatmapset.Event.GenreEdit.html @@ -1,7 +1,7 @@ -GenreEdit | osu-api-v2-js
    interface GenreEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldgenreNewgenre;
        created_at: Date;
        id: number;
        type: "genre_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • GenreEdit

    Properties

    beatmapset +GenreEdit | osu-api-v2-js
    interface GenreEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldgenreNewgenre;
        created_at: Date;
        id: number;
        type: "genre_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • GenreEdit

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "genre_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "genre_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.IssueResolveOrReopen.html b/docs/interfaces/Beatmapset.Event.IssueResolveOrReopen.html index 12ef048..ff8425a 100644 --- a/docs/interfaces/Beatmapset.Event.IssueResolveOrReopen.html +++ b/docs/interfaces/Beatmapset.Event.IssueResolveOrReopen.html @@ -1,8 +1,8 @@ -IssueResolveOrReopen | osu-api-v2-js
    interface IssueResolveOrReopen {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "issue_resolve" | "issue_reopen";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • IssueResolveOrReopen

    Properties

    beatmapset +IssueResolveOrReopen | osu-api-v2-js
    interface IssueResolveOrReopen {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "issue_resolve" | "issue_reopen";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • IssueResolveOrReopen

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "issue_resolve" | "issue_reopen"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "issue_resolve" | "issue_reopen"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.KudosuAllowORDenyORDiscussionPostDeleteORRestore.html b/docs/interfaces/Beatmapset.Event.KudosuAllowORDenyORDiscussionPostDeleteORRestore.html index 0bf9447..c6f79eb 100644 --- a/docs/interfaces/Beatmapset.Event.KudosuAllowORDenyORDiscussionPostDeleteORRestore.html +++ b/docs/interfaces/Beatmapset.Event.KudosuAllowORDenyORDiscussionPostDeleteORRestore.html @@ -1,7 +1,7 @@ -KudosuAllowORDenyORDiscussionPostDeleteORRestore | osu-api-v2-js

    Interface KudosuAllowORDenyORDiscussionPostDeleteORRestore

    interface KudosuAllowORDenyORDiscussionPostDeleteORRestore {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "kudosu_allow" | "kudosu_deny" | "discussion_post_delete" | "discussion_post_restore";
    }

    Hierarchy

    • WithDiscussion
      • KudosuAllowORDenyORDiscussionPostDeleteORRestore

    Properties

    beatmapset +KudosuAllowORDenyORDiscussionPostDeleteORRestore | osu-api-v2-js

    Interface KudosuAllowORDenyORDiscussionPostDeleteORRestore

    interface KudosuAllowORDenyORDiscussionPostDeleteORRestore {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostid;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "kudosu_allow" | "kudosu_deny" | "discussion_post_delete" | "discussion_post_restore";
    }

    Hierarchy

    • WithDiscussion
      • KudosuAllowORDenyORDiscussionPostDeleteORRestore

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "kudosu_allow" | "kudosu_deny" | "discussion_post_delete" | "discussion_post_restore"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "kudosu_allow" | "kudosu_deny" | "discussion_post_delete" | "discussion_post_restore"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.KudosuGainORLost.html b/docs/interfaces/Beatmapset.Event.KudosuGainORLost.html index f7396ec..3270c59 100644 --- a/docs/interfaces/Beatmapset.Event.KudosuGainORLost.html +++ b/docs/interfaces/Beatmapset.Event.KudosuGainORLost.html @@ -1,8 +1,8 @@ -KudosuGainORLost | osu-api-v2-js
    interface KudosuGainORLost {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidNewvotevotes;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "kudosu_gain" | "kudosu_lost";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • KudosuGainORLost

    Properties

    beatmapset +KudosuGainORLost | osu-api-v2-js
    interface KudosuGainORLost {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidNewvotevotes;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "kudosu_gain" | "kudosu_lost";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • KudosuGainORLost

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "kudosu_gain" | "kudosu_lost"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "kudosu_gain" | "kudosu_lost"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.LanguageEdit.html b/docs/interfaces/Beatmapset.Event.LanguageEdit.html index 29d949c..2d5a993 100644 --- a/docs/interfaces/Beatmapset.Event.LanguageEdit.html +++ b/docs/interfaces/Beatmapset.Event.LanguageEdit.html @@ -1,7 +1,7 @@ -LanguageEdit | osu-api-v2-js
    interface LanguageEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldlanguageNewlanguage;
        created_at: Date;
        id: number;
        type: "language_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • LanguageEdit

    Properties

    beatmapset +LanguageEdit | osu-api-v2-js
    interface LanguageEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldlanguageNewlanguage;
        created_at: Date;
        id: number;
        type: "language_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • LanguageEdit

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "language_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "language_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Love.html b/docs/interfaces/Beatmapset.Event.Love.html index 994a62c..338cc25 100644 --- a/docs/interfaces/Beatmapset.Event.Love.html +++ b/docs/interfaces/Beatmapset.Event.Love.html @@ -1,7 +1,7 @@ -Love | osu-api-v2-js
    interface Love {
        beatmapset: WithUserHype;
        comment: null;
        created_at: Date;
        id: number;
        type: "love";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • Love

    Properties

    beatmapset +Love | osu-api-v2-js
    interface Love {
        beatmapset: WithUserHype;
        comment: null;
        created_at: Date;
        id: number;
        type: "love";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • Love

    Properties

    beatmapset: WithUserHype
    comment: null
    created_at: Date
    id: number
    type: "love"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    comment: null
    created_at: Date
    id: number
    type: "love"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.Nominate.html b/docs/interfaces/Beatmapset.Event.Nominate.html index 586e975..1707836 100644 --- a/docs/interfaces/Beatmapset.Event.Nominate.html +++ b/docs/interfaces/Beatmapset.Event.Nominate.html @@ -1,7 +1,7 @@ -Nominate | osu-api-v2-js
    interface Nominate {
        beatmapset: WithUserHype;
        comment: WithModes;
        created_at: Date;
        id: number;
        type: "nominate";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • Nominate

    Properties

    beatmapset +Nominate | osu-api-v2-js
    interface Nominate {
        beatmapset: WithUserHype;
        comment: WithModes;
        created_at: Date;
        id: number;
        type: "nominate";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • Nominate

    Properties

    beatmapset: WithUserHype
    comment: WithModes
    created_at: Date
    id: number
    type: "nominate"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    comment: WithModes
    created_at: Date
    id: number
    type: "nominate"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.NominationResetReceived.html b/docs/interfaces/Beatmapset.Event.NominationResetReceived.html index fa669d5..7dd447b 100644 --- a/docs/interfaces/Beatmapset.Event.NominationResetReceived.html +++ b/docs/interfaces/Beatmapset.Event.NominationResetReceived.html @@ -1,8 +1,8 @@ -NominationResetReceived | osu-api-v2-js
    interface NominationResetReceived {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidSourceuseridSourceuserusername;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "nomination_reset_received";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • NominationResetReceived

    Properties

    beatmapset +NominationResetReceived | osu-api-v2-js
    interface NominationResetReceived {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidSourceuseridSourceuserusername;
        created_at: Date;
        discussion: WithStartingpost;
        id: number;
        type: "nomination_reset_received";
        user_id: number;
    }

    Hierarchy

    • WithDiscussion
    • WithUserid
      • NominationResetReceived

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "nomination_reset_received"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion: WithStartingpost
    id: number
    type: "nomination_reset_received"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.NsfwToggle.html b/docs/interfaces/Beatmapset.Event.NsfwToggle.html index 40e2c5b..3d227b7 100644 --- a/docs/interfaces/Beatmapset.Event.NsfwToggle.html +++ b/docs/interfaces/Beatmapset.Event.NsfwToggle.html @@ -1,7 +1,7 @@ -NsfwToggle | osu-api-v2-js
    interface NsfwToggle {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldnsfwNewnsfw;
        created_at: Date;
        id: number;
        type: "nsfw_toggle";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • NsfwToggle

    Properties

    beatmapset +NsfwToggle | osu-api-v2-js
    interface NsfwToggle {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldnsfwNewnsfw;
        created_at: Date;
        id: number;
        type: "nsfw_toggle";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • NsfwToggle

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "nsfw_toggle"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "nsfw_toggle"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.OffsetEdit.html b/docs/interfaces/Beatmapset.Event.OffsetEdit.html index 0a54ef2..6dd9179 100644 --- a/docs/interfaces/Beatmapset.Event.OffsetEdit.html +++ b/docs/interfaces/Beatmapset.Event.OffsetEdit.html @@ -1,7 +1,7 @@ -OffsetEdit | osu-api-v2-js
    interface OffsetEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldoffsetNewoffset;
        created_at: Date;
        id: number;
        type: "offset_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • OffsetEdit

    Properties

    beatmapset +OffsetEdit | osu-api-v2-js
    interface OffsetEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldoffsetNewoffset;
        created_at: Date;
        id: number;
        type: "offset_edit";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • OffsetEdit

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "offset_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "offset_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.QualifyORRank.html b/docs/interfaces/Beatmapset.Event.QualifyORRank.html index 3460f53..64db344 100644 --- a/docs/interfaces/Beatmapset.Event.QualifyORRank.html +++ b/docs/interfaces/Beatmapset.Event.QualifyORRank.html @@ -1,8 +1,8 @@ -QualifyORRank | osu-api-v2-js
    interface QualifyORRank {
        beatmapset: WithUserHype;
        comment: null;
        created_at: Date;
        id: number;
        type: "qualify" | "rank";
    }

    Hierarchy (view full)

    Properties

    beatmapset +QualifyORRank | osu-api-v2-js
    interface QualifyORRank {
        beatmapset: WithUserHype;
        comment: null;
        created_at: Date;
        id: number;
        type: "qualify" | "rank";
    }

    Hierarchy (view full)

    Properties

    beatmapset: WithUserHype
    comment: null
    created_at: Date
    id: number
    type: "qualify" | "rank"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes +

    Properties

    beatmapset: WithUserHype
    comment: null
    created_at: Date
    id: number
    type: "qualify" | "rank"

    Remarks

    "approve" is currently not used, it's here just in case that ever changes https://github.com/ppy/osu-web/blob/master/app/Models/BeatmapsetEvent.php

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.RemoveFromLoved.html b/docs/interfaces/Beatmapset.Event.RemoveFromLoved.html index ddd8890..6b7a358 100644 --- a/docs/interfaces/Beatmapset.Event.RemoveFromLoved.html +++ b/docs/interfaces/Beatmapset.Event.RemoveFromLoved.html @@ -1,7 +1,7 @@ -RemoveFromLoved | osu-api-v2-js
    interface RemoveFromLoved {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidReason;
        created_at: Date;
        id: number;
        type: "remove_from_loved";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • RemoveFromLoved

    Properties

    beatmapset +RemoveFromLoved | osu-api-v2-js
    interface RemoveFromLoved {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidReason;
        created_at: Date;
        id: number;
        type: "remove_from_loved";
        user_id: number;
    }

    Hierarchy

    • WithUserid
      • RemoveFromLoved

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "remove_from_loved"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    id: number
    type: "remove_from_loved"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Event.TagsEdit.html b/docs/interfaces/Beatmapset.Event.TagsEdit.html index d6ec527..7efff37 100644 --- a/docs/interfaces/Beatmapset.Event.TagsEdit.html +++ b/docs/interfaces/Beatmapset.Event.TagsEdit.html @@ -1,8 +1,8 @@ -TagsEdit | osu-api-v2-js
    interface TagsEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldtagsNewtags;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "tags_edit";
        user_id: number;
    }

    Hierarchy

    • WithOptionalDiscussion
    • WithUserid
      • TagsEdit

    Properties

    beatmapset +TagsEdit | osu-api-v2-js
    interface TagsEdit {
        beatmapset: WithUserHype;
        comment: WithDiscussionidPostidOldtagsNewtags;
        created_at: Date;
        discussion?: null | WithStartingpost;
        id: number;
        type: "tags_edit";
        user_id: number;
    }

    Hierarchy

    • WithOptionalDiscussion
    • WithUserid
      • TagsEdit

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "tags_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapset: WithUserHype
    created_at: Date
    discussion?: null | WithStartingpost
    id: number
    type: "tags_edit"
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Extended-1.html b/docs/interfaces/Beatmapset.Extended-1.html index b472a50..59a0eda 100644 --- a/docs/interfaces/Beatmapset.Extended-1.html +++ b/docs/interfaces/Beatmapset.Extended-1.html @@ -1,4 +1,4 @@ -Extended | osu-api-v2-js
    interface Extended {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist +Extended | osu-api-v2-js
    interface Extended {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      -
    • more_information: null | string
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      +
    • more_information: null | string
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Extended.Plus.html b/docs/interfaces/Beatmapset.Extended.Plus.html index d94e9d1..ce571a6 100644 --- a/docs/interfaces/Beatmapset.Extended.Plus.html +++ b/docs/interfaces/Beatmapset.Extended.Plus.html @@ -1,5 +1,5 @@ Plus | osu-api-v2-js

    Obtainable From

    API.getBeatmapset

    -
    interface Plus {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: WithFailtimes[];
        bpm: number;
        can_be_hyped: boolean;
        converts: WithFailtimes[];
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        current_nominations: {
            beatmapset_id: number;
            reset: boolean;
            rulesets: Ruleset[];
            user_id: number;
        }[];
        deleted_at: null | Date;
        description: {
            description: string;
        };
        discussion_locked: boolean;
        favourite_count: number;
        genre: {
            id: Genre;
            name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
        };
        has_favourited?: boolean;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        language: {
            id: Language;
            name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
        };
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        pack_tags: string[];
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        ratings: number[];
        recent_favourites: User[];
        related_users: User[];
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user: User;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    interface Plus {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: WithFailtimes[];
        bpm: number;
        can_be_hyped: boolean;
        converts: WithFailtimes[];
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        current_nominations: {
            beatmapset_id: number;
            reset: boolean;
            rulesets: Ruleset[];
            user_id: number;
        }[];
        deleted_at: null | Date;
        description: {
            description: string;
        };
        discussion_locked: boolean;
        favourite_count: number;
        genre: {
            id: Genre;
            name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
        };
        has_favourited?: boolean;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        language: {
            id: Language;
            name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
        };
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        pack_tags: string[];
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        ratings: number[];
        recent_favourites: User[];
        related_users: User[];
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user: User;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      -
    • more_information: null | string
    beatmaps: WithFailtimes[]

    The different beatmaps/difficulties this beatmapset has

    -
    bpm: number
    can_be_hyped: boolean
    converts: WithFailtimes[]

    The different beatmaps made for osu!, but converted to the other Rulesets

    -
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    current_nominations: {
        beatmapset_id: number;
        reset: boolean;
        rulesets: Ruleset[];
        user_id: number;
    }[]

    Type declaration

    • beatmapset_id: number
    • reset: boolean
    • rulesets: Ruleset[]
    • user_id: number
    deleted_at: null | Date
    description: {
        description: string;
    }

    Type declaration

    • description: string

      In HTML

      -
    discussion_locked: boolean
    favourite_count: number
    genre: {
        id: Genre;
        name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
    }

    Type declaration

    • id: Genre
    • name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"
    has_favourited?: boolean

    Only exists if authorized user

    -
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    language: {
        id: Language;
        name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
    }

    Type declaration

    • id: Language
    • name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    pack_tags: string[]
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    ranked: RankStatus
    ranked_date: null | Date
    ratings: number[]
    recent_favourites: User[]
    related_users: User[]
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user: User
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      +
    • more_information: null | string
    beatmaps: WithFailtimes[]

    The different beatmaps/difficulties this beatmapset has

    +
    bpm: number
    can_be_hyped: boolean
    converts: WithFailtimes[]

    The different beatmaps made for osu!, but converted to the other Rulesets

    +
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    current_nominations: {
        beatmapset_id: number;
        reset: boolean;
        rulesets: Ruleset[];
        user_id: number;
    }[]

    Type declaration

    • beatmapset_id: number
    • reset: boolean
    • rulesets: Ruleset[]
    • user_id: number
    deleted_at: null | Date
    description: {
        description: string;
    }

    Type declaration

    • description: string

      In HTML

      +
    discussion_locked: boolean
    favourite_count: number
    genre: {
        id: Genre;
        name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz";
    }

    Type declaration

    • id: Genre
    • name: "Any" | "Unspecified" | "Video Game" | "Anime" | "Rock" | "Pop" | "Other" | "Novelty" | "Hip Hop" | "Electronic" | "Metal" | "Classical" | "Folk" | "Jazz"
    has_favourited?: boolean

    Only exists if authorized user

    +
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    language: {
        id: Language;
        name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish";
    }

    Type declaration

    • id: Language
    • name: "Any" | "Unspecified" | "Other" | "English" | "Japanese" | "Chinese" | "Instrumental" | "Korean" | "French" | "German" | "Swedish" | "Spanish" | "Italian" | "Russian" | "Polish"
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    pack_tags: string[]
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    ranked: RankStatus
    ranked_date: null | Date
    ratings: number[]
    recent_favourites: User[]
    related_users: User[]
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user: User
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Extended.WithBeatmap.html b/docs/interfaces/Beatmapset.Extended.WithBeatmap.html index d2a6965..d327b1c 100644 --- a/docs/interfaces/Beatmapset.Extended.WithBeatmap.html +++ b/docs/interfaces/Beatmapset.Extended.WithBeatmap.html @@ -1,5 +1,5 @@ WithBeatmap | osu-api-v2-js

    Obtainable From

    API.getUserBeatmaps

    -
    interface WithBeatmap {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: Beatmap.Extended[];
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    interface WithBeatmap {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: Beatmap.Extended[];
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      -
    • more_information: null | string
    beatmaps: Beatmap.Extended[]
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      +
    • more_information: null | string
    beatmaps: Beatmap.Extended[]
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.Extended.WithBeatmapPacktags.html b/docs/interfaces/Beatmapset.Extended.WithBeatmapPacktags.html index 614acc8..25406ce 100644 --- a/docs/interfaces/Beatmapset.Extended.WithBeatmapPacktags.html +++ b/docs/interfaces/Beatmapset.Extended.WithBeatmapPacktags.html @@ -1,4 +1,4 @@ -WithBeatmapPacktags | osu-api-v2-js
    interface WithBeatmapPacktags {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: WithMaxcombo[];
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        pack_tags: string[];
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist +WithBeatmapPacktags | osu-api-v2-js
    interface WithBeatmapPacktags {
        artist: string;
        artist_unicode: string;
        availability: {
            download_disabled: boolean;
            more_information: null | string;
        };
        beatmaps: WithMaxcombo[];
        bpm: number;
        can_be_hyped: boolean;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        deleted_at: null | Date;
        discussion_locked: boolean;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        is_scoreable: boolean;
        last_updated: Date;
        legacy_thread_url: string;
        nominations_summary: {
            current: number;
            required: number;
        };
        nsfw: boolean;
        offset: number;
        pack_tags: string[];
        play_count: number;
        preview_url: string;
        ranked: RankStatus;
        ranked_date: null | Date;
        source: string;
        spotlight: boolean;
        status: string;
        storyboard: boolean;
        submitted_date: null | Date;
        tags: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      -
    • more_information: null | string
    beatmaps: WithMaxcombo[]
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    pack_tags: string[]
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    availability: {
        download_disabled: boolean;
        more_information: null | string;
    }

    Type declaration

    • download_disabled: boolean

      So it's false if you can download it

      +
    • more_information: null | string
    beatmaps: WithMaxcombo[]
    bpm: number
    can_be_hyped: boolean
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    deleted_at: null | Date
    discussion_locked: boolean
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    is_scoreable: boolean
    last_updated: Date
    legacy_thread_url: string
    nominations_summary: {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    nsfw: boolean
    offset: number
    pack_tags: string[]
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    ranked: RankStatus
    ranked_date: null | Date
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    storyboard: boolean
    submitted_date: null | Date
    tags: string
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.WithHype.html b/docs/interfaces/Beatmapset.WithHype.html index 5569fc0..b3bf529 100644 --- a/docs/interfaces/Beatmapset.WithHype.html +++ b/docs/interfaces/Beatmapset.WithHype.html @@ -1,4 +1,4 @@ -WithHype | osu-api-v2-js
    interface WithHype {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist +WithHype | osu-api-v2-js
    interface WithHype {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Beatmapset.WithUserHype.html b/docs/interfaces/Beatmapset.WithUserHype.html index 09256be..2abd040 100644 --- a/docs/interfaces/Beatmapset.WithUserHype.html +++ b/docs/interfaces/Beatmapset.WithUserHype.html @@ -1,4 +1,4 @@ -WithUserHype | osu-api-v2-js
    interface WithUserHype {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user: User;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    artist +WithUserHype | osu-api-v2-js
    interface WithUserHype {
        artist: string;
        artist_unicode: string;
        covers: {
            card: string;
            card@2x: string;
            cover: string;
            cover@2x: string;
            list: string;
            list@2x: string;
            slimcover: string;
            slimcover@2x: string;
        };
        creator: string;
        favourite_count: number;
        hype: null | {
            current: number;
            required: number;
        };
        id: number;
        nsfw: boolean;
        offset: number;
        play_count: number;
        preview_url: string;
        source: string;
        spotlight: boolean;
        status: string;
        title: string;
        title_unicode: string;
        user: User;
        user_id: number;
        video: boolean;
    }

    Hierarchy (view full)

    Properties

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    -
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    -
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    -
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    -
    user: User
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    artist: string
    artist_unicode: string
    covers: {
        card: string;
        card@2x: string;
        cover: string;
        cover@2x: string;
        list: string;
        list@2x: string;
        slimcover: string;
        slimcover@2x: string;
    }

    Type declaration

    • card: string
    • card@2x: string
    • cover: string
    • cover@2x: string
    • list: string
    • list@2x: string
    • slimcover: string
    • slimcover@2x: string
    creator: string
    favourite_count: number
    hype: null | {
        current: number;
        required: number;
    }

    Type declaration

    • current: number
    • required: number
    id: number
    nsfw: boolean
    offset: number
    play_count: number
    preview_url: string

    A string like that where id is the id of the beatmapset: //b.ppy.sh/preview/58951.mp3

    +
    source: string
    spotlight: boolean
    status: string

    Is it ranked, is it graveyarded, etc

    +
    title: string

    A title readable by any english-speaking person, so it'd be in romaji if the song's title is in Japanese

    +
    title_unicode: string

    Basically the title is the original language, so with hiragana, katakana and kanji if Japanese

    +
    user: User
    user_id: number
    video: boolean

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.Build-1.html b/docs/interfaces/Changelog.Build-1.html index cc2ac91..1e5f1b4 100644 --- a/docs/interfaces/Changelog.Build-1.html +++ b/docs/interfaces/Changelog.Build-1.html @@ -1,11 +1,11 @@ -Build | osu-api-v2-js
    interface Build {
        created_at: Date;
        display_version: string;
        id: number;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    created_at +Build | osu-api-v2-js
    interface Build {
        created_at: Date;
        display_version: string;
        id: number;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    display_version: string
    id: number
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    -
    version: null | string

    The name of the version

    -
    youtube_id: null | string

    If a video is showcased on the changelog

    +

    Properties

    created_at: Date
    display_version: string
    id: number
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    +
    version: null | string

    The name of the version

    +
    youtube_id: null | string

    If a video is showcased on the changelog

    Remarks

    The ID of a Youtube video is whatever comes after /watch?v= in its url

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.Build.WithChangelogentriesVersions.html b/docs/interfaces/Changelog.Build.WithChangelogentriesVersions.html index 363d8f6..762570f 100644 --- a/docs/interfaces/Changelog.Build.WithChangelogentriesVersions.html +++ b/docs/interfaces/Changelog.Build.WithChangelogentriesVersions.html @@ -1,5 +1,5 @@ WithChangelogentriesVersions | osu-api-v2-js

    Interface WithChangelogentriesVersions

    Obtainable From

    API.getChangelogBuild

    -
    interface WithChangelogentriesVersions {
        changelog_entries: {
            category: string;
            created_at: Date;
            github_pull_request_id: null | number;
            github_url: null | string;
            github_user?: {
                display_name: string;
                github_url: null | string;
                github_username: null | string;
                id: null | number;
                osu_username: null | string;
                user_id: null | number;
                user_url: null | string;
            };
            id: null | number;
            major: boolean;
            message?: null | string;
            message_html?: null | string;
            repository: null | string;
            title: null | string;
            type: string;
            url: null | string;
        }[];
        created_at: Date;
        display_version: string;
        id: number;
        users: number;
        version: null | string;
        versions: {
            next: null | WithUpdatestreams;
            previous: null | WithUpdatestreams;
        };
        youtube_id: null | string;
    }

    Hierarchy

    • WithChangelogentries
      • WithChangelogentriesVersions

    Properties

    interface WithChangelogentriesVersions {
        changelog_entries: {
            category: string;
            created_at: Date;
            github_pull_request_id: null | number;
            github_url: null | string;
            github_user?: {
                display_name: string;
                github_url: null | string;
                github_username: null | string;
                id: null | number;
                osu_username: null | string;
                user_id: null | number;
                user_url: null | string;
            };
            id: null | number;
            major: boolean;
            message?: null | string;
            message_html?: null | string;
            repository: null | string;
            title: null | string;
            type: string;
            url: null | string;
        }[];
        created_at: Date;
        display_version: string;
        id: number;
        users: number;
        version: null | string;
        versions: {
            next: null | WithUpdatestreams;
            previous: null | WithUpdatestreams;
        };
        youtube_id: null | string;
    }

    Hierarchy

    • WithChangelogentries
      • WithChangelogentriesVersions

    Properties

    Remarks

    Exists only if Markdown was requested, may still be null if there is no message

  • Optional message_html?: null | string

    Entry message in HTML format

    Remarks

    Exists only if HTML was requested, may still be null if there is no message

    -
  • repository: null | string
  • title: null | string
  • type: string
  • url: null | string
  • created_at: Date
    display_version: string
    id: number
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    -
    version: null | string

    The name of the version

    -
    versions: {
        next: null | WithUpdatestreams;
        previous: null | WithUpdatestreams;
    }

    Type declaration

    youtube_id: null | string

    If a video is showcased on the changelog

    +
  • repository: null | string
  • title: null | string
  • type: string
  • url: null | string
  • created_at: Date
    display_version: string
    id: number
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    +
    version: null | string

    The name of the version

    +
    versions: {
        next: null | WithUpdatestreams;
        previous: null | WithUpdatestreams;
    }

    Type declaration

    youtube_id: null | string

    If a video is showcased on the changelog

    Remarks

    The ID of a Youtube video is whatever comes after /watch?v= in its url

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.Build.WithUpdatestreams.html b/docs/interfaces/Changelog.Build.WithUpdatestreams.html index 6c0dd72..bd56d43 100644 --- a/docs/interfaces/Changelog.Build.WithUpdatestreams.html +++ b/docs/interfaces/Changelog.Build.WithUpdatestreams.html @@ -1,13 +1,13 @@ WithUpdatestreams | osu-api-v2-js
    interface WithUpdatestreams {
        created_at: Date;
        display_version: string;
        id: number;
        update_stream: UpdateStream;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    interface WithUpdatestreams {
        created_at: Date;
        display_version: string;
        id: number;
        update_stream: UpdateStream;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    display_version: string
    id: number
    update_stream: UpdateStream
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    -
    version: null | string

    The name of the version

    -
    youtube_id: null | string

    If a video is showcased on the changelog

    +

    Properties

    created_at: Date
    display_version: string
    id: number
    update_stream: UpdateStream
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    +
    version: null | string

    The name of the version

    +
    youtube_id: null | string

    If a video is showcased on the changelog

    Remarks

    The ID of a Youtube video is whatever comes after /watch?v= in its url

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.Build.WithUpdatestreamsChangelogentries.html b/docs/interfaces/Changelog.Build.WithUpdatestreamsChangelogentries.html index 1f0603b..0e2c5ac 100644 --- a/docs/interfaces/Changelog.Build.WithUpdatestreamsChangelogentries.html +++ b/docs/interfaces/Changelog.Build.WithUpdatestreamsChangelogentries.html @@ -1,5 +1,5 @@ WithUpdatestreamsChangelogentries | osu-api-v2-js

    Interface WithUpdatestreamsChangelogentries

    Obtainable From

    API.getChangelogBuilds

    -
    interface WithUpdatestreamsChangelogentries {
        changelog_entries: {
            category: string;
            created_at: Date;
            github_pull_request_id: null | number;
            github_url: null | string;
            github_user?: {
                display_name: string;
                github_url: null | string;
                github_username: null | string;
                id: null | number;
                osu_username: null | string;
                user_id: null | number;
                user_url: null | string;
            };
            id: null | number;
            major: boolean;
            message?: null | string;
            message_html?: null | string;
            repository: null | string;
            title: null | string;
            type: string;
            url: null | string;
        }[];
        created_at: Date;
        display_version: string;
        id: number;
        update_stream: UpdateStream;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    interface WithUpdatestreamsChangelogentries {
        changelog_entries: {
            category: string;
            created_at: Date;
            github_pull_request_id: null | number;
            github_url: null | string;
            github_user?: {
                display_name: string;
                github_url: null | string;
                github_username: null | string;
                id: null | number;
                osu_username: null | string;
                user_id: null | number;
                user_url: null | string;
            };
            id: null | number;
            major: boolean;
            message?: null | string;
            message_html?: null | string;
            repository: null | string;
            title: null | string;
            type: string;
            url: null | string;
        }[];
        created_at: Date;
        display_version: string;
        id: number;
        update_stream: UpdateStream;
        users: number;
        version: null | string;
        youtube_id: null | string;
    }

    Hierarchy (view full)

    Properties

    Remarks

    Exists only if Markdown was requested, may still be null if there is no message

  • Optional message_html?: null | string

    Entry message in HTML format

    Remarks

    Exists only if HTML was requested, may still be null if there is no message

    -
  • repository: null | string
  • title: null | string
  • type: string
  • url: null | string
  • created_at: Date
    display_version: string
    id: number
    update_stream: UpdateStream
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    -
    version: null | string

    The name of the version

    -
    youtube_id: null | string

    If a video is showcased on the changelog

    +
  • repository: null | string
  • title: null | string
  • type: string
  • url: null | string
  • created_at: Date
    display_version: string
    id: number
    update_stream: UpdateStream
    users: number

    How many users are playing on this version of the game? (if web, should be 0)

    +
    version: null | string

    The name of the version

    +
    youtube_id: null | string

    If a video is showcased on the changelog

    Remarks

    The ID of a Youtube video is whatever comes after /watch?v= in its url

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.UpdateStream-1.html b/docs/interfaces/Changelog.UpdateStream-1.html index 4110622..c609f5f 100644 --- a/docs/interfaces/Changelog.UpdateStream-1.html +++ b/docs/interfaces/Changelog.UpdateStream-1.html @@ -1,8 +1,8 @@ UpdateStream | osu-api-v2-js
    interface UpdateStream {
        display_name: null | string;
        id: number;
        is_featured: boolean;
        name: string;
    }

    Hierarchy (view full)

    Properties

    interface UpdateStream {
        display_name: null | string;
        id: number;
        is_featured: boolean;
        name: string;
    }

    Hierarchy (view full)

    Properties

    display_name: null | string

    Stable would be Stable, Lazer would be Lazer

    -
    id: number
    is_featured: boolean
    name: string

    Stable would be stable40, Lazer would be lazer

    -

    Generated using TypeDoc

    \ No newline at end of file +
    id: number
    is_featured: boolean
    name: string

    Stable would be stable40, Lazer would be lazer

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Changelog.UpdateStream.WithLatestbuildUsercount.html b/docs/interfaces/Changelog.UpdateStream.WithLatestbuildUsercount.html index 55f857d..fce077a 100644 --- a/docs/interfaces/Changelog.UpdateStream.WithLatestbuildUsercount.html +++ b/docs/interfaces/Changelog.UpdateStream.WithLatestbuildUsercount.html @@ -1,12 +1,12 @@ WithLatestbuildUsercount | osu-api-v2-js

    Obtainable From

    API.getChangelogStreams

    -
    interface WithLatestbuildUsercount {
        display_name: null | string;
        id: number;
        is_featured: boolean;
        latest_build: null | Build;
        name: string;
        user_count: number;
    }

    Hierarchy (view full)

    Properties

    interface WithLatestbuildUsercount {
        display_name: null | string;
        id: number;
        is_featured: boolean;
        latest_build: null | Build;
        name: string;
        user_count: number;
    }

    Hierarchy (view full)

    Properties

    display_name: null | string

    Stable would be Stable, Lazer would be Lazer

    -
    id: number
    is_featured: boolean
    latest_build: null | Build
    name: string

    Stable would be stable40, Lazer would be lazer

    -
    user_count: number

    How many users are playing on this?

    +
    id: number
    is_featured: boolean
    latest_build: null | Build
    name: string

    Stable would be stable40, Lazer would be lazer

    +
    user_count: number

    How many users are playing on this?

    Remarks

    Should be 0 if web

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Chat.Channel-1.html b/docs/interfaces/Chat.Channel-1.html index bc51ce7..fdc0343 100644 --- a/docs/interfaces/Chat.Channel-1.html +++ b/docs/interfaces/Chat.Channel-1.html @@ -1,10 +1,10 @@ Channel | osu-api-v2-js

    Interface Channel

    interface Channel {
        channel_id: number;
        description: null | string;
        icon: null | string;
        moderated: boolean;
        name: string;
        type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE";
        uuid: null | string;
    }

    Hierarchy (view full)

    Properties

    interface Channel {
        channel_id: number;
        description: null | string;
        icon: null | string;
        moderated: boolean;
        name: string;
        type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE";
        uuid: null | string;
    }

    Hierarchy (view full)

    Properties

    channel_id: number
    description: null | string
    icon: null | string
    moderated: boolean
    name: string
    type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE"
    uuid: null | string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    channel_id: number
    description: null | string
    icon: null | string
    moderated: boolean
    name: string
    type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE"
    uuid: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Chat.Channel.WithDetails.html b/docs/interfaces/Chat.Channel.WithDetails.html index 696247a..7ab3d20 100644 --- a/docs/interfaces/Chat.Channel.WithDetails.html +++ b/docs/interfaces/Chat.Channel.WithDetails.html @@ -1,6 +1,6 @@ WithDetails | osu-api-v2-js
    interface WithDetails {
        channel_id: number;
        current_user_attributes: {
            can_message: boolean;
            can_message_error: null | string;
            last_read_id: null | number;
        };
        description: null | string;
        icon: null | string;
        last_message_id: number;
        moderated: boolean;
        name: string;
        type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE";
        users: number[];
        uuid: null | string;
    }

    Hierarchy (view full)

    Properties

    interface WithDetails {
        channel_id: number;
        current_user_attributes: {
            can_message: boolean;
            can_message_error: null | string;
            last_read_id: null | number;
        };
        description: null | string;
        icon: null | string;
        last_message_id: number;
        moderated: boolean;
        name: string;
        type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE";
        users: number[];
        uuid: null | string;
    }

    Hierarchy (view full)

    Properties

    channel_id: number
    current_user_attributes: {
        can_message: boolean;
        can_message_error: null | string;
        last_read_id: null | number;
    }

    Type declaration

    • can_message: boolean
    • can_message_error: null | string

      The reason why messages can't be sent in this channel

      +

    Properties

    channel_id: number
    current_user_attributes: {
        can_message: boolean;
        can_message_error: null | string;
        last_read_id: null | number;
    }

    Type declaration

    • can_message: boolean
    • can_message_error: null | string

      The reason why messages can't be sent in this channel

      Remarks

      Is null if messages can be sent

    • last_read_id: null | number

      Remarks

      Is null if no message has been read (I think)

      -
    description: null | string
    icon: null | string
    last_message_id: number
    moderated: boolean
    name: string
    type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE"
    users: number[]

    The ids of the users that are in the channel

    +
    description: null | string
    icon: null | string
    last_message_id: number
    moderated: boolean
    name: string
    type: "PUBLIC" | "PRIVATE" | "MULTIPLAYER" | "SPECTATOR" | "TEMPORARY" | "PM" | "GROUP" | "ANNOUNCE"
    users: number[]

    The ids of the users that are in the channel

    Remarks

    Is empty for public channels

    -
    uuid: null | string

    Generated using TypeDoc

    \ No newline at end of file +
    uuid: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Chat.Message-1.html b/docs/interfaces/Chat.Message-1.html index d06bbde..c65c6a6 100644 --- a/docs/interfaces/Chat.Message-1.html +++ b/docs/interfaces/Chat.Message-1.html @@ -1,7 +1,7 @@ Message | osu-api-v2-js

    Interface Message

    interface Message {
        channel_id: number;
        content: string;
        is_action: boolean;
        message_id: number;
        sender: User;
        sender_id: number;
        timestamp: Date;
        type: string;
        uuid?: null | string;
    }

    Properties

    interface Message {
        channel_id: number;
        content: string;
        is_action: boolean;
        message_id: number;
        sender: User;
        sender_id: number;
        timestamp: Date;
        type: string;
        uuid?: null | string;
    }

    Properties

    Properties

    channel_id: number
    content: string
    is_action: boolean
    message_id: number
    sender: User
    sender_id: number
    timestamp: Date
    type: string

    Like "action", "markdown", "plain"

    -
    uuid?: null | string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    channel_id: number
    content: string
    is_action: boolean
    message_id: number
    sender: User
    sender_id: number
    timestamp: Date
    type: string

    Like "action", "markdown", "plain"

    +
    uuid?: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Chat.UserSilence.html b/docs/interfaces/Chat.UserSilence.html index 6837f02..7551c80 100644 --- a/docs/interfaces/Chat.UserSilence.html +++ b/docs/interfaces/Chat.UserSilence.html @@ -1,4 +1,4 @@ UserSilence | osu-api-v2-js

    Interface UserSilence

    Obtainable From

    API.keepChatAlive

    -
    interface UserSilence {
        id: number;
        user_id: number;
    }

    Properties

    id +
    interface UserSilence {
        id: number;
        user_id: number;
    }

    Properties

    Properties

    id: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    id: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Comment-1.html b/docs/interfaces/Comment-1.html index 63aa442..e23f1b0 100644 --- a/docs/interfaces/Comment-1.html +++ b/docs/interfaces/Comment-1.html @@ -1,4 +1,4 @@ -Comment | osu-api-v2-js

    Interface Comment

    interface Comment {
        commentable_id: number;
        commentable_type: "beatmapset" | "build" | "news_post";
        created_at: Date;
        deleted_at: null | Date;
        edited_at: null | Date;
        edited_by_id: null | number;
        id: number;
        legacy_name: null | string;
        message?: string;
        message_html?: string;
        parent_id: null | number;
        pinned: boolean;
        replies_count: number;
        updated_at: Date;
        user_id: number;
        votes_count: number;
    }

    Properties

    commentable_id +Comment | osu-api-v2-js

    Interface Comment

    interface Comment {
        commentable_id: number;
        commentable_type: "beatmapset" | "build" | "news_post";
        created_at: Date;
        deleted_at: null | Date;
        edited_at: null | Date;
        edited_by_id: null | number;
        id: number;
        legacy_name: null | string;
        message?: string;
        message_html?: string;
        parent_id: null | number;
        pinned: boolean;
        replies_count: number;
        updated_at: Date;
        user_id: null | number;
        votes_count: number;
    }

    Properties

    commentable_id: number
    commentable_type: "beatmapset" | "build" | "news_post"

    "build" means changelog, like pretty much everywhere in the API

    -
    created_at: Date
    deleted_at: null | Date
    edited_at: null | Date
    edited_by_id: null | number
    id: number
    legacy_name: null | string

    I think it's the name used by the person who made the comment before a migration to a new comment system in 2018 or before?

    -
    message?: string

    Yes comments may not have this property, yes this is stupid

    -
    message_html?: string

    Yes comments may not have this property, yes this is stupid

    -
    parent_id: null | number
    pinned: boolean
    replies_count: number
    updated_at: Date
    user_id: number
    votes_count: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    commentable_id: number
    commentable_type: "beatmapset" | "build" | "news_post"

    "build" means changelog, like pretty much everywhere in the API

    +
    created_at: Date
    deleted_at: null | Date
    edited_at: null | Date
    edited_by_id: null | number
    id: number
    legacy_name: null | string

    I think it's the name used by the person who made the comment before a migration to a new comment system in 2018 or before?

    +
    message?: string

    Yes comments may not have this property, yes this is stupid

    +
    message_html?: string

    Yes comments may not have this property, yes this is stupid

    +
    parent_id: null | number
    pinned: boolean
    replies_count: number
    updated_at: Date
    user_id: null | number

    Remarks

    Is null if the author of the comment from the old comment system has no associated osu! user, presumably

    +
    votes_count: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Comment.Bundle-1.html b/docs/interfaces/Comment.Bundle-1.html index 6913928..59b9d03 100644 --- a/docs/interfaces/Comment.Bundle-1.html +++ b/docs/interfaces/Comment.Bundle-1.html @@ -1,5 +1,5 @@ Bundle | osu-api-v2-js

    Obtainable From

    API.getComment

    -
    interface Bundle {
        commentable_meta: {
            current_user_attributes: {
                can_new_comment_reason: null | string;
            };
            id: number;
            owner_id: null | number;
            owner_title: null | string;
            title: string;
            type: "beatmapset" | "build" | "news_post";
            url: string;
        }[];
        comments: Comment[];
        cursor: null | {
            created_at: Date;
            id: number;
        };
        deleted_commentable_meta: number;
        has_more: boolean;
        has_more_id: null | number;
        included_comments: Comment[];
        pinned_comments: Comment[];
        sort: "new" | "top" | "old";
        user_follow: boolean;
        user_votes: number[];
        users: User[];
    }

    Hierarchy (view full)

    Properties

    interface Bundle {
        commentable_meta: {
            current_user_attributes: {
                can_new_comment_reason: null | string;
            };
            id: number;
            owner_id: null | number;
            owner_title: null | string;
            title: string;
            type: "beatmapset" | "build" | "news_post";
            url: string;
        }[];
        comments: Comment[];
        cursor: null | {
            created_at: Date;
            id: number;
        };
        deleted_commentable_meta: number;
        has_more: boolean;
        has_more_id: null | number;
        included_comments: Comment[];
        pinned_comments: Comment[];
        sort: "new" | "top" | "old";
        user_follow: boolean;
        user_votes: number[];
        users: User[];
    }

    Hierarchy (view full)

    Properties

    commentable_meta: {
        current_user_attributes: {
            can_new_comment_reason: null | string;
        };
        id: number;
        owner_id: null | number;
        owner_title: null | string;
        title: string;
        type: "beatmapset" | "build" | "news_post";
        url: string;
    }[]

    Type declaration

    • current_user_attributes: {
          can_new_comment_reason: null | string;
      }
      • can_new_comment_reason: null | string

        The string explains why the authorized user cannot post a new comment in this specific context, it's null if they can

        Remarks

        If there is simply no authorized user, this'll be a string such as "Please sign in to proceed."

    • id: number
    • owner_id: null | number
    • owner_title: null | string

      Like MAPPER

      -
    • title: string
    • type: "beatmapset" | "build" | "news_post"
    • url: string
    comments: Comment[]
    cursor: null | {
        created_at: Date;
        id: number;
    }

    Type declaration

    • created_at: Date
    • id: number
    deleted_commentable_meta: number

    This is an original property of the package that lets you know how many CommentableMetas that only consist of a title of "Deleted Item" got removed

    +
  • title: string
  • type: "beatmapset" | "build" | "news_post"
  • url: string
  • comments: Comment[]
    cursor: null | {
        created_at: Date;
        id: number;
    }

    Type declaration

    • created_at: Date
    • id: number
    deleted_commentable_meta: number

    This is an original property of the package that lets you know how many CommentableMetas that only consist of a title of "Deleted Item" got removed

    Remarks

    This DOES COUNT the one that is always there, see https://github.com/ppy/osu-web/issues/11077

    -
    has_more: boolean
    has_more_id: null | number
    included_comments: Comment[]
    pinned_comments: Comment[]
    sort: "new" | "top" | "old"
    user_follow: boolean
    user_votes: number[]
    users: User[]

    Generated using TypeDoc

    \ No newline at end of file +
    has_more: boolean
    has_more_id: null | number
    included_comments: Comment[]
    pinned_comments: Comment[]
    sort: "new" | "top" | "old"
    user_follow: boolean
    user_votes: number[]
    users: User[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Comment.Bundle.WithTotalToplevelcount.html b/docs/interfaces/Comment.Bundle.WithTotalToplevelcount.html index 2a3829c..2812295 100644 --- a/docs/interfaces/Comment.Bundle.WithTotalToplevelcount.html +++ b/docs/interfaces/Comment.Bundle.WithTotalToplevelcount.html @@ -1,5 +1,5 @@ WithTotalToplevelcount | osu-api-v2-js

    Interface WithTotalToplevelcount

    Obtainable From

    API.getComments

    -
    interface WithTotalToplevelcount {
        commentable_meta: {
            current_user_attributes: {
                can_new_comment_reason: null | string;
            };
            id: number;
            owner_id: null | number;
            owner_title: null | string;
            title: string;
            type: "beatmapset" | "build" | "news_post";
            url: string;
        }[];
        comments: Comment[];
        cursor: null | {
            created_at: Date;
            id: number;
        };
        deleted_commentable_meta: number;
        has_more: boolean;
        has_more_id: null | number;
        included_comments: Comment[];
        pinned_comments: Comment[];
        sort: "new" | "top" | "old";
        top_level_count: number;
        total: number;
        user_follow: boolean;
        user_votes: number[];
        users: User[];
    }

    Hierarchy (view full)

    Properties

    interface WithTotalToplevelcount {
        commentable_meta: {
            current_user_attributes: {
                can_new_comment_reason: null | string;
            };
            id: number;
            owner_id: null | number;
            owner_title: null | string;
            title: string;
            type: "beatmapset" | "build" | "news_post";
            url: string;
        }[];
        comments: Comment[];
        cursor: null | {
            created_at: Date;
            id: number;
        };
        deleted_commentable_meta: number;
        has_more: boolean;
        has_more_id: null | number;
        included_comments: Comment[];
        pinned_comments: Comment[];
        sort: "new" | "top" | "old";
        top_level_count: number;
        total: number;
        user_follow: boolean;
        user_votes: number[];
        users: User[];
    }

    Hierarchy (view full)

    Properties

    commentable_meta: {
        current_user_attributes: {
            can_new_comment_reason: null | string;
        };
        id: number;
        owner_id: null | number;
        owner_title: null | string;
        title: string;
        type: "beatmapset" | "build" | "news_post";
        url: string;
    }[]

    Type declaration

    • current_user_attributes: {
          can_new_comment_reason: null | string;
      }
      • can_new_comment_reason: null | string

        The string explains why the authorized user cannot post a new comment in this specific context, it's null if they can

        Remarks

        If there is simply no authorized user, this'll be a string such as "Please sign in to proceed."

    • id: number
    • owner_id: null | number
    • owner_title: null | string

      Like MAPPER

      -
    • title: string
    • type: "beatmapset" | "build" | "news_post"
    • url: string
    comments: Comment[]
    cursor: null | {
        created_at: Date;
        id: number;
    }

    Type declaration

    • created_at: Date
    • id: number
    deleted_commentable_meta: number

    This is an original property of the package that lets you know how many CommentableMetas that only consist of a title of "Deleted Item" got removed

    +
  • title: string
  • type: "beatmapset" | "build" | "news_post"
  • url: string
  • comments: Comment[]
    cursor: null | {
        created_at: Date;
        id: number;
    }

    Type declaration

    • created_at: Date
    • id: number
    deleted_commentable_meta: number

    This is an original property of the package that lets you know how many CommentableMetas that only consist of a title of "Deleted Item" got removed

    Remarks

    This DOES COUNT the one that is always there, see https://github.com/ppy/osu-web/issues/11077

    -
    has_more: boolean
    has_more_id: null | number
    included_comments: Comment[]
    pinned_comments: Comment[]
    sort: "new" | "top" | "old"
    top_level_count: number
    total: number
    user_follow: boolean
    user_votes: number[]
    users: User[]

    Generated using TypeDoc

    \ No newline at end of file +
    has_more: boolean
    has_more_id: null | number
    included_comments: Comment[]
    pinned_comments: Comment[]
    sort: "new" | "top" | "old"
    top_level_count: number
    total: number
    user_follow: boolean
    user_votes: number[]
    users: User[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event-1.html b/docs/interfaces/Event-1.html index 3c655ff..7069237 100644 --- a/docs/interfaces/Event-1.html +++ b/docs/interfaces/Event-1.html @@ -1,3 +1,3 @@ -Event | osu-api-v2-js

    Interface Event

    interface Event {
        created_at: Date;
        id: number;
    }

    Hierarchy (view full)

    Properties

    created_at +Event | osu-api-v2-js

    Interface Event

    interface Event {
        created_at: Date;
        id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.Achievement.html b/docs/interfaces/Event.Achievement.html index 1c5fdab..09baff0 100644 --- a/docs/interfaces/Event.Achievement.html +++ b/docs/interfaces/Event.Achievement.html @@ -1,8 +1,8 @@ -Achievement | osu-api-v2-js

    Interface Achievement

    interface Achievement {
        achievement: {
            description: string;
            grouping: string;
            icon_url: string;
            id: number;
            instructions: null | string;
            mode: null | "osu" | "taiko" | "fruits" | "mania";
            name: string;
            ordering: number;
            slug: string;
        };
        created_at: Date;
        id: number;
        type: "achievement";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    achievement +Achievement | osu-api-v2-js

    Interface Achievement

    interface Achievement {
        achievement: {
            description: string;
            grouping: string;
            icon_url: string;
            id: number;
            instructions: null | string;
            mode: null | "osu" | "taiko" | "fruits" | "mania";
            name: string;
            ordering: number;
            slug: string;
        };
        created_at: Date;
        id: number;
        type: "achievement";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    achievement: {
        description: string;
        grouping: string;
        icon_url: string;
        id: number;
        instructions: null | string;
        mode: null | "osu" | "taiko" | "fruits" | "mania";
        name: string;
        ordering: number;
        slug: string;
    }

    Type declaration

    • description: string
    • grouping: string
    • icon_url: string
    • id: number
    • instructions: null | string

      Remarks

      May contain HTML (like have the text between )

    • mode: null | "osu" | "taiko" | "fruits" | "mania"

      If the achievement is for a specific mode only (such as pass a 2* beatmap in taiko)

      -
    • name: string
    • ordering: number
    • slug: string
    created_at: Date
    id: number
    type: "achievement"

    Generated using TypeDoc

    \ No newline at end of file +
  • name: string
  • ordering: number
  • slug: string
  • created_at: Date
    id: number
    type: "achievement"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapPlaycount.html b/docs/interfaces/Event.BeatmapPlaycount.html index ab53d5d..1d959b2 100644 --- a/docs/interfaces/Event.BeatmapPlaycount.html +++ b/docs/interfaces/Event.BeatmapPlaycount.html @@ -1,6 +1,6 @@ -BeatmapPlaycount | osu-api-v2-js

    Interface BeatmapPlaycount

    interface BeatmapPlaycount {
        beatmap: Event.SharedProperties.Beatmap;
        count: number;
        created_at: Date;
        id: number;
        type: "beatmapPlaycount";
    }

    Hierarchy (view full)

    Properties

    beatmap +BeatmapPlaycount | osu-api-v2-js

    Interface BeatmapPlaycount

    interface BeatmapPlaycount {
        beatmap: Event.SharedProperties.Beatmap;
        count: number;
        created_at: Date;
        id: number;
        type: "beatmapPlaycount";
    }

    Hierarchy (view full)

    Properties

    count: number
    created_at: Date
    id: number
    type: "beatmapPlaycount"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    count: number
    created_at: Date
    id: number
    type: "beatmapPlaycount"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapsetApprove.html b/docs/interfaces/Event.BeatmapsetApprove.html index 8a11a9e..9e2aff1 100644 --- a/docs/interfaces/Event.BeatmapsetApprove.html +++ b/docs/interfaces/Event.BeatmapsetApprove.html @@ -1,7 +1,7 @@ -BeatmapsetApprove | osu-api-v2-js

    Interface BeatmapsetApprove

    interface BeatmapsetApprove {
        approval: "loved" | "ranked" | "qualified" | "approved";
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetApprove";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    approval +BeatmapsetApprove | osu-api-v2-js

    Interface BeatmapsetApprove

    interface BeatmapsetApprove {
        approval: "loved" | "ranked" | "qualified" | "approved";
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetApprove";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    approval: "loved" | "ranked" | "qualified" | "approved"
    created_at: Date
    id: number
    type: "beatmapsetApprove"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    approval: "loved" | "ranked" | "qualified" | "approved"
    created_at: Date
    id: number
    type: "beatmapsetApprove"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapsetDelete.html b/docs/interfaces/Event.BeatmapsetDelete.html index 1ff3a45..36ea173 100644 --- a/docs/interfaces/Event.BeatmapsetDelete.html +++ b/docs/interfaces/Event.BeatmapsetDelete.html @@ -1,5 +1,5 @@ -BeatmapsetDelete | osu-api-v2-js

    Interface BeatmapsetDelete

    interface BeatmapsetDelete {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetDelete";
    }

    Hierarchy (view full)

    Properties

    beatmapset +BeatmapsetDelete | osu-api-v2-js

    Interface BeatmapsetDelete

    interface BeatmapsetDelete {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetDelete";
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    id: number
    type: "beatmapsetDelete"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "beatmapsetDelete"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapsetRevive.html b/docs/interfaces/Event.BeatmapsetRevive.html index 6a5a80b..b569c08 100644 --- a/docs/interfaces/Event.BeatmapsetRevive.html +++ b/docs/interfaces/Event.BeatmapsetRevive.html @@ -1,6 +1,6 @@ -BeatmapsetRevive | osu-api-v2-js

    Interface BeatmapsetRevive

    interface BeatmapsetRevive {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetRevive";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    beatmapset +BeatmapsetRevive | osu-api-v2-js

    Interface BeatmapsetRevive

    interface BeatmapsetRevive {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetRevive";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    id: number
    type: "beatmapsetRevive"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "beatmapsetRevive"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapsetUpdate.html b/docs/interfaces/Event.BeatmapsetUpdate.html index f5fe570..312e4f1 100644 --- a/docs/interfaces/Event.BeatmapsetUpdate.html +++ b/docs/interfaces/Event.BeatmapsetUpdate.html @@ -1,6 +1,6 @@ -BeatmapsetUpdate | osu-api-v2-js

    Interface BeatmapsetUpdate

    interface BeatmapsetUpdate {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetUpdate";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    beatmapset +BeatmapsetUpdate | osu-api-v2-js

    Interface BeatmapsetUpdate

    interface BeatmapsetUpdate {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetUpdate";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    id: number
    type: "beatmapsetUpdate"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "beatmapsetUpdate"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.BeatmapsetUpload.html b/docs/interfaces/Event.BeatmapsetUpload.html index 39656ff..8bab1e1 100644 --- a/docs/interfaces/Event.BeatmapsetUpload.html +++ b/docs/interfaces/Event.BeatmapsetUpload.html @@ -1,6 +1,6 @@ -BeatmapsetUpload | osu-api-v2-js

    Interface BeatmapsetUpload

    interface BeatmapsetUpload {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetUpload";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    beatmapset +BeatmapsetUpload | osu-api-v2-js

    Interface BeatmapsetUpload

    interface BeatmapsetUpload {
        beatmapset: Event.SharedProperties.Beatmapset;
        created_at: Date;
        id: number;
        type: "beatmapsetUpload";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    id: number
    type: "beatmapsetUpload"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "beatmapsetUpload"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.Rank.html b/docs/interfaces/Event.Rank.html index f266938..603e5ae 100644 --- a/docs/interfaces/Event.Rank.html +++ b/docs/interfaces/Event.Rank.html @@ -1,4 +1,4 @@ -Rank | osu-api-v2-js
    interface Rank {
        beatmap: Event.SharedProperties.Beatmap;
        created_at: Date;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        rank: number;
        scoreRank: string;
        type: "rank";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    beatmap +Rank | osu-api-v2-js
    interface Rank {
        beatmap: Event.SharedProperties.Beatmap;
        created_at: Date;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        rank: number;
        scoreRank: string;
        type: "rank";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    rank: number

    The position achieved, like 14

    -
    scoreRank: string

    The grade, like "S"

    -
    type: "rank"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    rank: number

    The position achieved, like 14

    +
    scoreRank: string

    The grade, like "S"

    +
    type: "rank"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.RankLost.html b/docs/interfaces/Event.RankLost.html index ce93560..32ef8cf 100644 --- a/docs/interfaces/Event.RankLost.html +++ b/docs/interfaces/Event.RankLost.html @@ -1,7 +1,7 @@ -RankLost | osu-api-v2-js

    Interface RankLost

    interface RankLost {
        beatmap: Event.SharedProperties.Beatmap;
        created_at: Date;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        type: "rankLost";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    beatmap +RankLost | osu-api-v2-js

    Interface RankLost

    interface RankLost {
        beatmap: Event.SharedProperties.Beatmap;
        created_at: Date;
        id: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        type: "rankLost";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at: Date
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    type: "rankLost"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    type: "rankLost"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.SharedProperties.Beatmap.html b/docs/interfaces/Event.SharedProperties.Beatmap.html index b361cc7..5f476ca 100644 --- a/docs/interfaces/Event.SharedProperties.Beatmap.html +++ b/docs/interfaces/Event.SharedProperties.Beatmap.html @@ -1,5 +1,5 @@ -Beatmap | osu-api-v2-js
    interface Beatmap {
        title: string;
        url: string;
    }

    Properties

    title +Beatmap | osu-api-v2-js
    interface Beatmap {
        title: string;
        url: string;
    }

    Properties

    Properties

    title: string

    Format: {artist} - {song_name} [{difficulty_name}]

    -
    url: string

    What goes after the website's URL, like it could be the /b/2980857?m=0 of https://osu.ppy.sh/b/2980857?m=0 (/{beatmap_id}?m={ruleset_id})

    -

    Generated using TypeDoc

    \ No newline at end of file +
    url: string

    What goes after the website's URL, like it could be the /b/2980857?m=0 of https://osu.ppy.sh/b/2980857?m=0 (/{beatmap_id}?m={ruleset_id})

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.SharedProperties.Beatmapset.html b/docs/interfaces/Event.SharedProperties.Beatmapset.html index 6525e95..6df3474 100644 --- a/docs/interfaces/Event.SharedProperties.Beatmapset.html +++ b/docs/interfaces/Event.SharedProperties.Beatmapset.html @@ -1,5 +1,5 @@ -Beatmapset | osu-api-v2-js
    interface Beatmapset {
        title: string;
        url: string;
    }

    Properties

    title +Beatmapset | osu-api-v2-js
    interface Beatmapset {
        title: string;
        url: string;
    }

    Properties

    Properties

    title: string

    Format: {artist} - {song_name}

    -
    url: string

    What goes after the website's URL, like it could be the /s/689155 of https://osu.ppy.sh/s/689155 (/{beatmapset_id})

    -

    Generated using TypeDoc

    \ No newline at end of file +
    url: string

    What goes after the website's URL, like it could be the /s/689155 of https://osu.ppy.sh/s/689155 (/{beatmapset_id})

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.SharedProperties.User.html b/docs/interfaces/Event.SharedProperties.User.html index 90a04af..2e940a4 100644 --- a/docs/interfaces/Event.SharedProperties.User.html +++ b/docs/interfaces/Event.SharedProperties.User.html @@ -1,4 +1,4 @@ -User | osu-api-v2-js
    interface User {
        url: string;
        username: string;
    }

    Properties

    url +User | osu-api-v2-js
    interface User {
        url: string;
        username: string;
    }

    Properties

    Properties

    url: string

    What goes after the website's URL, so for example, it could be the /u/7276846 of https://osu.ppy.sh/u/7276846 (or users instead of u)

    -
    username: string

    Generated using TypeDoc

    \ No newline at end of file +
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.UserSupportAgain.html b/docs/interfaces/Event.UserSupportAgain.html index 2fb75c7..4d13ecb 100644 --- a/docs/interfaces/Event.UserSupportAgain.html +++ b/docs/interfaces/Event.UserSupportAgain.html @@ -1,5 +1,5 @@ -UserSupportAgain | osu-api-v2-js

    Interface UserSupportAgain

    interface UserSupportAgain {
        created_at: Date;
        id: number;
        type: "userSupportAgain";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at +UserSupportAgain | osu-api-v2-js

    Interface UserSupportAgain

    interface UserSupportAgain {
        created_at: Date;
        id: number;
        type: "userSupportAgain";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number
    type: "userSupportAgain"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "userSupportAgain"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.UserSupportFirst.html b/docs/interfaces/Event.UserSupportFirst.html index 400a1ee..5c3a14a 100644 --- a/docs/interfaces/Event.UserSupportFirst.html +++ b/docs/interfaces/Event.UserSupportFirst.html @@ -1,5 +1,5 @@ -UserSupportFirst | osu-api-v2-js

    Interface UserSupportFirst

    interface UserSupportFirst {
        created_at: Date;
        id: number;
        type: "userSupportFirst";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at +UserSupportFirst | osu-api-v2-js

    Interface UserSupportFirst

    interface UserSupportFirst {
        created_at: Date;
        id: number;
        type: "userSupportFirst";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number
    type: "userSupportFirst"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "userSupportFirst"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.UserSupportGift.html b/docs/interfaces/Event.UserSupportGift.html index 5bf33f3..b651498 100644 --- a/docs/interfaces/Event.UserSupportGift.html +++ b/docs/interfaces/Event.UserSupportGift.html @@ -1,5 +1,5 @@ -UserSupportGift | osu-api-v2-js

    Interface UserSupportGift

    interface UserSupportGift {
        created_at: Date;
        id: number;
        type: "userSupportGift";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    created_at +UserSupportGift | osu-api-v2-js

    Interface UserSupportGift

    interface UserSupportGift {
        created_at: Date;
        id: number;
        type: "userSupportGift";
        user: Event.SharedProperties.User;
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number
    type: "userSupportGift"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "userSupportGift"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Event.UsernameChange.html b/docs/interfaces/Event.UsernameChange.html index b351d00..c299a69 100644 --- a/docs/interfaces/Event.UsernameChange.html +++ b/docs/interfaces/Event.UsernameChange.html @@ -1,6 +1,6 @@ -UsernameChange | osu-api-v2-js

    Interface UsernameChange

    interface UsernameChange {
        created_at: Date;
        id: number;
        type: "usernameChange";
        user: {
            previousUsername: string;
            url: string;
            username: string;
        };
    }

    Hierarchy (view full)

    Properties

    created_at +UsernameChange | osu-api-v2-js

    Interface UsernameChange

    interface UsernameChange {
        created_at: Date;
        id: number;
        type: "usernameChange";
        user: {
            previousUsername: string;
            url: string;
            username: string;
        };
    }

    Hierarchy (view full)

    Properties

    Properties

    created_at: Date
    id: number
    type: "usernameChange"
    user: {
        previousUsername: string;
        url: string;
        username: string;
    }

    Type declaration

    • previousUsername: string
    • url: string

      What goes after the website's URL, so for example, it could be the /u/7276846 of https://osu.ppy.sh/u/7276846 (or users instead of u)

      -
    • username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    id: number
    type: "usernameChange"
    user: {
        previousUsername: string;
        url: string;
        username: string;
    }

    Type declaration

    • previousUsername: string
    • url: string

      What goes after the website's URL, so for example, it could be the /u/7276846 of https://osu.ppy.sh/u/7276846 (or users instead of u)

      +
    • username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Forum.Post-1.html b/docs/interfaces/Forum.Post-1.html index 68c7fca..ae2d985 100644 --- a/docs/interfaces/Forum.Post-1.html +++ b/docs/interfaces/Forum.Post-1.html @@ -2,7 +2,7 @@ API.createForumTopic / API.getForumTopicAndPosts / API.editForumPost

    -
    interface Post {
        body: {
            html: string;
            raw: string;
        };
        created_at: Date;
        deleted_at: null | Date;
        edited_at: null | Date;
        edited_by_id: null | number;
        forum_id: number;
        id: number;
        topic_id: number;
        user_id: number;
    }

    Properties

    interface Post {
        body: {
            html: string;
            raw: string;
        };
        created_at: Date;
        deleted_at: null | Date;
        edited_at: null | Date;
        edited_by_id: null | number;
        forum_id: number;
        id: number;
        topic_id: number;
        user_id: number;
    }

    Properties

    Properties

    body: {
        html: string;
        raw: string;
    }

    Type declaration

    • html: string

      Post content in HTML format

    • raw: string

      Post content in BBCode format

      -
    created_at: Date
    deleted_at: null | Date
    edited_at: null | Date
    edited_by_id: null | number
    forum_id: number
    id: number
    topic_id: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +
    created_at: Date
    deleted_at: null | Date
    edited_at: null | Date
    edited_by_id: null | number
    forum_id: number
    id: number
    topic_id: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Forum.Topic-1.html b/docs/interfaces/Forum.Topic-1.html index 3354104..06e0470 100644 --- a/docs/interfaces/Forum.Topic-1.html +++ b/docs/interfaces/Forum.Topic-1.html @@ -1,7 +1,7 @@ Topic | osu-api-v2-js
    interface Topic {
        created_at: Date;
        deleted_at: null | Date;
        first_post_id: number;
        forum_id: number;
        id: number;
        is_locked: boolean;
        last_post_id: number;
        poll: null | {
            allow_vote_change: boolean;
            ended_at: null | Date;
            hide_incomplete_results: boolean;
            last_vote_at: null | Date;
            max_votes: number;
            options: {
                id: number;
                text: {
                    bbcode: string;
                    html: string;
                };
                vote_count?: number;
            }[];
            started_at: Date;
            title: {
                bbcode: string;
                html: string;
            };
            total_vote_count: number;
        };
        post_count: number;
        title: string;
        type: "normal" | "sticky" | "announcement";
        updated_at: Date;
        user_id: number;
    }

    Properties

    interface Topic {
        created_at: Date;
        deleted_at: null | Date;
        first_post_id: number;
        forum_id: number;
        id: number;
        is_locked: boolean;
        last_post_id: number;
        poll: null | {
            allow_vote_change: boolean;
            ended_at: null | Date;
            hide_incomplete_results: boolean;
            last_vote_at: null | Date;
            max_votes: number;
            options: {
                id: number;
                text: {
                    bbcode: string;
                    html: string;
                };
                vote_count?: number;
            }[];
            started_at: Date;
            title: {
                bbcode: string;
                html: string;
            };
            total_vote_count: number;
        };
        post_count: number;
        title: string;
        type: "normal" | "sticky" | "announcement";
        updated_at: Date;
        user_id: number;
    }

    Properties

    created_at: Date
    deleted_at: null | Date
    first_post_id: number
    forum_id: number
    id: number
    is_locked: boolean
    last_post_id: number
    poll: null | {
        allow_vote_change: boolean;
        ended_at: null | Date;
        hide_incomplete_results: boolean;
        last_vote_at: null | Date;
        max_votes: number;
        options: {
            id: number;
            text: {
                bbcode: string;
                html: string;
            };
            vote_count?: number;
        }[];
        started_at: Date;
        title: {
            bbcode: string;
            html: string;
        };
        total_vote_count: number;
    }

    Type declaration

    • allow_vote_change: boolean
    • ended_at: null | Date

      Remarks

      Can be in the future

      -
    • hide_incomplete_results: boolean
    • last_vote_at: null | Date
    • max_votes: number
    • options: {
          id: number;
          text: {
              bbcode: string;
              html: string;
          };
          vote_count?: number;
      }[]
    • started_at: Date
    • title: {
          bbcode: string;
          html: string;
      }
      • bbcode: string
      • html: string
    • total_vote_count: number
    post_count: number
    title: string
    type: "normal" | "sticky" | "announcement"
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    created_at: Date
    deleted_at: null | Date
    first_post_id: number
    forum_id: number
    id: number
    is_locked: boolean
    last_post_id: number
    poll: null | {
        allow_vote_change: boolean;
        ended_at: null | Date;
        hide_incomplete_results: boolean;
        last_vote_at: null | Date;
        max_votes: number;
        options: {
            id: number;
            text: {
                bbcode: string;
                html: string;
            };
            vote_count?: number;
        }[];
        started_at: Date;
        title: {
            bbcode: string;
            html: string;
        };
        total_vote_count: number;
    }

    Type declaration

    • allow_vote_change: boolean
    • ended_at: null | Date

      Remarks

      Can be in the future

      +
    • hide_incomplete_results: boolean
    • last_vote_at: null | Date
    • max_votes: number
    • options: {
          id: number;
          text: {
              bbcode: string;
              html: string;
          };
          vote_count?: number;
      }[]
    • started_at: Date
    • title: {
          bbcode: string;
          html: string;
      }
      • bbcode: string
      • html: string
    • total_vote_count: number
    post_count: number
    title: string
    type: "normal" | "sticky" | "announcement"
    updated_at: Date
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Match-1.html b/docs/interfaces/Multiplayer.Match-1.html index ae0a437..06b209a 100644 --- a/docs/interfaces/Multiplayer.Match-1.html +++ b/docs/interfaces/Multiplayer.Match-1.html @@ -1,10 +1,10 @@ Match | osu-api-v2-js

    Obtainable From

    API.getMatch

    -
    interface Match {
        current_game_id: null | number;
        events: {
            detail: {
                text?: string;
                type: string;
            };
            game?: {
                beatmap: Beatmap.WithBeatmapset;
                beatmap_id: number;
                end_time: null | Date;
                id: number;
                mode: "osu" | "taiko" | "fruits" | "mania";
                mode_int: Ruleset;
                mods: string[];
                scores: WithMatch[];
                scoring_type: string;
                start_time: Date;
                team_type: string;
            };
            id: number;
            timestamp: Date;
            user_id: null | number;
        }[];
        first_event_id: number;
        latest_event_id: number;
        match: Info;
        users: WithCountry[];
    }

    Properties

    interface Match {
        current_game_id: null | number;
        events: {
            detail: {
                text?: string;
                type: string;
            };
            game?: {
                beatmap: Beatmap.WithBeatmapset;
                beatmap_id: number;
                end_time: null | Date;
                id: number;
                mode: "osu" | "taiko" | "fruits" | "mania";
                mode_int: Ruleset;
                mods: string[];
                scores: WithMatch[];
                scoring_type: string;
                start_time: Date;
                team_type: string;
            };
            id: number;
            timestamp: Date;
            user_id: null | number;
        }[];
        first_event_id: number;
        latest_event_id: number;
        match: Info;
        users: WithCountry[];
    }

    Properties

    current_game_id: null | number
    events: {
        detail: {
            text?: string;
            type: string;
        };
        game?: {
            beatmap: Beatmap.WithBeatmapset;
            beatmap_id: number;
            end_time: null | Date;
            id: number;
            mode: "osu" | "taiko" | "fruits" | "mania";
            mode_int: Ruleset;
            mods: string[];
            scores: WithMatch[];
            scoring_type: string;
            start_time: Date;
            team_type: string;
        };
        id: number;
        timestamp: Date;
        user_id: null | number;
    }[]

    Type declaration

    • detail: {
          text?: string;
          type: string;
      }
      • Optional text?: string

        If detail.type is other, this exists and will be the name of the room

        +

    Properties

    current_game_id: null | number
    events: {
        detail: {
            text?: string;
            type: string;
        };
        game?: {
            beatmap: Beatmap.WithBeatmapset;
            beatmap_id: number;
            end_time: null | Date;
            id: number;
            mode: "osu" | "taiko" | "fruits" | "mania";
            mode_int: Ruleset;
            mods: string[];
            scores: WithMatch[];
            scoring_type: string;
            start_time: Date;
            team_type: string;
        };
        id: number;
        timestamp: Date;
        user_id: null | number;
    }[]

    Type declaration

    • detail: {
          text?: string;
          type: string;
      }
      • Optional text?: string

        If detail.type is other, this exists and will be the name of the room

      • type: string
    • Optional game?: {
          beatmap: Beatmap.WithBeatmapset;
          beatmap_id: number;
          end_time: null | Date;
          id: number;
          mode: "osu" | "taiko" | "fruits" | "mania";
          mode_int: Ruleset;
          mods: string[];
          scores: WithMatch[];
          scoring_type: string;
          start_time: Date;
          team_type: string;
      }

      If detail.type is other, then this should exist!

      -
      • beatmap: Beatmap.WithBeatmapset
      • beatmap_id: number
      • end_time: null | Date
      • id: number
      • mode: "osu" | "taiko" | "fruits" | "mania"
      • mode_int: Ruleset
      • mods: string[]
      • scores: WithMatch[]
      • scoring_type: string
      • start_time: Date
      • team_type: string
    • id: number
    • timestamp: Date
    • user_id: null | number
    first_event_id: number
    latest_event_id: number
    match: Info
    users: WithCountry[]

    Generated using TypeDoc

    \ No newline at end of file +
  • id: number
  • timestamp: Date
  • user_id: null | number
  • first_event_id: number
    latest_event_id: number
    match: Info
    users: WithCountry[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Match.Info.html b/docs/interfaces/Multiplayer.Match.Info.html index 21f3afa..54120ce 100644 --- a/docs/interfaces/Multiplayer.Match.Info.html +++ b/docs/interfaces/Multiplayer.Match.Info.html @@ -1,6 +1,6 @@ Info | osu-api-v2-js

    Obtainable From

    API.getMatches

    -
    interface Info {
        end_time: null | Date;
        id: number;
        name: string;
        start_time: Date;
    }

    Properties

    interface Info {
        end_time: null | Date;
        id: number;
        name: string;
        start_time: Date;
    }

    Properties

    end_time: null | Date
    id: number
    name: string
    start_time: Date

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    end_time: null | Date
    id: number
    name: string
    start_time: Date

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Room-1.html b/docs/interfaces/Multiplayer.Room-1.html index 364d60c..7d57b2e 100644 --- a/docs/interfaces/Multiplayer.Room-1.html +++ b/docs/interfaces/Multiplayer.Room-1.html @@ -1,5 +1,5 @@ Room | osu-api-v2-js

    Obtainable From

    API.getRoom

    -
    interface Room {
        active: boolean;
        auto_skip: boolean;
        category: string;
        channel_id: number;
        current_user_score?: {
            accuracy: number;
            attempts: number;
            completed: number;
            playlist_item_attempts: {
                attempts: number;
                id: number;
            }[];
            pp: number;
            room_id: number;
            total_score: number;
            user_id: number;
        };
        ends_at: null | Date;
        has_password: boolean;
        host: WithCountry;
        id: number;
        max_attempts: null | number;
        name: string;
        participant_count: number;
        playlist: PlaylistItem[];
        queue_mode: string;
        recent_participants: User[];
        starts_at: Date;
        type: string;
        user_id: number;
    }

    Properties

    interface Room {
        active: boolean;
        auto_skip: boolean;
        category: string;
        channel_id: number;
        current_user_score?: {
            accuracy: number;
            attempts: number;
            completed: number;
            playlist_item_attempts: {
                attempts: number;
                id: number;
            }[];
            pp: number;
            room_id: number;
            total_score: number;
            user_id: number;
        };
        ends_at: null | Date;
        has_password: boolean;
        host: WithCountry;
        id: number;
        max_attempts: null | number;
        name: string;
        participant_count: number;
        playlist: PlaylistItem[];
        queue_mode: string;
        recent_participants: User[];
        starts_at: Date;
        type: string;
        user_id: number;
    }

    Properties

    Properties

    active: boolean
    auto_skip: boolean
    category: string
    channel_id: number
    current_user_score?: {
        accuracy: number;
        attempts: number;
        completed: number;
        playlist_item_attempts: {
            attempts: number;
            id: number;
        }[];
        pp: number;
        room_id: number;
        total_score: number;
        user_id: number;
    }

    Only exists if authorized user

    +

    Properties

    active: boolean
    auto_skip: boolean
    category: string
    channel_id: number
    current_user_score?: {
        accuracy: number;
        attempts: number;
        completed: number;
        playlist_item_attempts: {
            attempts: number;
            id: number;
        }[];
        pp: number;
        room_id: number;
        total_score: number;
        user_id: number;
    }

    Only exists if authorized user

    Type declaration

    • accuracy: number

      In a format where 96.40% would be 0.9640 (with some numbers after the zero)

    • attempts: number
    • completed: number
    • playlist_item_attempts: {
          attempts: number;
          id: number;
      }[]

      How many (completed (I think)) attempts on each item? Empty array if the multiplayer room is the realtime kind

      -
    • pp: number
    • room_id: number
    • total_score: number
    • user_id: number
    ends_at: null | Date
    has_password: boolean
    id: number
    max_attempts: null | number
    name: string
    participant_count: number
    playlist: PlaylistItem[]
    queue_mode: string
    recent_participants: User[]
    starts_at: Date
    type: string
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +
  • pp: number
  • room_id: number
  • total_score: number
  • user_id: number
  • ends_at: null | Date
    has_password: boolean
    host: WithCountry
    id: number
    max_attempts: null | number
    name: string
    participant_count: number
    playlist: PlaylistItem[]
    queue_mode: string
    recent_participants: User[]
    starts_at: Date
    type: string
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Room.Leader-1.html b/docs/interfaces/Multiplayer.Room.Leader-1.html index 97657d1..15180f6 100644 --- a/docs/interfaces/Multiplayer.Room.Leader-1.html +++ b/docs/interfaces/Multiplayer.Room.Leader-1.html @@ -1,4 +1,4 @@ -Leader | osu-api-v2-js
    interface Leader {
        accuracy: number;
        attempts: number;
        completed: number;
        pp: number;
        room_id: number;
        total_score: number;
        user: WithCountry;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    accuracy +Leader | osu-api-v2-js
    interface Leader {
        accuracy: number;
        attempts: number;
        completed: number;
        pp: number;
        room_id: number;
        total_score: number;
        user: WithCountry;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    attempts: number
    completed: number
    pp: number
    room_id: number
    total_score: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +
    attempts: number
    completed: number
    pp: number
    room_id: number
    total_score: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Room.Leader.WithPosition.html b/docs/interfaces/Multiplayer.Room.Leader.WithPosition.html index c8e8462..e880f26 100644 --- a/docs/interfaces/Multiplayer.Room.Leader.WithPosition.html +++ b/docs/interfaces/Multiplayer.Room.Leader.WithPosition.html @@ -1,4 +1,4 @@ -WithPosition | osu-api-v2-js
    interface WithPosition {
        accuracy: number;
        attempts: number;
        completed: number;
        position: number;
        pp: number;
        room_id: number;
        total_score: number;
        user: WithCountry;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    accuracy +WithPosition | osu-api-v2-js
    interface WithPosition {
        accuracy: number;
        attempts: number;
        completed: number;
        position: number;
        pp: number;
        room_id: number;
        total_score: number;
        user: WithCountry;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    attempts: number
    completed: number
    position: number
    pp: number
    room_id: number
    total_score: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file +
    attempts: number
    completed: number
    position: number
    pp: number
    room_id: number
    total_score: number
    user_id: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Room.PlaylistItem-1.html b/docs/interfaces/Multiplayer.Room.PlaylistItem-1.html index 43deb3c..fc985ea 100644 --- a/docs/interfaces/Multiplayer.Room.PlaylistItem-1.html +++ b/docs/interfaces/Multiplayer.Room.PlaylistItem-1.html @@ -1,4 +1,4 @@ -PlaylistItem | osu-api-v2-js
    interface PlaylistItem {
        allowed_mods: Mod[];
        beatmap: WithBeatmapsetChecksumMaxcombo;
        beatmap_id: number;
        expired: boolean;
        id: number;
        owner_id: number;
        played_at: null | Date;
        playlist_order: null | number;
        required_mods: Mod[];
        room_id: number;
        ruleset_id: Ruleset;
    }

    Properties

    allowed_mods +PlaylistItem | osu-api-v2-js
    interface PlaylistItem {
        allowed_mods: Mod[];
        beatmap: WithBeatmapsetChecksumMaxcombo;
        beatmap_id: number;
        expired: boolean;
        id: number;
        owner_id: number;
        played_at: null | Date;
        playlist_order: null | number;
        required_mods: Mod[];
        room_id: number;
        ruleset_id: Ruleset;
    }

    Properties

    allowed_mods: Mod[]
    beatmap_id: number
    expired: boolean
    id: number
    owner_id: number
    played_at: null | Date

    Remarks

    Should be null if the room isn't the realtime multiplayer kind

    -
    playlist_order: null | number

    Remarks

    Should be null if the room isn't the realtime multiplayer kind

    -
    required_mods: Mod[]
    room_id: number
    ruleset_id: Ruleset

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    allowed_mods: Mod[]
    beatmap_id: number
    expired: boolean
    id: number
    owner_id: number
    played_at: null | Date

    Remarks

    Should be null if the room isn't the realtime multiplayer kind

    +
    playlist_order: null | number

    Remarks

    Should be null if the room isn't the realtime multiplayer kind

    +
    required_mods: Mod[]
    room_id: number
    ruleset_id: Ruleset

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Multiplayer.Room.PlaylistItem.Scores.html b/docs/interfaces/Multiplayer.Room.PlaylistItem.Scores.html index 2b38987..1aec856 100644 --- a/docs/interfaces/Multiplayer.Room.PlaylistItem.Scores.html +++ b/docs/interfaces/Multiplayer.Room.PlaylistItem.Scores.html @@ -1,10 +1,10 @@ Scores | osu-api-v2-js

    Obtainable From

    API.getPlaylistItemScores

    -
    interface Scores {
        cursor_string: null | string;
        params: {
            limit: number;
            sort: string;
        };
        scores: Multiplayer[];
        total: number;
        user_score: null | Multiplayer;
    }

    Properties

    interface Scores {
        cursor_string: null | string;
        params: {
            limit: number;
            sort: string;
        };
        scores: Multiplayer[];
        total: number;
        user_score: null | Multiplayer;
    }

    Properties

    cursor_string: null | string

    Remarks

    Will be null if there is no next page

    -
    params: {
        limit: number;
        sort: string;
    }

    Type declaration

    • limit: number
    • sort: string
    scores: Multiplayer[]
    total: number

    How many scores there are across all pages, not necessarily scores.length

    -
    user_score: null | Multiplayer

    Remarks

    Will be null if not an authorized user or if the authorized user has no score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    params: {
        limit: number;
        sort: string;
    }

    Type declaration

    scores: Multiplayer[]
    total: number

    How many scores there are across all pages, not necessarily scores.length

    +
    user_score: null | Multiplayer

    Remarks

    Will be null if not an authorized user or if the authorized user has no score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/NewsPost-1.html b/docs/interfaces/NewsPost-1.html index 5079f3c..876472a 100644 --- a/docs/interfaces/NewsPost-1.html +++ b/docs/interfaces/NewsPost-1.html @@ -1,5 +1,5 @@ NewsPost | osu-api-v2-js

    Interface NewsPost

    Obtainable From

    API.getNewsPosts

    -
    interface NewsPost {
        author: string;
        edit_url: string;
        first_image: null | string;
        id: number;
        published_at: Date;
        slug: string;
        title: string;
        updated_at: Date;
    }

    Hierarchy (view full)

    Properties

    interface NewsPost {
        author: string;
        edit_url: string;
        first_image: null | string;
        id: number;
        published_at: Date;
        slug: string;
        title: string;
        updated_at: Date;
    }

    Hierarchy (view full)

    Properties

    Properties

    author: string
    edit_url: string

    Link to view the file on GitHub

    -
    first_image: null | string

    Link to the first image in the document

    -
    id: number
    published_at: Date
    slug: string

    Filename without the extension, used in URLs

    -
    title: string
    updated_at: Date

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    author: string
    edit_url: string

    Link to view the file on GitHub

    +
    first_image: null | string

    Link to the first image in the document

    +
    id: number
    published_at: Date
    slug: string

    Filename without the extension, used in URLs

    +
    title: string
    updated_at: Date

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/NewsPost.WithContentNavigation.html b/docs/interfaces/NewsPost.WithContentNavigation.html index c9bbc3b..ad3e947 100644 --- a/docs/interfaces/NewsPost.WithContentNavigation.html +++ b/docs/interfaces/NewsPost.WithContentNavigation.html @@ -1,5 +1,5 @@ WithContentNavigation | osu-api-v2-js

    Interface WithContentNavigation

    Obtainable From

    API.getNewsPost

    -
    interface WithContentNavigation {
        author: string;
        content: string;
        edit_url: string;
        first_image: null | string;
        id: number;
        navigation: {
            newer?: NewsPost;
            older?: NewsPost;
        };
        published_at: Date;
        slug: string;
        title: string;
        updated_at: Date;
    }

    Hierarchy (view full)

    Properties

    interface WithContentNavigation {
        author: string;
        content: string;
        edit_url: string;
        first_image: null | string;
        id: number;
        navigation: {
            newer?: NewsPost;
            older?: NewsPost;
        };
        published_at: Date;
        slug: string;
        title: string;
        updated_at: Date;
    }

    Hierarchy (view full)

    Properties

    Properties

    author: string
    content: string

    With HTML

    -
    edit_url: string

    Link to view the file on GitHub

    -
    first_image: null | string

    Link to the first image in the document

    -
    id: number
    navigation: {
        newer?: NewsPost;
        older?: NewsPost;
    }

    Type declaration

    published_at: Date
    slug: string

    Filename without the extension, used in URLs

    -
    title: string
    updated_at: Date

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    author: string
    content: string

    With HTML

    +
    edit_url: string

    Link to view the file on GitHub

    +
    first_image: null | string

    Link to the first image in the document

    +
    id: number
    navigation: {
        newer?: NewsPost;
        older?: NewsPost;
    }

    Type declaration

    published_at: Date
    slug: string

    Filename without the extension, used in URLs

    +
    title: string
    updated_at: Date

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Ranking.Country.html b/docs/interfaces/Ranking.Country.html index 4145563..7221ab6 100644 --- a/docs/interfaces/Ranking.Country.html +++ b/docs/interfaces/Ranking.Country.html @@ -1,9 +1,9 @@ Country | osu-api-v2-js

    Obtainable From

    API.getCountryRanking

    -
    interface Country {
        cursor: {
            page: null | number;
        };
        ranking: {
            active_users: number;
            code: string;
            country: {
                code: string;
                name: string;
            };
            performance: number;
            play_count: number;
            ranked_score: number;
        }[];
        total: number;
    }

    Hierarchy

    • Ranking
      • Country

    Properties

    interface Country {
        cursor: {
            page: null | number;
        };
        ranking: {
            active_users: number;
            code: string;
            country: {
                code: string;
                name: string;
            };
            performance: number;
            play_count: number;
            ranked_score: number;
        }[];
        total: number;
    }

    Hierarchy

    • Ranking
      • Country

    Properties

    Properties

    cursor: {
        page: null | number;
    }

    Type declaration

    • page: null | number

      The number of the next page, is null if no more results are available

      -
    ranking: {
        active_users: number;
        code: string;
        country: {
            code: string;
            name: string;
        };
        performance: number;
        play_count: number;
        ranked_score: number;
    }[]

    Type declaration

    • active_users: number
    • code: string

      Same as country.code

      +
    ranking: {
        active_users: number;
        code: string;
        country: {
            code: string;
            name: string;
        };
        performance: number;
        play_count: number;
        ranked_score: number;
    }[]

    Type declaration

    • active_users: number
    • code: string

      Same as country.code

    • country: {
          code: string;
          name: string;
      }
      • code: string

        The country's ISO 3166-1 alpha-2 code! (France would be FR, United States US)

        -
      • name: string
    • performance: number
    • play_count: number
    • ranked_score: number
    total: number

    Total amount of elements available across all pages, not on this specific page! Maximum of 10000

    -

    Generated using TypeDoc

    \ No newline at end of file +
  • name: string
  • performance: number
  • play_count: number
  • ranked_score: number
  • total: number

    Total amount of elements available across all pages, not on this specific page! Maximum of 10000

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Ranking.Spotlight.html b/docs/interfaces/Ranking.Spotlight.html index 8a50884..b78e7ed 100644 --- a/docs/interfaces/Ranking.Spotlight.html +++ b/docs/interfaces/Ranking.Spotlight.html @@ -1,5 +1,5 @@ Spotlight | osu-api-v2-js

    Obtainable From

    API.getSpotlightRanking

    -
    interface Spotlight {
        beatmapsets: Beatmapset.Extended[];
        ranking: User.Statistics.WithUser[];
        spotlight: WithParticipantcount;
    }

    Properties

    interface Spotlight {
        beatmapsets: Beatmapset.Extended[];
        ranking: User.Statistics.WithUser[];
        spotlight: WithParticipantcount;
    }

    Properties

    beatmapsets: Beatmapset.Extended[]

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    beatmapsets: Beatmapset.Extended[]

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Ranking.User.html b/docs/interfaces/Ranking.User.html index 70a9549..d03c485 100644 --- a/docs/interfaces/Ranking.User.html +++ b/docs/interfaces/Ranking.User.html @@ -1,7 +1,7 @@ User | osu-api-v2-js

    Obtainable From

    API.getUserRanking

    -
    interface User {
        cursor: {
            page: null | number;
        };
        ranking: User.Statistics.WithUser[];
        total: number;
    }

    Hierarchy

    • Ranking
      • User

    Properties

    interface User {
        cursor: {
            page: null | number;
        };
        ranking: User.Statistics.WithUser[];
        total: number;
    }

    Hierarchy

    • Ranking
      • User

    Properties

    Properties

    cursor: {
        page: null | number;
    }

    Type declaration

    • page: null | number

      The number of the next page, is null if no more results are available

      -
    total: number

    Total amount of elements available across all pages, not on this specific page! Maximum of 10000

    -

    Generated using TypeDoc

    \ No newline at end of file +
    ranking: User.Statistics.WithUser[]
    total: number

    Total amount of elements available across all pages, not on this specific page! Maximum of 10000

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score-1.html b/docs/interfaces/Score-1.html index 37637bd..a44d929 100644 --- a/docs/interfaces/Score-1.html +++ b/docs/interfaces/Score-1.html @@ -1,4 +1,4 @@ -Score | osu-api-v2-js

    Interface Score

    interface Score {
        accuracy: number;
        best_id: null | number;
        id: null | number;
        max_combo: number;
        mods: string[] | Mod[];
        passed: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    accuracy +Score | osu-api-v2-js

    Interface Score

    interface Score {
        accuracy: number;
        best_id: null | number;
        id: null | number;
        max_combo: number;
        mods: string[] | Mod[];
        passed: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    best_id: null | number
    id: null | number
    max_combo: number
    mods: string[] | Mod[]
    passed: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    best_id: null | number
    id: null | number
    max_combo: number
    mods: string[] | Mod[]
    passed: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    type: string
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.Legacy.html b/docs/interfaces/Score.Legacy.html index d135e0d..1150502 100644 --- a/docs/interfaces/Score.Legacy.html +++ b/docs/interfaces/Score.Legacy.html @@ -1,6 +1,6 @@ Legacy | osu-api-v2-js

    Interface Legacy

    The version of Score without lazer-related stuff, used almost everywhere!

    Obtainable From

    API.getBeatmapUserScores

    -
    interface Legacy {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    interface Legacy {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    • count_100: number
    • count_300: number
    • count_50: null | number

      Remarks

      Is null if the score's gamemode is Taiko

      -
    • count_geki: null | number
    • count_katu: null | number
    • count_miss: number
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    type: string
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.Multiplayer.html b/docs/interfaces/Score.Multiplayer.html index d8be269..5360fff 100644 --- a/docs/interfaces/Score.Multiplayer.html +++ b/docs/interfaces/Score.Multiplayer.html @@ -1,4 +1,4 @@ -Multiplayer | osu-api-v2-js

    Interface Multiplayer

    interface Multiplayer {
        accuracy: number;
        beatmap_id: number;
        ended_at: Date;
        id: number;
        max_combo: number;
        maximum_statistics: Score.Statistics;
        mods: Mod[];
        passed: boolean;
        playlist_item_id: number;
        pp: null | number;
        rank: string;
        replay: boolean;
        room_id: number;
        ruleset_id: Ruleset;
        started_at: Date;
        statistics: Score.Statistics;
        total_score: number;
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy

    • Bare
      • Multiplayer

    Properties

    accuracy +Multiplayer | osu-api-v2-js

    Interface Multiplayer

    interface Multiplayer {
        accuracy: number;
        beatmap_id: number;
        ended_at: Date;
        id: number;
        max_combo: number;
        maximum_statistics: Score.Statistics;
        mods: Mod[];
        passed: boolean;
        playlist_item_id: number;
        pp: null | number;
        rank: string;
        replay: boolean;
        room_id: number;
        ruleset_id: Ruleset;
        started_at: Date;
        statistics: Score.Statistics;
        total_score: number;
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy

    • Bare
      • Multiplayer

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (and no number afterwards)

    -
    beatmap_id: number
    ended_at: Date
    id: number
    max_combo: number
    maximum_statistics: Score.Statistics
    mods: Mod[]
    passed: boolean
    playlist_item_id: number
    pp: null | number
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    room_id: number
    ruleset_id: Ruleset
    started_at: Date
    statistics: Score.Statistics
    total_score: number
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    beatmap_id: number
    ended_at: Date
    id: number
    max_combo: number
    maximum_statistics: Score.Statistics
    mods: Mod[]
    passed: boolean
    playlist_item_id: number
    pp: null | number
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    room_id: number
    ruleset_id: Ruleset
    started_at: Date
    statistics: Score.Statistics
    total_score: number
    type: string
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.Solo.html b/docs/interfaces/Score.Solo.html index b6a4927..eb43084 100644 --- a/docs/interfaces/Score.Solo.html +++ b/docs/interfaces/Score.Solo.html @@ -1,6 +1,6 @@ Solo | osu-api-v2-js

    Scores called "solo-scores" are more relevant to lazer stuff, it's the opposite of legacy

    Obtainable From

    API.getBeatmapSoloScores

    -
    interface Solo {
        accuracy: number;
        beatmap_id: number;
        best_id: null | number;
        build_id: null | number;
        ended_at: Date;
        has_replay: boolean;
        id: null | number;
        is_perfect_combo: boolean;
        legacy_perfect: boolean;
        legacy_score_id: null | number;
        legacy_total_score: number;
        max_combo: number;
        maximum_statistics?: Score.Statistics;
        mods: Mod[];
        passed: boolean;
        pp: null | number;
        preserve: boolean;
        rank: string;
        ranked: boolean;
        replay: boolean;
        started_at: null | Date;
        statistics: Score.Statistics;
        total_score: number;
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    interface Solo {
        accuracy: number;
        beatmap_id: number;
        best_id: null | number;
        build_id: null | number;
        ended_at: Date;
        has_replay: boolean;
        id: null | number;
        is_perfect_combo: boolean;
        legacy_perfect: boolean;
        legacy_score_id: null | number;
        legacy_total_score: number;
        max_combo: number;
        maximum_statistics?: Score.Statistics;
        mods: Mod[];
        passed: boolean;
        pp: null | number;
        preserve: boolean;
        rank: string;
        ranked: boolean;
        replay: boolean;
        started_at: null | Date;
        statistics: Score.Statistics;
        total_score: number;
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    beatmap_id: number
    best_id: null | number
    build_id: null | number

    Remarks

    Is null if the score has not been set on lazer

    -
    ended_at: Date
    has_replay: boolean
    id: null | number
    is_perfect_combo: boolean
    legacy_perfect: boolean
    legacy_score_id: null | number
    legacy_total_score: number
    max_combo: number
    maximum_statistics?: Score.Statistics
    mods: Mod[]
    passed: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    preserve: boolean
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    ranked: boolean
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    started_at: null | Date
    statistics: Score.Statistics
    total_score: number
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    beatmap_id: number
    best_id: null | number
    build_id: null | number

    Remarks

    Is null if the score has not been set on lazer

    +
    ended_at: Date
    has_replay: boolean
    id: null | number
    is_perfect_combo: boolean
    legacy_perfect: boolean
    legacy_score_id: null | number
    legacy_total_score: number
    max_combo: number
    maximum_statistics?: Score.Statistics
    mods: Mod[]
    passed: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    preserve: boolean
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    ranked: boolean
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    started_at: null | Date
    statistics: Score.Statistics
    total_score: number
    type: string
    user: WithCountryCover
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.Statistics.html b/docs/interfaces/Score.Statistics.html index 835fb2a..fc2c2d5 100644 --- a/docs/interfaces/Score.Statistics.html +++ b/docs/interfaces/Score.Statistics.html @@ -1,5 +1,5 @@ Statistics | osu-api-v2-js

    Interface Statistics

    All of its properties are optional because instead of being 0, the property actually disappears instead

    -
    interface Statistics {
        great?: number;
        ignore_hit?: number;
        ignore_miss?: number;
        large_bonus?: number;
        large_tick_hit?: number;
        legacy_combo_increase?: number;
        meh?: number;
        miss?: number;
        ok?: number;
        small_bonus?: number;
        small_tick_hit?: number;
        small_tick_miss?: number;
    }

    Properties

    interface Statistics {
        great?: number;
        ignore_hit?: number;
        ignore_miss?: number;
        large_bonus?: number;
        large_tick_hit?: number;
        legacy_combo_increase?: number;
        meh?: number;
        miss?: number;
        ok?: number;
        small_bonus?: number;
        small_tick_hit?: number;
        small_tick_miss?: number;
    }

    Properties

    great?: number
    ignore_hit?: number
    ignore_miss?: number
    large_bonus?: number
    large_tick_hit?: number
    legacy_combo_increase?: number

    Exclusively for the maximum_statistics of solo-scores that were not set on lazer

    -
    meh?: number
    miss?: number
    ok?: number
    small_bonus?: number
    small_tick_hit?: number
    small_tick_miss?: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    great?: number
    ignore_hit?: number
    ignore_miss?: number
    large_bonus?: number
    large_tick_hit?: number
    legacy_combo_increase?: number

    Exclusively for the maximum_statistics of solo-scores that were not set on lazer

    +
    meh?: number
    miss?: number
    ok?: number
    small_bonus?: number
    small_tick_hit?: number
    small_tick_miss?: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.WithMatch.html b/docs/interfaces/Score.WithMatch.html index 453379d..56d33a7 100644 --- a/docs/interfaces/Score.WithMatch.html +++ b/docs/interfaces/Score.WithMatch.html @@ -1,6 +1,6 @@ WithMatch | osu-api-v2-js

    Interface WithMatch

    The version of Score without lazer-related stuff, used almost everywhere!

    Obtainable From

    API.getBeatmapUserScores

    -
    interface WithMatch {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        match: {
            pass: boolean;
            slot: number;
            team: string;
        };
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    interface WithMatch {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        match: {
            pass: boolean;
            slot: number;
            team: string;
        };
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    best_id: null | number
    created_at: Date
    id: null | number
    match: {
        pass: boolean;
        slot: number;
        team: string;
    }

    Type declaration

    • pass: boolean
    • slot: number
    • team: string
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    • count_100: number
    • count_300: number
    • count_50: null | number

      Remarks

      Is null if the score's gamemode is Taiko

      -
    • count_geki: null | number
    • count_katu: null | number
    • count_miss: number
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    best_id: null | number
    created_at: Date
    id: null | number
    match: {
        pass: boolean;
        slot: number;
        team: string;
    }

    Type declaration

    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    type: string
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.WithUser.html b/docs/interfaces/Score.WithUser.html index 519b6dc..5d1c999 100644 --- a/docs/interfaces/Score.WithUser.html +++ b/docs/interfaces/Score.WithUser.html @@ -1,5 +1,5 @@ WithUser | osu-api-v2-js

    Interface WithUser

    Obtainable From

    API.getBeatmapScores

    -
    interface WithUser {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    interface WithUser {
        accuracy: number;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: WithCountryCover;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    • count_100: number
    • count_300: number
    • count_50: null | number

      Remarks

      Is null if the score's gamemode is Taiko

      -
    • count_geki: null | number
    • count_katu: null | number
    • count_miss: number
    type: string
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    type: string
    user: WithCountryCover
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.WithUserBeatmap.html b/docs/interfaces/Score.WithUserBeatmap.html index de1830a..fc32969 100644 --- a/docs/interfaces/Score.WithUserBeatmap.html +++ b/docs/interfaces/Score.WithUserBeatmap.html @@ -1,6 +1,6 @@ WithUserBeatmap | osu-api-v2-js

    Interface WithUserBeatmap

    The version of Score without lazer-related stuff, used almost everywhere!

    Obtainable From

    API.getBeatmapUserScores

    -
    interface WithUserBeatmap {
        accuracy: number;
        beatmap: Beatmap.Extended;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: User;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    interface WithUserBeatmap {
        accuracy: number;
        beatmap: Beatmap.Extended;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: User;
        user_id: number;
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    beatmap: Beatmap.Extended
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    • count_100: number
    • count_300: number
    • count_50: null | number

      Remarks

      Is null if the score's gamemode is Taiko

      -
    • count_geki: null | number
    • count_katu: null | number
    • count_miss: number
    type: string
    user: User
    user_id: number

    The ID of the user who made the score

    -

    Generated using TypeDoc

    \ No newline at end of file +
    beatmap: Beatmap.Extended
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    type: string
    user: User
    user_id: number

    The ID of the user who made the score

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Score.WithUserBeatmapBeatmapset.html b/docs/interfaces/Score.WithUserBeatmapBeatmapset.html index e4f7a79..411cb95 100644 --- a/docs/interfaces/Score.WithUserBeatmapBeatmapset.html +++ b/docs/interfaces/Score.WithUserBeatmapBeatmapset.html @@ -1,5 +1,5 @@ WithUserBeatmapBeatmapset | osu-api-v2-js

    Interface WithUserBeatmapBeatmapset

    Obtainable From

    API.getUserScores

    -
    interface WithUserBeatmapBeatmapset {
        accuracy: number;
        beatmap: Beatmap.Extended;
        beatmapset: Beatmapset;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: User;
        user_id: number;
        weight?: {
            percentage: number;
            pp: number;
        };
    }

    Hierarchy (view full)

    Properties

    interface WithUserBeatmapBeatmapset {
        accuracy: number;
        beatmap: Beatmap.Extended;
        beatmapset: Beatmapset;
        best_id: null | number;
        created_at: Date;
        id: null | number;
        max_combo: number;
        mode: "osu" | "taiko" | "fruits" | "mania";
        mode_int: Ruleset;
        mods: string[];
        passed: boolean;
        perfect: boolean;
        pp: null | number;
        rank: string;
        replay: boolean;
        score: number;
        statistics: {
            count_100: number;
            count_300: number;
            count_50: null | number;
            count_geki: null | number;
            count_katu: null | number;
            count_miss: number;
        };
        type: string;
        user: User;
        user_id: number;
        weight?: {
            percentage: number;
            pp: number;
        };
    }

    Hierarchy (view full)

    Properties

    Properties

    accuracy: number

    In a format where 96.40% would be 0.9640 (likely with some numbers after the zero)

    -
    beatmap: Beatmap.Extended
    beatmapset: Beatmapset
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    -
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    -
    replay: boolean

    Can this score's replay be downloaded from the website?

    -
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    • count_100: number
    • count_300: number
    • count_50: null | number

      Remarks

      Is null if the score's gamemode is Taiko

      -
    • count_geki: null | number
    • count_katu: null | number
    • count_miss: number
    type: string
    user: User
    user_id: number

    The ID of the user who made the score

    -
    weight?: {
        percentage: number;
        pp: number;
    }

    Type declaration

    • percentage: number
    • pp: number

    Remarks

    Only if type is set to best on API.getUserScores

    -

    Generated using TypeDoc

    \ No newline at end of file +
    beatmap: Beatmap.Extended
    beatmapset: Beatmapset
    best_id: null | number
    created_at: Date
    id: null | number
    max_combo: number
    mode: "osu" | "taiko" | "fruits" | "mania"
    mode_int: Ruleset
    mods: string[]
    passed: boolean
    perfect: boolean
    pp: null | number

    Remarks

    Is null when Beatmap is Loved (for example)

    +
    rank: string

    Also known as a grade, for example this is X (SS) if accuracy is 1 (100.00%)

    +
    replay: boolean

    Can this score's replay be downloaded from the website?

    +
    score: number
    statistics: {
        count_100: number;
        count_300: number;
        count_50: null | number;
        count_geki: null | number;
        count_katu: null | number;
        count_miss: number;
    }

    Type declaration

    type: string
    user: User
    user_id: number

    The ID of the user who made the score

    +
    weight?: {
        percentage: number;
        pp: number;
    }

    Type declaration

    Remarks

    Only if type is set to best on API.getUserScores

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Spotlight-1.html b/docs/interfaces/Spotlight-1.html index cfe1868..7b1716b 100644 --- a/docs/interfaces/Spotlight-1.html +++ b/docs/interfaces/Spotlight-1.html @@ -1,9 +1,9 @@ Spotlight | osu-api-v2-js

    Interface Spotlight

    Obtainable From

    API.getSpotlights

    -
    interface Spotlight {
        end_date: Date;
        id: number;
        mode_specific: boolean;
        name: string;
        start_date: Date;
        type: string;
    }

    Hierarchy (view full)

    Properties

    interface Spotlight {
        end_date: Date;
        id: number;
        mode_specific: boolean;
        name: string;
        start_date: Date;
        type: string;
    }

    Hierarchy (view full)

    Properties

    end_date: Date
    id: number
    mode_specific: boolean

    Pretty sure this is only true when the spotlight has different beatmaps for each ruleset

    -
    name: string
    start_date: Date
    type: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    end_date: Date
    id: number
    mode_specific: boolean

    Pretty sure this is only true when the spotlight has different beatmaps for each ruleset

    +
    name: string
    start_date: Date
    type: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/Spotlight.WithParticipantcount.html b/docs/interfaces/Spotlight.WithParticipantcount.html index d5dd4fd..cab0a5c 100644 --- a/docs/interfaces/Spotlight.WithParticipantcount.html +++ b/docs/interfaces/Spotlight.WithParticipantcount.html @@ -1,10 +1,10 @@ WithParticipantcount | osu-api-v2-js

    Interface WithParticipantcount

    Obtainable From

    API.getSpotlights

    -
    interface WithParticipantcount {
        end_date: Date;
        id: number;
        mode_specific: boolean;
        name: string;
        participant_count: number;
        start_date: Date;
        type: string;
    }

    Hierarchy (view full)

    Properties

    interface WithParticipantcount {
        end_date: Date;
        id: number;
        mode_specific: boolean;
        name: string;
        participant_count: number;
        start_date: Date;
        type: string;
    }

    Hierarchy (view full)

    Properties

    end_date: Date
    id: number
    mode_specific: boolean

    Pretty sure this is only true when the spotlight has different beatmaps for each ruleset

    -
    name: string
    participant_count: number
    start_date: Date
    type: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    end_date: Date
    id: number
    mode_specific: boolean

    Pretty sure this is only true when the spotlight has different beatmaps for each ruleset

    +
    name: string
    participant_count: number
    start_date: Date
    type: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User-1.html b/docs/interfaces/User-1.html index 291dd25..ddbbf79 100644 --- a/docs/interfaces/User-1.html +++ b/docs/interfaces/User-1.html @@ -1,4 +1,4 @@ -User | osu-api-v2-js

    Interface User

    interface User {
        avatar_url: string;
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url +User | osu-api-v2-js

    Interface User

    interface User {
        avatar_url: string;
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Config.html b/docs/interfaces/User.Config.html index d96c673..6e62dc1 100644 --- a/docs/interfaces/User.Config.html +++ b/docs/interfaces/User.Config.html @@ -1,7 +1,7 @@ Config | osu-api-v2-js

    Interface Config

    An interface to tell the API how the returned Array should be like

    -
    interface Config {
        limit?: number;
        offset?: number;
    }

    Properties

    interface Config {
        limit?: number;
        offset?: number;
    }

    Properties

    Properties

    limit?: number

    The maximum amount of elements returned in the array

    Remarks

    The server could send less than the limit because it deliberately limits itself; Putting this at 1000 doesn't mean you'll even get close to 200

    -
    offset?: number

    How many elements that would be at the top of the returned array get skipped (while still filling the array up to the limit)

    -

    Generated using TypeDoc

    \ No newline at end of file +
    offset?: number

    How many elements that would be at the top of the returned array get skipped (while still filling the array up to the limit)

    +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Extended-1.html b/docs/interfaces/User.Extended-1.html index 7af18cc..3f1d7be 100644 --- a/docs/interfaces/User.Extended-1.html +++ b/docs/interfaces/User.Extended-1.html @@ -1,5 +1,5 @@ Extended | osu-api-v2-js

    Interface Extended

    Obtainable From

    API.getUser

    -
    interface Extended {
        account_history: {
            description: null | string;
            id: number;
            length: number;
            permanent: boolean;
            timestamp: Date;
            type: "note" | "restriction" | "silence";
        }[];
        active_tournament_banners: {
            id: number;
            image: string;
            tournament_id: number;
        }[];
        avatar_url: string;
        badges: {
            awarded_at: Date;
            description: string;
            image_url: string;
            url: string;
        }[];
        beatmap_playcounts_count: number;
        comments_count: number;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        cover_url: string;
        default_group: string;
        discord: null | string;
        favourite_beatmapset_count: number;
        follower_count: number;
        graveyard_beatmapset_count: number;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        guest_beatmapset_count: number;
        has_supported: boolean;
        id: number;
        interests: null | string;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        join_date: Date;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        location: null | string;
        loved_beatmapset_count: number;
        mapping_follower_count: number;
        max_blocks: number;
        max_friends: number;
        monthly_playcounts: {
            count: number;
            start_date: Date;
        }[];
        nominated_beatmapset_count: number;
        occupation: null | string;
        page: {
            html: string;
            raw: string;
        };
        pending_beatmapset_count: number;
        playmode: "osu" | "taiko" | "fruits" | "mania";
        playstyle: null | string[];
        pm_friends_only: boolean;
        post_count: number;
        previous_usernames: string[];
        profile_colour: null | string;
        profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[];
        rank_highest: null | {
            rank: number;
            updated_at: Date;
        };
        rank_history: null | {
            data: number[];
            mode: "osu" | "taiko" | "fruits" | "mania";
        };
        replays_watched_counts: {
            count: number;
            start_date: Date;
        }[];
        scores_best_count: number;
        scores_first_count: number;
        scores_pinned_count: number;
        scores_recent_count: number;
        statistics: WithCountryrank;
        support_level: number;
        title: null | string;
        title_url: null | string;
        twitter: null | string;
        user_achievements: {
            achieved_at: Date;
            achievement_id: number;
        }[];
        username: string;
        website: null | string;
    }

    Hierarchy (view full)

    Properties

    interface Extended {
        account_history: {
            description: null | string;
            id: number;
            length: number;
            permanent: boolean;
            timestamp: Date;
            type: "note" | "restriction" | "silence";
        }[];
        active_tournament_banners: {
            id: number;
            image: string;
            tournament_id: number;
        }[];
        avatar_url: string;
        badges: {
            awarded_at: Date;
            description: string;
            image_url: string;
            url: string;
        }[];
        beatmap_playcounts_count: number;
        comments_count: number;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        cover_url: string;
        default_group: string;
        discord: null | string;
        favourite_beatmapset_count: number;
        follower_count: number;
        graveyard_beatmapset_count: number;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        guest_beatmapset_count: number;
        has_supported: boolean;
        id: number;
        interests: null | string;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        join_date: Date;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        location: null | string;
        loved_beatmapset_count: number;
        mapping_follower_count: number;
        max_blocks: number;
        max_friends: number;
        monthly_playcounts: {
            count: number;
            start_date: Date;
        }[];
        nominated_beatmapset_count: number;
        occupation: null | string;
        page: {
            html: string;
            raw: string;
        };
        pending_beatmapset_count: number;
        playmode: "osu" | "taiko" | "fruits" | "mania";
        playstyle: null | string[];
        pm_friends_only: boolean;
        post_count: number;
        previous_usernames: string[];
        profile_colour: null | string;
        profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[];
        rank_highest: null | {
            rank: number;
            updated_at: Date;
        };
        rank_history: null | {
            data: number[];
            mode: "osu" | "taiko" | "fruits" | "mania";
        };
        replays_watched_counts: {
            count: number;
            start_date: Date;
        }[];
        scores_best_count: number;
        scores_first_count: number;
        scores_pinned_count: number;
        scores_recent_count: number;
        statistics: WithCountryrank;
        support_level: number;
        title: null | string;
        title_url: null | string;
        twitter: null | string;
        user_achievements: {
            achieved_at: Date;
            achievement_id: number;
        }[];
        username: string;
        website: null | string;
    }

    Hierarchy (view full)

    Properties

    account_history: {
        description: null | string;
        id: number;
        length: number;
        permanent: boolean;
        timestamp: Date;
        type: "note" | "restriction" | "silence";
    }[]

    Type declaration

    • description: null | string
    • id: number
    • length: number
    • permanent: boolean
    • timestamp: Date
    • type: "note" | "restriction" | "silence"
    active_tournament_banners: {
        id: number;
        image: string;
        tournament_id: number;
    }[]

    Type declaration

    • id: number
    • image: string
    • tournament_id: number
    avatar_url: string
    badges: {
        awarded_at: Date;
        description: string;
        image_url: string;
        url: string;
    }[]

    Type declaration

    • awarded_at: Date
    • description: string
    • image_url: string
    • url: string
    beatmap_playcounts_count: number
    comments_count: number
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    cover_url: string
    default_group: string
    discord: null | string
    favourite_beatmapset_count: number
    follower_count: number
    graveyard_beatmapset_count: number
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    guest_beatmapset_count: number
    has_supported: boolean
    id: number
    interests: null | string
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    join_date: Date
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    location: null | string
    loved_beatmapset_count: number
    mapping_follower_count: number
    max_blocks: number
    max_friends: number
    monthly_playcounts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    nominated_beatmapset_count: number
    occupation: null | string
    page: {
        html: string;
        raw: string;
    }

    Type declaration

    • html: string
    • raw: string

      Basically the text with the BBCode

      -
    pending_beatmapset_count: number
    playmode: "osu" | "taiko" | "fruits" | "mania"
    playstyle: null | string[]
    pm_friends_only: boolean
    post_count: number
    previous_usernames: string[]
    profile_colour: null | string
    profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[]
    rank_highest: null | {
        rank: number;
        updated_at: Date;
    }

    Type declaration

    • rank: number
    • updated_at: Date
    rank_history: null | {
        data: number[];
        mode: "osu" | "taiko" | "fruits" | "mania";
    }

    Type declaration

    • data: number[]
    • mode: "osu" | "taiko" | "fruits" | "mania"
    replays_watched_counts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    scores_best_count: number
    scores_first_count: number
    scores_pinned_count: number

    Specific to the Ruleset (playmode)

    -
    scores_recent_count: number
    statistics: WithCountryrank
    support_level: number
    title: null | string
    title_url: null | string
    twitter: null | string
    user_achievements: {
        achieved_at: Date;
        achievement_id: number;
    }[]

    Type declaration

    • achieved_at: Date
    • achievement_id: number
    username: string
    website: null | string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    account_history: {
        description: null | string;
        id: number;
        length: number;
        permanent: boolean;
        timestamp: Date;
        type: "note" | "restriction" | "silence";
    }[]

    Type declaration

    • description: null | string
    • id: number
    • length: number
    • permanent: boolean
    • timestamp: Date
    • type: "note" | "restriction" | "silence"
    active_tournament_banners: {
        id: number;
        image: string;
        tournament_id: number;
    }[]

    Type declaration

    • id: number
    • image: string
    • tournament_id: number
    avatar_url: string
    badges: {
        awarded_at: Date;
        description: string;
        image_url: string;
        url: string;
    }[]

    Type declaration

    • awarded_at: Date
    • description: string
    • image_url: string
    • url: string
    beatmap_playcounts_count: number
    comments_count: number
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    cover_url: string
    default_group: string
    discord: null | string
    favourite_beatmapset_count: number
    follower_count: number
    graveyard_beatmapset_count: number
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    guest_beatmapset_count: number
    has_supported: boolean
    id: number
    interests: null | string
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    join_date: Date
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    location: null | string
    loved_beatmapset_count: number
    mapping_follower_count: number
    max_blocks: number
    max_friends: number
    monthly_playcounts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    nominated_beatmapset_count: number
    occupation: null | string
    page: {
        html: string;
        raw: string;
    }

    Type declaration

    • html: string
    • raw: string

      Basically the text with the BBCode

      +
    pending_beatmapset_count: number
    playmode: "osu" | "taiko" | "fruits" | "mania"
    playstyle: null | string[]
    pm_friends_only: boolean
    post_count: number
    previous_usernames: string[]
    profile_colour: null | string
    profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[]
    rank_highest: null | {
        rank: number;
        updated_at: Date;
    }

    Type declaration

    • rank: number
    • updated_at: Date
    rank_history: null | {
        data: number[];
        mode: "osu" | "taiko" | "fruits" | "mania";
    }

    Type declaration

    • data: number[]
    • mode: "osu" | "taiko" | "fruits" | "mania"
    replays_watched_counts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    scores_best_count: number
    scores_first_count: number
    scores_pinned_count: number

    Specific to the Ruleset (playmode)

    +
    scores_recent_count: number
    statistics: WithCountryrank
    support_level: number
    title: null | string
    title_url: null | string
    twitter: null | string
    user_achievements: {
        achieved_at: Date;
        achievement_id: number;
    }[]

    Type declaration

    • achieved_at: Date
    • achievement_id: number
    username: string
    website: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Extended.WithStatisticsrulesets.html b/docs/interfaces/User.Extended.WithStatisticsrulesets.html index 9f3fed5..eb18d66 100644 --- a/docs/interfaces/User.Extended.WithStatisticsrulesets.html +++ b/docs/interfaces/User.Extended.WithStatisticsrulesets.html @@ -1,5 +1,5 @@ WithStatisticsrulesets | osu-api-v2-js

    Interface WithStatisticsrulesets

    Obtainable From

    API.getResourceOwner

    -
    interface WithStatisticsrulesets {
        account_history: {
            description: null | string;
            id: number;
            length: number;
            permanent: boolean;
            timestamp: Date;
            type: "note" | "restriction" | "silence";
        }[];
        active_tournament_banners: {
            id: number;
            image: string;
            tournament_id: number;
        }[];
        avatar_url: string;
        badges: {
            awarded_at: Date;
            description: string;
            image_url: string;
            url: string;
        }[];
        beatmap_playcounts_count: number;
        comments_count: number;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        cover_url: string;
        default_group: string;
        discord: null | string;
        favourite_beatmapset_count: number;
        follower_count: number;
        graveyard_beatmapset_count: number;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        guest_beatmapset_count: number;
        has_supported: boolean;
        id: number;
        interests: null | string;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_restricted: boolean;
        is_supporter: boolean;
        join_date: Date;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        location: null | string;
        loved_beatmapset_count: number;
        mapping_follower_count: number;
        max_blocks: number;
        max_friends: number;
        monthly_playcounts: {
            count: number;
            start_date: Date;
        }[];
        nominated_beatmapset_count: number;
        occupation: null | string;
        page: {
            html: string;
            raw: string;
        };
        pending_beatmapset_count: number;
        playmode: "osu" | "taiko" | "fruits" | "mania";
        playstyle: null | string[];
        pm_friends_only: boolean;
        post_count: number;
        previous_usernames: string[];
        profile_colour: null | string;
        profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[];
        rank_highest: null | {
            rank: number;
            updated_at: Date;
        };
        rank_history: null | {
            data: number[];
            mode: "osu" | "taiko" | "fruits" | "mania";
        };
        replays_watched_counts: {
            count: number;
            start_date: Date;
        }[];
        scores_best_count: number;
        scores_first_count: number;
        scores_pinned_count: number;
        scores_recent_count: number;
        statistics: WithCountryrank;
        statistics_rulesets: {
            fruits?: User.Statistics;
            mania?: User.Statistics;
            osu?: User.Statistics;
            taiko?: User.Statistics;
        };
        support_level: number;
        title: null | string;
        title_url: null | string;
        twitter: null | string;
        user_achievements: {
            achieved_at: Date;
            achievement_id: number;
        }[];
        username: string;
        website: null | string;
    }

    Hierarchy (view full)

    Properties

    interface WithStatisticsrulesets {
        account_history: {
            description: null | string;
            id: number;
            length: number;
            permanent: boolean;
            timestamp: Date;
            type: "note" | "restriction" | "silence";
        }[];
        active_tournament_banners: {
            id: number;
            image: string;
            tournament_id: number;
        }[];
        avatar_url: string;
        badges: {
            awarded_at: Date;
            description: string;
            image_url: string;
            url: string;
        }[];
        beatmap_playcounts_count: number;
        comments_count: number;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        cover_url: string;
        default_group: string;
        discord: null | string;
        favourite_beatmapset_count: number;
        follower_count: number;
        graveyard_beatmapset_count: number;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        guest_beatmapset_count: number;
        has_supported: boolean;
        id: number;
        interests: null | string;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_restricted: boolean;
        is_supporter: boolean;
        join_date: Date;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        location: null | string;
        loved_beatmapset_count: number;
        mapping_follower_count: number;
        max_blocks: number;
        max_friends: number;
        monthly_playcounts: {
            count: number;
            start_date: Date;
        }[];
        nominated_beatmapset_count: number;
        occupation: null | string;
        page: {
            html: string;
            raw: string;
        };
        pending_beatmapset_count: number;
        playmode: "osu" | "taiko" | "fruits" | "mania";
        playstyle: null | string[];
        pm_friends_only: boolean;
        post_count: number;
        previous_usernames: string[];
        profile_colour: null | string;
        profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[];
        rank_highest: null | {
            rank: number;
            updated_at: Date;
        };
        rank_history: null | {
            data: number[];
            mode: "osu" | "taiko" | "fruits" | "mania";
        };
        replays_watched_counts: {
            count: number;
            start_date: Date;
        }[];
        scores_best_count: number;
        scores_first_count: number;
        scores_pinned_count: number;
        scores_recent_count: number;
        statistics: WithCountryrank;
        statistics_rulesets: {
            fruits?: User.Statistics;
            mania?: User.Statistics;
            osu?: User.Statistics;
            taiko?: User.Statistics;
        };
        support_level: number;
        title: null | string;
        title_url: null | string;
        twitter: null | string;
        user_achievements: {
            achieved_at: Date;
            achievement_id: number;
        }[];
        username: string;
        website: null | string;
    }

    Hierarchy (view full)

    Properties

    account_history: {
        description: null | string;
        id: number;
        length: number;
        permanent: boolean;
        timestamp: Date;
        type: "note" | "restriction" | "silence";
    }[]

    Type declaration

    • description: null | string
    • id: number
    • length: number
    • permanent: boolean
    • timestamp: Date
    • type: "note" | "restriction" | "silence"
    active_tournament_banners: {
        id: number;
        image: string;
        tournament_id: number;
    }[]

    Type declaration

    • id: number
    • image: string
    • tournament_id: number
    avatar_url: string
    badges: {
        awarded_at: Date;
        description: string;
        image_url: string;
        url: string;
    }[]

    Type declaration

    • awarded_at: Date
    • description: string
    • image_url: string
    • url: string
    beatmap_playcounts_count: number
    comments_count: number
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    cover_url: string
    default_group: string
    discord: null | string
    favourite_beatmapset_count: number
    follower_count: number
    graveyard_beatmapset_count: number
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    guest_beatmapset_count: number
    has_supported: boolean
    id: number
    interests: null | string
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_restricted: boolean
    is_supporter: boolean
    join_date: Date
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    location: null | string
    loved_beatmapset_count: number
    mapping_follower_count: number
    max_blocks: number
    max_friends: number
    monthly_playcounts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    nominated_beatmapset_count: number
    occupation: null | string
    page: {
        html: string;
        raw: string;
    }

    Type declaration

    • html: string
    • raw: string

      Basically the text with the BBCode

      -
    pending_beatmapset_count: number
    playmode: "osu" | "taiko" | "fruits" | "mania"
    playstyle: null | string[]
    pm_friends_only: boolean
    post_count: number
    previous_usernames: string[]
    profile_colour: null | string
    profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[]
    rank_highest: null | {
        rank: number;
        updated_at: Date;
    }

    Type declaration

    • rank: number
    • updated_at: Date
    rank_history: null | {
        data: number[];
        mode: "osu" | "taiko" | "fruits" | "mania";
    }

    Type declaration

    • data: number[]
    • mode: "osu" | "taiko" | "fruits" | "mania"
    replays_watched_counts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    scores_best_count: number
    scores_first_count: number
    scores_pinned_count: number

    Specific to the Ruleset (playmode)

    -
    scores_recent_count: number
    statistics: WithCountryrank
    statistics_rulesets: {
        fruits?: User.Statistics;
        mania?: User.Statistics;
        osu?: User.Statistics;
        taiko?: User.Statistics;
    }

    Type declaration

    support_level: number
    title: null | string
    title_url: null | string
    twitter: null | string
    user_achievements: {
        achieved_at: Date;
        achievement_id: number;
    }[]

    Type declaration

    • achieved_at: Date
    • achievement_id: number
    username: string
    website: null | string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    account_history: {
        description: null | string;
        id: number;
        length: number;
        permanent: boolean;
        timestamp: Date;
        type: "note" | "restriction" | "silence";
    }[]

    Type declaration

    • description: null | string
    • id: number
    • length: number
    • permanent: boolean
    • timestamp: Date
    • type: "note" | "restriction" | "silence"
    active_tournament_banners: {
        id: number;
        image: string;
        tournament_id: number;
    }[]

    Type declaration

    • id: number
    • image: string
    • tournament_id: number
    avatar_url: string
    badges: {
        awarded_at: Date;
        description: string;
        image_url: string;
        url: string;
    }[]

    Type declaration

    • awarded_at: Date
    • description: string
    • image_url: string
    • url: string
    beatmap_playcounts_count: number
    comments_count: number
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    cover_url: string
    default_group: string
    discord: null | string
    favourite_beatmapset_count: number
    follower_count: number
    graveyard_beatmapset_count: number
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    guest_beatmapset_count: number
    has_supported: boolean
    id: number
    interests: null | string
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_restricted: boolean
    is_supporter: boolean
    join_date: Date
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    location: null | string
    loved_beatmapset_count: number
    mapping_follower_count: number
    max_blocks: number
    max_friends: number
    monthly_playcounts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    nominated_beatmapset_count: number
    occupation: null | string
    page: {
        html: string;
        raw: string;
    }

    Type declaration

    • html: string
    • raw: string

      Basically the text with the BBCode

      +
    pending_beatmapset_count: number
    playmode: "osu" | "taiko" | "fruits" | "mania"
    playstyle: null | string[]
    pm_friends_only: boolean
    post_count: number
    previous_usernames: string[]
    profile_colour: null | string
    profile_order: ("me" | "recent_activity" | "beatmaps" | "historical" | "kudosu" | "top_ranks" | "medals")[]
    rank_highest: null | {
        rank: number;
        updated_at: Date;
    }

    Type declaration

    • rank: number
    • updated_at: Date
    rank_history: null | {
        data: number[];
        mode: "osu" | "taiko" | "fruits" | "mania";
    }

    Type declaration

    • data: number[]
    • mode: "osu" | "taiko" | "fruits" | "mania"
    replays_watched_counts: {
        count: number;
        start_date: Date;
    }[]

    Type declaration

    • count: number
    • start_date: Date
    scores_best_count: number
    scores_first_count: number
    scores_pinned_count: number

    Specific to the Ruleset (playmode)

    +
    scores_recent_count: number
    statistics: WithCountryrank
    statistics_rulesets: {
        fruits?: User.Statistics;
        mania?: User.Statistics;
        osu?: User.Statistics;
        taiko?: User.Statistics;
    }

    Type declaration

    support_level: number
    title: null | string
    title_url: null | string
    twitter: null | string
    user_achievements: {
        achieved_at: Date;
        achievement_id: number;
    }[]

    Type declaration

    • achieved_at: Date
    • achievement_id: number
    username: string
    website: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.KudosuHistory.html b/docs/interfaces/User.KudosuHistory.html index fbce1ed..da44ae1 100644 --- a/docs/interfaces/User.KudosuHistory.html +++ b/docs/interfaces/User.KudosuHistory.html @@ -1,9 +1,9 @@ KudosuHistory | osu-api-v2-js

    Interface KudosuHistory

    Obtainable From

    API.getUserKudosu

    -
    interface KudosuHistory {
        action: "reset" | "give" | "vote.give" | "vote.reset" | "revoke" | "vote.revoke";
        amount: number;
        created_at: Date;
        giver: null | {
            url: string;
            username: string;
        };
        id: number;
        model: string;
        post: {
            title: string;
            url: null | string;
        };
    }

    Properties

    interface KudosuHistory {
        action: "reset" | "give" | "vote.give" | "vote.reset" | "revoke" | "vote.revoke";
        amount: number;
        created_at: Date;
        giver: null | {
            url: string;
            username: string;
        };
        id: number;
        model: string;
        post: {
            title: string;
            url: null | string;
        };
    }

    Properties

    action: "reset" | "give" | "vote.give" | "vote.reset" | "revoke" | "vote.revoke"
    amount: number
    created_at: Date
    giver: null | {
        url: string;
        username: string;
    }

    Type declaration

    • url: string
    • username: string
    id: number
    model: string
    post: {
        title: string;
        url: null | string;
    }

    Type declaration

    • title: string
    • url: null | string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    action: "reset" | "give" | "vote.give" | "vote.reset" | "revoke" | "vote.revoke"
    amount: number
    created_at: Date
    giver: null | {
        url: string;
        username: string;
    }

    Type declaration

    • url: string
    • username: string
    id: number
    model: string
    post: {
        title: string;
        url: null | string;
    }

    Type declaration

    • title: string
    • url: null | string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Statistics-1.html b/docs/interfaces/User.Statistics-1.html index 35e5b70..c7877e7 100644 --- a/docs/interfaces/User.Statistics-1.html +++ b/docs/interfaces/User.Statistics-1.html @@ -1,4 +1,4 @@ -Statistics | osu-api-v2-js

    Interface Statistics

    interface Statistics {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
    }

    Hierarchy (view full)

    Properties

    count_100 +Statistics | osu-api-v2-js

    Interface Statistics

    interface Statistics {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
    }

    Hierarchy (view full)

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    -
    is_ranked: boolean

    Hasn't become inactive in the rankings

    -
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    +
    is_ranked: boolean

    Hasn't become inactive in the rankings

    +
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Statistics.WithCountryrank.html b/docs/interfaces/User.Statistics.WithCountryrank.html index 2018fc5..0a1fc00 100644 --- a/docs/interfaces/User.Statistics.WithCountryrank.html +++ b/docs/interfaces/User.Statistics.WithCountryrank.html @@ -1,4 +1,4 @@ -WithCountryrank | osu-api-v2-js
    interface WithCountryrank {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        country_rank: null | number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
    }

    Hierarchy (view full)

    Properties

    count_100 +WithCountryrank | osu-api-v2-js
    interface WithCountryrank {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        country_rank: null | number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
    }

    Hierarchy (view full)

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    country_rank: null | number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    -
    is_ranked: boolean

    Hasn't become inactive in the rankings

    -
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    country_rank: null | number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    +
    is_ranked: boolean

    Hasn't become inactive in the rankings

    +
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.Statistics.WithUser.html b/docs/interfaces/User.Statistics.WithUser.html index a7e493d..4c49882 100644 --- a/docs/interfaces/User.Statistics.WithUser.html +++ b/docs/interfaces/User.Statistics.WithUser.html @@ -1,4 +1,4 @@ -WithUser | osu-api-v2-js
    interface WithUser {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
        user: WithCountryCover;
    }

    Hierarchy (view full)

    Properties

    count_100 +WithUser | osu-api-v2-js
    interface WithUser {
        count_100: number;
        count_300: number;
        count_50: number;
        count_miss: number;
        global_rank: null | number;
        global_rank_exp: null | number;
        grade_counts: {
            a: number;
            s: number;
            sh: number;
            ss: number;
            ssh: number;
        };
        hit_accuracy: number;
        is_ranked: boolean;
        level: {
            current: number;
            progress: number;
        };
        maximum_combo: number;
        play_count: number;
        play_time: null | number;
        pp: null | number;
        pp_exp: number;
        ranked_score: number;
        replays_watched_by_others: number;
        total_hits: number;
        total_score: number;
        user: WithCountryCover;
    }

    Hierarchy (view full)

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    -
    is_ranked: boolean

    Hasn't become inactive in the rankings

    -
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    count_100: number
    count_300: number
    count_50: number
    count_miss: number
    global_rank: null | number
    global_rank_exp: null | number
    grade_counts: {
        a: number;
        s: number;
        sh: number;
        ss: number;
        ssh: number;
    }

    Type declaration

    • a: number
    • s: number
    • sh: number
    • ss: number
    • ssh: number
    hit_accuracy: number

    Accuracy in the normal format, where 96.56% would be 96.56

    +
    is_ranked: boolean

    Hasn't become inactive in the rankings

    +
    level: {
        current: number;
        progress: number;
    }

    Type declaration

    • current: number
    • progress: number
    maximum_combo: number
    play_count: number
    play_time: null | number
    pp: null | number
    pp_exp: number
    ranked_score: number
    replays_watched_by_others: number
    total_hits: number
    total_score: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithCountry.html b/docs/interfaces/User.WithCountry.html index 2c34f2a..459a3dc 100644 --- a/docs/interfaces/User.WithCountry.html +++ b/docs/interfaces/User.WithCountry.html @@ -1,5 +1,5 @@ WithCountry | osu-api-v2-js

    Interface WithCountry

    Obtainable From

    API.getMatch

    -
    interface WithCountry {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithCountry {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithCountryCover.html b/docs/interfaces/User.WithCountryCover.html index c1badc6..a02b687 100644 --- a/docs/interfaces/User.WithCountryCover.html +++ b/docs/interfaces/User.WithCountryCover.html @@ -1,5 +1,5 @@ WithCountryCover | osu-api-v2-js

    Interface WithCountryCover

    Obtainable From

    API.getMatch

    -
    interface WithCountryCover {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithCountryCover {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithCountryCoverGroupsStatisticsSupport.html b/docs/interfaces/User.WithCountryCoverGroupsStatisticsSupport.html index 09742d0..c57403e 100644 --- a/docs/interfaces/User.WithCountryCoverGroupsStatisticsSupport.html +++ b/docs/interfaces/User.WithCountryCoverGroupsStatisticsSupport.html @@ -1,5 +1,5 @@ WithCountryCoverGroupsStatisticsSupport | osu-api-v2-js

    Interface WithCountryCoverGroupsStatisticsSupport

    Obtainable From

    API.getFriends

    -
    interface WithCountryCoverGroupsStatisticsSupport {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        statistics: User.Statistics;
        support_level: number;
        username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithCountryCoverGroupsStatisticsSupport {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        statistics: User.Statistics;
        support_level: number;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    statistics: User.Statistics
    support_level: number
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    statistics: User.Statistics
    support_level: number
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithCountryCoverGroupsStatisticsrulesets.html b/docs/interfaces/User.WithCountryCoverGroupsStatisticsrulesets.html index d559922..1589eeb 100644 --- a/docs/interfaces/User.WithCountryCoverGroupsStatisticsrulesets.html +++ b/docs/interfaces/User.WithCountryCoverGroupsStatisticsrulesets.html @@ -1,5 +1,5 @@ WithCountryCoverGroupsStatisticsrulesets | osu-api-v2-js

    Interface WithCountryCoverGroupsStatisticsrulesets

    Obtainable From

    API.getUsers

    -
    interface WithCountryCoverGroupsStatisticsrulesets {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        statistics_rulesets: {
            fruits?: User.Statistics;
            mania?: User.Statistics;
            osu?: User.Statistics;
            taiko?: User.Statistics;
        };
        username: string;
    }

    Hierarchy (view full)

    Properties

    interface WithCountryCoverGroupsStatisticsrulesets {
        avatar_url: string;
        country: {
            code: string;
            name: string;
        };
        country_code: string;
        cover: {
            custom_url: null | string;
            id: null | number;
            url: string;
        };
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        statistics_rulesets: {
            fruits?: User.Statistics;
            mania?: User.Statistics;
            osu?: User.Statistics;
            taiko?: User.Statistics;
        };
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    statistics_rulesets: {
        fruits?: User.Statistics;
        mania?: User.Statistics;
        osu?: User.Statistics;
        taiko?: User.Statistics;
    }

    Type declaration

    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country: {
        code: string;
        name: string;
    }

    Type declaration

    • code: string
    • name: string
    country_code: string
    cover: {
        custom_url: null | string;
        id: null | number;
        url: string;
    }

    Type declaration

    • custom_url: null | string
    • id: null | number
    • url: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    statistics_rulesets: {
        fruits?: User.Statistics;
        mania?: User.Statistics;
        osu?: User.Statistics;
        taiko?: User.Statistics;
    }

    Type declaration

    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithGroups.html b/docs/interfaces/User.WithGroups.html index e80d09a..0df44db 100644 --- a/docs/interfaces/User.WithGroups.html +++ b/docs/interfaces/User.WithGroups.html @@ -1,4 +1,4 @@ -WithGroups | osu-api-v2-js

    Interface WithGroups

    interface WithGroups {
        avatar_url: string;
        country_code: string;
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url +WithGroups | osu-api-v2-js

    Interface WithGroups

    interface WithGroups {
        avatar_url: string;
        country_code: string;
        default_group: string;
        groups: {
            colour: null | string;
            has_listing: boolean;
            has_playmodes: boolean;
            id: number;
            identifier: string;
            is_probationary: boolean;
            name: string;
            playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
            short_name: string;
        }[];
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    groups: {
        colour: null | string;
        has_listing: boolean;
        has_playmodes: boolean;
        id: number;
        identifier: string;
        is_probationary: boolean;
        name: string;
        playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[];
        short_name: string;
    }[]

    Type declaration

    • colour: null | string
    • has_listing: boolean
    • has_playmodes: boolean
    • id: number
    • identifier: string
    • is_probationary: boolean
    • name: string
    • playmodes: null | ("osu" | "taiko" | "fruits" | "mania")[]
    • short_name: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/User.WithKudosu.html b/docs/interfaces/User.WithKudosu.html index 66a7949..2b5dda7 100644 --- a/docs/interfaces/User.WithKudosu.html +++ b/docs/interfaces/User.WithKudosu.html @@ -1,4 +1,4 @@ -WithKudosu | osu-api-v2-js

    Interface WithKudosu

    interface WithKudosu {
        avatar_url: string;
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url +WithKudosu | osu-api-v2-js

    Interface WithKudosu

    interface WithKudosu {
        avatar_url: string;
        country_code: string;
        default_group: string;
        id: number;
        is_active: boolean;
        is_bot: boolean;
        is_deleted: boolean;
        is_online: boolean;
        is_supporter: boolean;
        kudosu: {
            available: number;
            total: number;
        };
        last_visit: null | Date;
        pm_friends_only: boolean;
        profile_colour: null | string;
        username: string;
    }

    Hierarchy (view full)

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    avatar_url: string
    country_code: string
    default_group: string
    id: number
    is_active: boolean
    is_bot: boolean
    is_deleted: boolean
    is_online: boolean
    is_supporter: boolean
    kudosu: {
        available: number;
        total: number;
    }

    Type declaration

    • available: number
    • total: number
    last_visit: null | Date
    pm_friends_only: boolean
    profile_colour: null | string
    username: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/WebSocket.Event.ChatChannelJoin.html b/docs/interfaces/WebSocket.Event.ChatChannelJoin.html index c0b9fa3..ee8abf1 100644 --- a/docs/interfaces/WebSocket.Event.ChatChannelJoin.html +++ b/docs/interfaces/WebSocket.Event.ChatChannelJoin.html @@ -1,3 +1,3 @@ -ChatChannelJoin | osu-api-v2-js
    interface ChatChannelJoin {
        data: WithDetails;
        event: "chat.channel.join";
    }

    Properties

    data +ChatChannelJoin | osu-api-v2-js
    interface ChatChannelJoin {
        data: WithDetails;
        event: "chat.channel.join";
    }

    Properties

    Properties

    event: "chat.channel.join"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    event: "chat.channel.join"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/WebSocket.Event.ChatChannelLeave.html b/docs/interfaces/WebSocket.Event.ChatChannelLeave.html index 9cd8701..e456b53 100644 --- a/docs/interfaces/WebSocket.Event.ChatChannelLeave.html +++ b/docs/interfaces/WebSocket.Event.ChatChannelLeave.html @@ -1,3 +1,3 @@ -ChatChannelLeave | osu-api-v2-js
    interface ChatChannelLeave {
        data: WithDetails;
        event: "chat.channel.part";
    }

    Properties

    data +ChatChannelLeave | osu-api-v2-js
    interface ChatChannelLeave {
        data: WithDetails;
        event: "chat.channel.part";
    }

    Properties

    Properties

    event: "chat.channel.part"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    event: "chat.channel.part"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/WebSocket.Event.ChatMessageNew.html b/docs/interfaces/WebSocket.Event.ChatMessageNew.html index 9dbd25c..093e63b 100644 --- a/docs/interfaces/WebSocket.Event.ChatMessageNew.html +++ b/docs/interfaces/WebSocket.Event.ChatMessageNew.html @@ -1,3 +1,3 @@ -ChatMessageNew | osu-api-v2-js
    interface ChatMessageNew {
        data: {
            messages: Message[];
            users: User[];
        };
        event: "chat.message.new";
    }

    Properties

    data +ChatMessageNew | osu-api-v2-js
    interface ChatMessageNew {
        data: {
            messages: Message[];
            users: User[];
        };
        event: "chat.message.new";
    }

    Properties

    Properties

    data: {
        messages: Message[];
        users: User[];
    }

    Type declaration

    event: "chat.message.new"

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    data: {
        messages: Message[];
        users: User[];
    }

    Type declaration

    event: "chat.message.new"

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/WikiPage-1.html b/docs/interfaces/WikiPage-1.html index 474385f..e7157a5 100644 --- a/docs/interfaces/WikiPage-1.html +++ b/docs/interfaces/WikiPage-1.html @@ -1,5 +1,5 @@ WikiPage | osu-api-v2-js

    Interface WikiPage

    Obtainable From

    API.getWikiPage

    -
    interface WikiPage {
        available_locales: string[];
        layout: string;
        locale: string;
        markdown: string;
        path: string;
        subtitle: null | string;
        tags: string[];
        title: string;
    }

    Properties

    interface WikiPage {
        available_locales: string[];
        layout: string;
        locale: string;
        markdown: string;
        path: string;
        subtitle: null | string;
        tags: string[];
        title: string;
    }

    Properties

    available_locales: string[]
    layout: string
    locale: string

    Lowercase BCP 47 language (sub)tag (for example, en for english)

    -
    markdown: string
    path: string

    It's what should be after https://osu.ppy.sh/wiki/{locale}/

    -
    subtitle: null | string

    Think of it as the title of the parent wiki page

    +

    Properties

    available_locales: string[]
    layout: string
    locale: string

    Lowercase BCP 47 language (sub)tag (for example, en for english)

    +
    markdown: string
    path: string

    It's what should be after https://osu.ppy.sh/wiki/{locale}/

    +
    subtitle: null | string

    Think of it as the title of the parent wiki page

    Remarks

    If the title in the path (assuming it's in it (very unlikely if locale is not en)) is after a slash (/), this is what is before the slash

    -
    tags: string[]
    title: string

    Generated using TypeDoc

    \ No newline at end of file +
    tags: string[]
    title: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmap.DifficultyAttributes.html b/docs/modules/Beatmap.DifficultyAttributes.html index 0e52275..49e3586 100644 --- a/docs/modules/Beatmap.DifficultyAttributes.html +++ b/docs/modules/Beatmap.DifficultyAttributes.html @@ -1,4 +1,4 @@ -DifficultyAttributes | osu-api-v2-js

    Namespace DifficultyAttributes

    Index

    Interfaces

    Fruits +DifficultyAttributes | osu-api-v2-js

    Namespace DifficultyAttributes

    Index

    Interfaces

    Fruits Mania Osu Taiko diff --git a/docs/modules/Beatmap.Extended.html b/docs/modules/Beatmap.Extended.html index badc887..76f0a79 100644 --- a/docs/modules/Beatmap.Extended.html +++ b/docs/modules/Beatmap.Extended.html @@ -1,4 +1,4 @@ -Extended | osu-api-v2-js

    Index

    Interfaces

    WithFailtimes +Extended | osu-api-v2-js

    Index

    Interfaces

    WithFailtimes WithFailtimesBeatmapset WithFailtimesMaxcombo WithMaxcombo diff --git a/docs/modules/Beatmap.Pack.html b/docs/modules/Beatmap.Pack.html index 65a70b3..801ab7f 100644 --- a/docs/modules/Beatmap.Pack.html +++ b/docs/modules/Beatmap.Pack.html @@ -1,4 +1,4 @@ -Pack | osu-api-v2-js

    Index

    Interfaces

    WithBeatmapset +Pack | osu-api-v2-js

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmap.UserScore.html b/docs/modules/Beatmap.UserScore.html index 11d4896..2ffbc0c 100644 --- a/docs/modules/Beatmap.UserScore.html +++ b/docs/modules/Beatmap.UserScore.html @@ -1,3 +1,3 @@ -UserScore | osu-api-v2-js

    Index

    Functions

    getMultiple +UserScore | osu-api-v2-js

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmap.html b/docs/modules/Beatmap.html index a1db0ea..9dd8c2b 100644 --- a/docs/modules/Beatmap.html +++ b/docs/modules/Beatmap.html @@ -1,4 +1,4 @@ -Beatmap | osu-api-v2-js

    Namespace Beatmap

    Index

    Namespaces

    DifficultyAttributes +Beatmap | osu-api-v2-js

    Namespace Beatmap

    Index

    Namespaces

    DifficultyAttributes Extended Pack UserScore diff --git a/docs/modules/Beatmapset.Discussion.Post.html b/docs/modules/Beatmapset.Discussion.Post.html index bc46007..46745d3 100644 --- a/docs/modules/Beatmapset.Discussion.Post.html +++ b/docs/modules/Beatmapset.Discussion.Post.html @@ -1,2 +1,2 @@ -Post | osu-api-v2-js

    Index

    Functions

    getMultiple +Post | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmapset.Discussion.Vote.html b/docs/modules/Beatmapset.Discussion.Vote.html index 0dcb774..fe42062 100644 --- a/docs/modules/Beatmapset.Discussion.Vote.html +++ b/docs/modules/Beatmapset.Discussion.Vote.html @@ -1,2 +1,2 @@ -Vote | osu-api-v2-js

    Index

    Functions

    getMultiple +Vote | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmapset.Discussion.html b/docs/modules/Beatmapset.Discussion.html index 5e9c3a4..5db0a42 100644 --- a/docs/modules/Beatmapset.Discussion.html +++ b/docs/modules/Beatmapset.Discussion.html @@ -1,4 +1,4 @@ -Discussion | osu-api-v2-js

    Index

    Namespaces

    Post +Discussion | osu-api-v2-js

    Index

    Namespaces

    Interfaces

    Post Vote diff --git a/docs/modules/Beatmapset.Event.Comment.html b/docs/modules/Beatmapset.Event.Comment.html index 3676dc1..d2f533f 100644 --- a/docs/modules/Beatmapset.Event.Comment.html +++ b/docs/modules/Beatmapset.Event.Comment.html @@ -1,5 +1,5 @@ Comment | osu-api-v2-js

    Remarks

    Unrelated to comments in bundles!

    -

    Index

    Interfaces

    Index

    Interfaces

    WithDiscussionidPostid WithDiscussionidPostidBeatmapidBeatmapversionNewuseridNewuserusername WithDiscussionidPostidNewvotevotes WithDiscussionidPostidNominatorsids diff --git a/docs/modules/Beatmapset.Event.html b/docs/modules/Beatmapset.Event.html index 6fbd50e..78aa687 100644 --- a/docs/modules/Beatmapset.Event.html +++ b/docs/modules/Beatmapset.Event.html @@ -1,4 +1,4 @@ -Event | osu-api-v2-js

    Index

    Namespaces

    Comment +Event | osu-api-v2-js

    Index

    Namespaces

    Interfaces

    Type Aliases

    Any AnyBeatmapChange diff --git a/docs/modules/Beatmapset.Extended.html b/docs/modules/Beatmapset.Extended.html index b90e9cf..96936cd 100644 --- a/docs/modules/Beatmapset.Extended.html +++ b/docs/modules/Beatmapset.Extended.html @@ -1,4 +1,4 @@ -Extended | osu-api-v2-js

    Index

    Interfaces

    Plus +Extended | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Beatmapset.html b/docs/modules/Beatmapset.html index 4c4c94b..7509789 100644 --- a/docs/modules/Beatmapset.html +++ b/docs/modules/Beatmapset.html @@ -1,4 +1,4 @@ -Beatmapset | osu-api-v2-js

    Namespace Beatmapset

    Index

    Namespaces

    Discussion +Beatmapset | osu-api-v2-js

    Namespace Beatmapset

    Index

    Namespaces

    Enumerations

    Genre diff --git a/docs/modules/Changelog.Build.html b/docs/modules/Changelog.Build.html index cfd274f..e1000e0 100644 --- a/docs/modules/Changelog.Build.html +++ b/docs/modules/Changelog.Build.html @@ -1,4 +1,4 @@ -Build | osu-api-v2-js

    Index

    Interfaces

    WithChangelogentriesVersions +Build | osu-api-v2-js

    Index

    Interfaces

    Functions

    getMultiple diff --git a/docs/modules/Changelog.UpdateStream.html b/docs/modules/Changelog.UpdateStream.html index c0af663..b0e8881 100644 --- a/docs/modules/Changelog.UpdateStream.html +++ b/docs/modules/Changelog.UpdateStream.html @@ -1,3 +1,3 @@ -UpdateStream | osu-api-v2-js

    Index

    Interfaces

    WithLatestbuildUsercount +UpdateStream | osu-api-v2-js

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Changelog.html b/docs/modules/Changelog.html index fb53906..093a3b3 100644 --- a/docs/modules/Changelog.html +++ b/docs/modules/Changelog.html @@ -1,4 +1,4 @@ -Changelog | osu-api-v2-js

    Namespace Changelog

    Index

    Namespaces

    Build +Changelog | osu-api-v2-js

    Namespace Changelog

    Index

    Namespaces

    Interfaces

    Build UpdateStream diff --git a/docs/modules/Chat.Channel.html b/docs/modules/Chat.Channel.html index 93b61ff..30652a9 100644 --- a/docs/modules/Chat.Channel.html +++ b/docs/modules/Chat.Channel.html @@ -1,4 +1,4 @@ -Channel | osu-api-v2-js

    Namespace Channel

    Index

    Interfaces

    WithDetails +Channel | osu-api-v2-js

    Namespace Channel

    Index

    Interfaces

    Functions

    createAnnouncement createPrivate getAll diff --git a/docs/modules/Chat.Message.html b/docs/modules/Chat.Message.html index 9d35c00..f951f5d 100644 --- a/docs/modules/Chat.Message.html +++ b/docs/modules/Chat.Message.html @@ -1,4 +1,4 @@ -Message | osu-api-v2-js

    Namespace Message

    Index

    Functions

    getMultiple +Message | osu-api-v2-js

    Namespace Message

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Chat.html b/docs/modules/Chat.html index 7a5bdc2..ba5e2e6 100644 --- a/docs/modules/Chat.html +++ b/docs/modules/Chat.html @@ -1,4 +1,4 @@ -Chat | osu-api-v2-js

    Namespace Chat

    Index

    Namespaces

    Channel +Chat | osu-api-v2-js

    Namespace Chat

    Index

    Namespaces

    Interfaces

    Channel Message diff --git a/docs/modules/Comment.Bundle.html b/docs/modules/Comment.Bundle.html index 9fa7e63..eb6bab0 100644 --- a/docs/modules/Comment.Bundle.html +++ b/docs/modules/Comment.Bundle.html @@ -1,2 +1,2 @@ -Bundle | osu-api-v2-js

    Index

    Interfaces

    WithTotalToplevelcount +Bundle | osu-api-v2-js

    Index

    Interfaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Comment.html b/docs/modules/Comment.html index 649a1de..183e18a 100644 --- a/docs/modules/Comment.html +++ b/docs/modules/Comment.html @@ -1,4 +1,4 @@ -Comment | osu-api-v2-js

    Namespace Comment

    Index

    Namespaces

    Bundle +Comment | osu-api-v2-js

    Namespace Comment

    Index

    Namespaces

    Interfaces

    Functions

    getMultiple getOne diff --git a/docs/modules/Event.SharedProperties.html b/docs/modules/Event.SharedProperties.html index 8695177..f3ecae7 100644 --- a/docs/modules/Event.SharedProperties.html +++ b/docs/modules/Event.SharedProperties.html @@ -1,5 +1,5 @@ SharedProperties | osu-api-v2-js

    Namespace SharedProperties

    Those are used as properties by Events, they're not events themselves

    -

    Index

    Interfaces

    Index

    Interfaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Event.html b/docs/modules/Event.html index 1cf9705..8c62398 100644 --- a/docs/modules/Event.html +++ b/docs/modules/Event.html @@ -1,4 +1,4 @@ -Event | osu-api-v2-js

    Namespace Event

    Index

    Namespaces

    SharedProperties +Event | osu-api-v2-js

    Namespace Event

    Index

    Namespaces

    Interfaces

    Achievement BeatmapPlaycount BeatmapsetApprove diff --git a/docs/modules/Forum.Post.html b/docs/modules/Forum.Post.html index 35a087c..d9329fa 100644 --- a/docs/modules/Forum.Post.html +++ b/docs/modules/Forum.Post.html @@ -1,2 +1,2 @@ -Post | osu-api-v2-js

    Index

    Functions

    edit +Post | osu-api-v2-js

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Forum.Topic.html b/docs/modules/Forum.Topic.html index eb37f6d..4895b4d 100644 --- a/docs/modules/Forum.Topic.html +++ b/docs/modules/Forum.Topic.html @@ -1,4 +1,4 @@ -Topic | osu-api-v2-js

    Index

    Functions

    create +Topic | osu-api-v2-js

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Forum.html b/docs/modules/Forum.html index cf42803..a0b8001 100644 --- a/docs/modules/Forum.html +++ b/docs/modules/Forum.html @@ -1,4 +1,4 @@ -Forum | osu-api-v2-js

    Namespace Forum

    Index

    Namespaces

    Post +Forum | osu-api-v2-js

    Namespace Forum

    Index

    Namespaces

    Interfaces

    Post Topic diff --git a/docs/modules/Home.Search.html b/docs/modules/Home.Search.html index 983528a..59c1260 100644 --- a/docs/modules/Home.Search.html +++ b/docs/modules/Home.Search.html @@ -1,3 +1,3 @@ -Search | osu-api-v2-js

    Namespace Search

    Index

    Functions

    getUsers +Search | osu-api-v2-js

    Namespace Search

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Home.html b/docs/modules/Home.html index 623d393..b76ab22 100644 --- a/docs/modules/Home.html +++ b/docs/modules/Home.html @@ -1,2 +1,2 @@ -Home | osu-api-v2-js

    Namespace Home

    Index

    Namespaces

    Search +Home | osu-api-v2-js

    Namespace Home

    Index

    Namespaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Multiplayer.Match.html b/docs/modules/Multiplayer.Match.html index 1603166..7980165 100644 --- a/docs/modules/Multiplayer.Match.html +++ b/docs/modules/Multiplayer.Match.html @@ -1,4 +1,4 @@ -Match | osu-api-v2-js

    Index

    Interfaces

    Info +Match | osu-api-v2-js

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Multiplayer.Room.Leader.html b/docs/modules/Multiplayer.Room.Leader.html index 38727e9..3a03fd0 100644 --- a/docs/modules/Multiplayer.Room.Leader.html +++ b/docs/modules/Multiplayer.Room.Leader.html @@ -1,3 +1,3 @@ -Leader | osu-api-v2-js

    Index

    Interfaces

    WithPosition +Leader | osu-api-v2-js

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Multiplayer.Room.PlaylistItem.html b/docs/modules/Multiplayer.Room.PlaylistItem.html index 916ccfb..3897529 100644 --- a/docs/modules/Multiplayer.Room.PlaylistItem.html +++ b/docs/modules/Multiplayer.Room.PlaylistItem.html @@ -1,3 +1,3 @@ -PlaylistItem | osu-api-v2-js

    Index

    Interfaces

    Scores +PlaylistItem | osu-api-v2-js

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Multiplayer.Room.html b/docs/modules/Multiplayer.Room.html index db4f152..3fdb4e2 100644 --- a/docs/modules/Multiplayer.Room.html +++ b/docs/modules/Multiplayer.Room.html @@ -1,4 +1,4 @@ -Room | osu-api-v2-js

    Index

    Namespaces

    Leader +Room | osu-api-v2-js

    Index

    Namespaces

    Interfaces

    Leader PlaylistItem diff --git a/docs/modules/Multiplayer.html b/docs/modules/Multiplayer.html index 27f48ab..15a37dc 100644 --- a/docs/modules/Multiplayer.html +++ b/docs/modules/Multiplayer.html @@ -1,4 +1,4 @@ -Multiplayer | osu-api-v2-js

    Namespace Multiplayer

    Index

    Namespaces

    Match +Multiplayer | osu-api-v2-js

    Namespace Multiplayer

    Index

    Namespaces

    Interfaces

    Match Room diff --git a/docs/modules/NewsPost.html b/docs/modules/NewsPost.html index 26c5b11..63b9b6b 100644 --- a/docs/modules/NewsPost.html +++ b/docs/modules/NewsPost.html @@ -1,4 +1,4 @@ -NewsPost | osu-api-v2-js

    Namespace NewsPost

    Index

    Interfaces

    WithContentNavigation +NewsPost | osu-api-v2-js

    Namespace NewsPost

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/Ranking.html b/docs/modules/Ranking.html index c7d30ef..a14ebe9 100644 --- a/docs/modules/Ranking.html +++ b/docs/modules/Ranking.html @@ -1,4 +1,4 @@ -Ranking | osu-api-v2-js

    Namespace Ranking

    Index

    Interfaces

    Country +Ranking | osu-api-v2-js

    Namespace Ranking

    Index

    Interfaces

    Functions

    getCountry diff --git a/docs/modules/Score.html b/docs/modules/Score.html index 20dab0e..a7aad82 100644 --- a/docs/modules/Score.html +++ b/docs/modules/Score.html @@ -1,4 +1,4 @@ -Score | osu-api-v2-js

    Namespace Score

    Index

    Interfaces

    Legacy +Score | osu-api-v2-js

    Namespace Score

    Index

    Interfaces

    Legacy Multiplayer Solo Statistics diff --git a/docs/modules/Spotlight.html b/docs/modules/Spotlight.html index 7b71400..2b519e4 100644 --- a/docs/modules/Spotlight.html +++ b/docs/modules/Spotlight.html @@ -1,3 +1,3 @@ -Spotlight | osu-api-v2-js

    Namespace Spotlight

    Index

    Interfaces

    WithParticipantcount +Spotlight | osu-api-v2-js

    Namespace Spotlight

    Index

    Interfaces

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/User.Extended.html b/docs/modules/User.Extended.html index ef61f93..44a6a7f 100644 --- a/docs/modules/User.Extended.html +++ b/docs/modules/User.Extended.html @@ -1,2 +1,2 @@ -Extended | osu-api-v2-js

    Namespace Extended

    Index

    Interfaces

    WithStatisticsrulesets +Extended | osu-api-v2-js

    Namespace Extended

    Index

    Interfaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/User.Statistics.html b/docs/modules/User.Statistics.html index 602c2d1..2609460 100644 --- a/docs/modules/User.Statistics.html +++ b/docs/modules/User.Statistics.html @@ -1,3 +1,3 @@ -Statistics | osu-api-v2-js

    Namespace Statistics

    Index

    Interfaces

    WithCountryrank +Statistics | osu-api-v2-js

    Namespace Statistics

    Index

    Interfaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/User.html b/docs/modules/User.html index b45bb8d..0d5640a 100644 --- a/docs/modules/User.html +++ b/docs/modules/User.html @@ -1,4 +1,4 @@ -User | osu-api-v2-js

    Namespace User

    Index

    Namespaces

    Extended +User | osu-api-v2-js

    Namespace User

    Index

    Namespaces

    Interfaces

    Extended KudosuHistory diff --git a/docs/modules/WebSocket.Command.html b/docs/modules/WebSocket.Command.html index 9a4a3bd..2264b06 100644 --- a/docs/modules/WebSocket.Command.html +++ b/docs/modules/WebSocket.Command.html @@ -1,6 +1,6 @@ Command | osu-api-v2-js

    Use any of those with socket.send() to send a command to the WebSocket!

    Example

    `socket.send(osu.WebSocket.Command.chatStart)`
     
    -

    Index

    Variables

    Index

    Variables

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/WebSocket.Event.html b/docs/modules/WebSocket.Event.html index 64dcc2b..926ca17 100644 --- a/docs/modules/WebSocket.Event.html +++ b/docs/modules/WebSocket.Event.html @@ -1,5 +1,5 @@ Event | osu-api-v2-js

    Those are what you'll get from WebSocket's MessageEvents!

    -

    Index

    Interfaces

    Index

    Interfaces

    Type Aliases

    Any diff --git a/docs/modules/WebSocket.html b/docs/modules/WebSocket.html index 7306801..780da41 100644 --- a/docs/modules/WebSocket.html +++ b/docs/modules/WebSocket.html @@ -1,4 +1,4 @@ WebSocket | osu-api-v2-js

    Namespace WebSocket

    Everything here is great to use with the WebSocket you can get with API.generateWebSocket!

    -

    Index

    Namespaces

    Index

    Namespaces

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/modules/WikiPage.html b/docs/modules/WikiPage.html index a8b4c7f..ad22a72 100644 --- a/docs/modules/WikiPage.html +++ b/docs/modules/WikiPage.html @@ -1,2 +1,2 @@ -WikiPage | osu-api-v2-js

    Namespace WikiPage

    Index

    Functions

    getOne +WikiPage | osu-api-v2-js

    Namespace WikiPage

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Beatmap.DifficultyAttributes.Any.html b/docs/types/Beatmap.DifficultyAttributes.Any.html index 1e54d4c..04de9ca 100644 --- a/docs/types/Beatmap.DifficultyAttributes.Any.html +++ b/docs/types/Beatmap.DifficultyAttributes.Any.html @@ -1 +1 @@ -Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Beatmapset.Event.Any.html b/docs/types/Beatmapset.Event.Any.html index fc8029e..9fbff66 100644 --- a/docs/types/Beatmapset.Event.Any.html +++ b/docs/types/Beatmapset.Event.Any.html @@ -1 +1 @@ -Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Beatmapset.Event.AnyBeatmapChange.html b/docs/types/Beatmapset.Event.AnyBeatmapChange.html index 8dbfc98..76fd453 100644 --- a/docs/types/Beatmapset.Event.AnyBeatmapChange.html +++ b/docs/types/Beatmapset.Event.AnyBeatmapChange.html @@ -1 +1 @@ -AnyBeatmapChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +AnyBeatmapChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Beatmapset.Event.AnyBeatmapsetStatusChange.html b/docs/types/Beatmapset.Event.AnyBeatmapsetStatusChange.html index 308c9cc..2135903 100644 --- a/docs/types/Beatmapset.Event.AnyBeatmapsetStatusChange.html +++ b/docs/types/Beatmapset.Event.AnyBeatmapsetStatusChange.html @@ -1 +1 @@ -AnyBeatmapsetStatusChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +AnyBeatmapsetStatusChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Beatmapset.Event.AnyDiscussionChange.html b/docs/types/Beatmapset.Event.AnyDiscussionChange.html index 753be6e..2edb478 100644 --- a/docs/types/Beatmapset.Event.AnyDiscussionChange.html +++ b/docs/types/Beatmapset.Event.AnyDiscussionChange.html @@ -1 +1 @@ -AnyDiscussionChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +AnyDiscussionChange | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Event.Any.html b/docs/types/Event.Any.html index 8847a0f..e0e07ab 100644 --- a/docs/types/Event.Any.html +++ b/docs/types/Event.Any.html @@ -1 +1 @@ -Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file +Any | osu-api-v2-js

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Event.AnyRecentActivity.html b/docs/types/Event.AnyRecentActivity.html index 0a4e74a..db43004 100644 --- a/docs/types/Event.AnyRecentActivity.html +++ b/docs/types/Event.AnyRecentActivity.html @@ -1,2 +1,2 @@ AnyRecentActivity | osu-api-v2-js

    Type alias AnyRecentActivity

    This includes everything in this namespace, except BeatmapPlaycount

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Mod.html b/docs/types/Mod.html index 2890a63..d7f3b6c 100644 --- a/docs/types/Mod.html +++ b/docs/types/Mod.html @@ -1 +1 @@ -Mod | osu-api-v2-js

    Type alias Mod

    Mod: {
        acronym: string;
        settings?: {
            [k: string]: any;
        };
    }

    Type declaration

    • acronym: string
    • Optional settings?: {
          [k: string]: any;
      }
      • [k: string]: any

    Generated using TypeDoc

    \ No newline at end of file +Mod | osu-api-v2-js

    Type alias Mod

    Mod: {
        acronym: string;
        settings?: {
            [k: string]: any;
        };
    }

    Type declaration

    • acronym: string
    • Optional settings?: {
          [k: string]: any;
      }
      • [k: string]: any

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/Scope.html b/docs/types/Scope.html index 284ca18..f8dccd9 100644 --- a/docs/types/Scope.html +++ b/docs/types/Scope.html @@ -2,4 +2,4 @@ https://osu.ppy.sh/docs/index.html#scopes

    Remarks

    "identify" is always implicity provided, "public" is implicitly needed for almost everything!! The need for the "public" scope is only made explicit when the function can't be used unless the application acts as as a user (non-guest)

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/types/WebSocket.Event.Any.html b/docs/types/WebSocket.Event.Any.html index 79df602..9303335 100644 --- a/docs/types/WebSocket.Event.Any.html +++ b/docs/types/WebSocket.Event.Any.html @@ -1,2 +1,2 @@ Any | osu-api-v2-js

    That's the type of JSON.parse(m.toString()) where m is a WebSocket's MessageEvent!

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/variables/WebSocket.Command.chatEnd.html b/docs/variables/WebSocket.Command.chatEnd.html index f0799a0..6903a26 100644 --- a/docs/variables/WebSocket.Command.chatEnd.html +++ b/docs/variables/WebSocket.Command.chatEnd.html @@ -1 +1 @@ -chatEnd | osu-api-v2-js
    chatEnd: string = ...

    Generated using TypeDoc

    \ No newline at end of file +chatEnd | osu-api-v2-js
    chatEnd: string = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/variables/WebSocket.Command.chatStart.html b/docs/variables/WebSocket.Command.chatStart.html index d1f663b..99bd28f 100644 --- a/docs/variables/WebSocket.Command.chatStart.html +++ b/docs/variables/WebSocket.Command.chatStart.html @@ -1 +1 @@ -chatStart | osu-api-v2-js
    chatStart: string = ...

    Generated using TypeDoc

    \ No newline at end of file +chatStart | osu-api-v2-js
    chatStart: string = ...

    Generated using TypeDoc

    \ No newline at end of file diff --git a/package.json b/package.json index 37e2ed8..6369fbb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "osu-api-v2-js", - "version": "1.0.1", + "version": "1.0.2", "description": "Package to easily access the new api of osu!", "type": "module", "main": "dist/index.js",