model

package
v0.0.0-...-16924cb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Beatmap

type Beatmap struct {
	Status       BeatmapStatus `json:"approved,string"`
	SubmitDate   string        `json:"submit_date"`
	ApprovedDate string        `json:"approved_date"`
	LastUpdate   string        `json:"last_update"`

	Artist         string     `json:"artist"`
	BeatmapId      int        `json:"beatmap_id,string"`
	BeatmapsetId   int        `json:"beatmapset_id,string"`
	BPM            float32    `json:"bpm,string"`
	Creator        string     `json:"creator"`
	CreatorId      int        `json:"creator_id,string"`
	StarRating     float64    `json:"difficultyrating,string"`
	CS             float64    `json:"diff_size,string"` // key count in osu!mania
	OD             float64    `json:"diff_overall,string"`
	AR             float64    `json:"diff_approach,string"`
	HP             float64    `json:"diff_drain,string"`
	HitLength      int        `json:"hit_length,string"`
	Source         string     `json:"source"`
	GenreId        GenreId    `json:"genre_id,string"`
	LanguageId     LanguageId `json:"language_id,string"`
	Title          string     `json:"title"`
	TotalLength    int        `json:"total_length,string"`
	DifficultyName string     `json:"version"`
	FileMd5        string     `json:"file_md5"`
	GameMode       GameMode   `json:"mode,string"`
	Tags           string     `json:"tags"`
	CountNormal    int        `json:"count_normal,string"`
	CountSlider    int        `json:"count_slider,string"`
	CountSpinner   int        `json:"count_spinner,string"`
	MaxCombo       int        `json:"max_combo,string"`

	HasStoryboard  int `json:"storyboard,string"`
	HasVideo       int `json:"video,string"`
	CannotDownload int `json:"download_unavailable,string"`
	NoAudio        int `json:"audio_unavailable,string"`

	ArtistUnicode string `json:"artist_unicode"`
	TitleUnicode  string `json:"title_unicode"`
}

type BeatmapMetadata

type BeatmapMetadata struct {
	Beatmap
	ApprovedDate   int64             `json:"approved_date"`
	SubmitDate     int64             `json:"submit_date"`
	LastUpdate     int64             `json:"last_update"`
	HasStoryboard  bool              `json:"has_storyboard"`
	HasVideo       bool              `json:"has_video"`
	CannotDownload bool              `json:"has_download"`
	NoAudio        bool              `json:"has_audio"`
	Link           map[string]string `json:"link"`
	Path           map[string]string `json:"path"`
}

type BeatmapStatus

type BeatmapStatus int
const (
	StatusGraveyard BeatmapStatus = iota - 2
	StatusWIP
	StatusPending
	StatusRanked
	StatusApproved
	StatusQualified
	StatusLoved
)

type BeatmapsetMetadata

type BeatmapsetMetadata struct {
	Beatmaps       map[int]BeatmapMetadata `json:"beatmaps"`
	BeatmapsetId   int                     `json:"beatmapset_id"`
	LastUpdate     int64                   `json:"last_update"`
	Link           map[string]string       `json:"link"`
	Path           map[string]string       `json:"path"`
	HasStoryboard  bool                    `json:"has_storyboard"`
	HasVideo       bool                    `json:"has_video"`
	CannotDownload bool                    `json:"has_download"`
	NoAudio        bool                    `json:"has_audio"`
}

func (BeatmapsetMetadata) Equal

func (BeatmapsetMetadata) String

func (b BeatmapsetMetadata) String() string

type Config

type Config struct {
	OneDrive OneDrive
	Osu      Osu
	Path     OneDrivePath
	General  GeneralConfig
}

type FilenameStruct

type FilenameStruct struct {
	Root       string
	GameMode   string
	Status     string
	Type       string
	Beatmapset string
}

func MakeFilenameStruct

func MakeFilenameStruct(root, gameMode, status, typ, beatmapset string) FilenameStruct

func ParseFilenameStruct

func ParseFilenameStruct(path string) (*FilenameStruct, error)

type GameMode

type GameMode int
const (
	GameModeOsu GameMode = iota
	GameModeTaiko
	GameModeCtb
	GameModeMania
)

type GeneralConfig

type GeneralConfig struct {
	MaxConcurrent  int  `toml:"max_concurrent"`
	UploadMultiple int  `toml:"upload_multiple"`
	LogLevel       int8 `toml:"log_level"`
}

type GenreId

type GenreId int
const (
	GenreAny GenreId = iota
	GenreUnspecified
	GenreVideoGame
	GenreAnime
	GenreRock
	GenrePop
	GenreOther
	GenreNovelty
	GenreHipHop GenreId = iota + 1
	GenreElectronic
	GenreMetal
	GenreClassical
	GenreFolk
	GenreJazz
)

type LanguageId

type LanguageId int
const (
	LangAny LanguageId = iota
	LangUnspecified
	LangEnglish
	LangJapanese
	LangChinese
	LangInstrumental
	LangKorean
	LangFrench
	LangGerman
	LangSwedish
	LangSpanish
	LangItalian
	LangRussian
	LangPolish
	LangOther
)

type Metadata

type Metadata struct {
	GameMode    map[GameMode]MetadataGameMode `json:"game_mode"`
	Beatmaps    map[int]BeatmapMetadata       `json:"beatmaps"`
	Beatmapsets map[int]BeatmapsetMetadata    `json:"beatmap_sets"`
}

type MetadataGameMode

type MetadataGameMode struct {
	UpdateTime int64
}

type OneDrive

type OneDrive struct {
	ClientId     string `toml:"client_id"`
	ClientSecret string `toml:"client_secret"`
	Tenant       string `toml:"tenant_id"`

	Token *Token
}

type OneDrivePath

type OneDrivePath struct {
	// Level 1
	Root string `toml:"root"`

	// Level 2
	StdPath   string `toml:"std"`
	TaikoPath string `toml:"taiko"`
	CatchPath string `toml:"catch"`
	ManiaPath string `toml:"mania"`

	// Level 3
	RankedPath    string `toml:"ranked"`
	LovedPath     string `toml:"loved"`
	QualifiedPath string `toml:"qualified"`
}

type Osu

type Osu struct {
	V1ApiKey string `toml:"v1_api_key"`
	Sayobot  struct {
		Server string `toml:"server"`
	}
	OfficialDownloader struct {
		AccessToken  string `toml:"access_token"`
		RefreshToken string `toml:"refresh_token"`
	}
	EnableSayobot  bool     `toml:"enable_sayobot"`
	EnableNerinyan bool     `toml:"enable_nerinyan"`
	EnableCatboy   bool     `toml:"enable_catboy"`
	EnableOfficial bool     `toml:"enable_official"`
	ProcessTypes   []string `toml:"process_types"`
}

type Token

type Token struct {
	AccessToken  string `toml:"access_token"`
	RefreshToken string `toml:"refresh_token"`
	ExpiresAt    int64  `toml:"expires_at"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL