yurukyan△

api

ꕤ endpoints

/gds - returns the osu! guest difficulties list for lilac or sydney. requires person parameter.

person: can either be lilac or sydney

search: partial matching string of gd information, returns only matching maps

/sets - returns the list of osu! beatmapsets that all of us have on our profile.

search: partial matching string of beatmapset information, returns only matching maps

/lastfm - using the last.fm api, returns the song we've last listened to, or the song we're currently listening to. essentially forwards the getrecenttracks parameter, but using our own api key. the isKanojo parameter returns our girlfriend's last.fm information if true, but these are the only two last.fm accounts supported through this endpoint.

isKanojo: boolean, false by default. true sends our girlfriend's last.fm information

/recentFronts - returns an alter object for each alter in our system. also takes the optional parameter days to specify a different timeframe to track alter stats (default is 30 days).

days: number of previous days that should be taken into account for alter information calculation. 30 by default.

/frontData - returns an alter object with complete front history for each alter in our system. frontHistory takes much longer to load, making it ideal to have a different endpoint only when it is needed. also accepts the id parameter to specify a different system than our own, using the pluralkit id system.

id: pluralkit system id for custom system information. ytcvss by default (yurukyan△ system).

ꕤ cli endpoints

thes are endpoints made specifically for use with yuru-cli to read and edit osu! beatmap information.

/newMapData - returns a beatmap or gd object, depending on whether or not the required beatmapId or beatmapsetId parameters are used.

/changeInfo - accepts a POST request with a formatted gd or beatmap object, requiring both a yurunet access key in the authorization header and the type property which is used to specify which kind of modification is to be done to the gd or beatmapset database.

ꕤ structures

gd

bgLink string - a link to the beatmapset's background on assets.ppy.sh, using the cover option. does not work with beatmap specific backgrounds that differ from the set background, but this is a limiation of the osu api.
title string
titleUnicode string, added automatically now but may not exist on every gd. will need to fix :p
artist string
artistUnicode string, same case with titleUnicode
creator string, name of the person who hosts the beatmapset the given gd is on
mapId string, for some reason. beatmapset id assigned to the whole set
status string, can be "graved", "unfinished", "pending", "ranked", "loved", "qualified", or "wip"
isForRank boolean, indicates if the map is being pushed for rank in our opinion. by default, if false, a gd will not show up on the main page
bns string[], can be any amount as some beatmapsets can have a variable amount of beatmap nominators (specifically, hybrid sets)
maps beatmap[] - seeing as some maps can have multiple gds by us on them, each individual gd must have its own data. below is the structure for each gd:

beatmap

url string, link to the specific difficulty as opposed to the beatmapset itself
id string, for some reason. again, beatmap specific id here
diffname string
amountMapped string, "all" by default, something else for any collab difficulty. can be "evens"/"odds" or any timestamp in the map, just depends on what kind of collab was done
sr number. that's slang for star rating if you're new to the chat. heh.
dateFinished string dates in mm/dd/yyyy format, marked for when the gd was completed

beatmapset

isIncomplete boolean, used to sort if the beatmapset appears in the complete or incompleted section. complete sets are ones with finished spreads, ready for rank / have been ranked.
bgLink string, same as gd, pulled from assets.ppy.sh using covers.
title string
titleUnicode string - also needs to be added to every beatmapset but isn't yet ^_^;
artist string
artistUnicode string - also needs to be added to every beatmapset but isn't yet ^_^;
url string
mapId string, id for the beatmapset itself and not any of the gds
description description[] - descriptions use their own special format due to how osu user hovers are embedded in the description json. more info in the description structure itself.
creator string, the username of the creator of the beatmapset (eg. yuiyamu)
dateFinished string, also in mm/dd/yyyy format, can be for either when the set was finished (for completed beatmapsets), or when the mapset was abandoned (seen as "complete")
personCreator string - different from creator in that the actual name of the beatmapset creator is used here (eg. lilac)
status string, same possible statuses as gd ("graved", "unfinished", "pending", "ranked", "loved", "qualified", or "wip")

description

type string, either description for normal text or hover for an inline osu hover object
content type varies depending on the type of description element. description types use a string, whereas hover uses another substructure seen below.

hover

username string
userID number
flag string, name of the svg hosted on https://osu.ppy.sh/assets/images/flags/
flagCode string, ISO 3166-1 alpha-2 country codes
bannerUrl string, link to the osu user's banner

alter

name string, name of the current alter. (no fronter) is used when no alter is present.
id string, the id of the alter as in the pluralkit system
fronting boolean, marks if the alter is currently fronting in their system. can be true for multiple alters
totalFrontTime number - number of ms the alter has fronted in the period allotted
lastFrontTime number. only appearing in /recentFronts, number of ms this alter fronted for during their last front. if currently fronting, number of ms from when they started fronting until now
lastFrontTimestamp Date. only appearing in /recentFronts, timestamp that the alter started their last front
percent number, percentage that this alter has fronted in the allotted time period
firstAppearance number. only appearing in /frontHistory, this is the first time that the alter was ever seen in the system as a date in number of ms since the unix epoch.
lastFrontTimes alterTimes, an easily readable format for lastFrontTime. like lastFrontTime and lastFrontTimestamp, this also only appears in /recentFronts
totalFrontTimes alterTimes, an easily readable format for lastFrontTime
frontHistory frontHistory[]. history of all of the switches an alter has recorded

alterTimes

days number
hours number
minutes number

frontHistory

timestamp number, time of the initial switch in ms since the unix epoch.
length number, number of ms long the alter's front lasted. in the case of a currently fronting alter, number of ms since the switch started until now.