Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Host string Port int User string Password string Database string Postgres bool Temp bool }
Config for the database.
type Station ¶
type Station struct { gorm.Model // User filled in information. Name string `json:"name"` Slug string `json:"slug"` Public bool `json:"public"` // Relationships between users and tracks. Users []*User `gorm:"many2many:user_stations;" json:"users"` Track []Track `json:"audio"` // Streams Streams []Stream }
A Station holds the audio tracks and users.
type Stream ¶
type Stream struct { gorm.Model Host string `json:"host" gorm:"default:'127.0.0.1'"` Port int `json:"port" gorm:"default:'8080'"` Mount string `json:"mount" gorm:"default:'stream'"` User string `json:"user" gorm:"default:'source'"` Password string `json:"password" gorm:"default:'hackme'"` Name string `json:"stream_name"` URL string `json:"url"` Genre string `json:"genre" gorm:"default:'rock'"` Description string `json:"description"` BufferSize int `json:"buffer_size" gorm:"default:'3'"` StationID uint `json:"station_id"` }
Stream has the information about a stream.
type Tag ¶
type Tag struct { gorm.Model // Information that is visible to the station users. Text string `json:"text"` TrackID uint `json:"audio_id"` StationID uint `json:"station_id"` }
Tag holds information that can be assigned to multiple tracks within a station.
type Track ¶
type Track struct { gorm.Model // Necessary information. Album string `json:"album" gorm:"default:'Unknown Album'"` Artist string `json:"artist" gorm:"default:'Unknown Artist'"` Title string `json:"title" gorm:"default:'Unknown Title'"` Year string `json:"year" gorm:"default:'1776'"` // Optional information. Genre string `json:"genre"` Tags []Tag `json:"tags"` // Calculated information. Processed bool `json:"processed"` Length float64 `json:"length"` Location string `json:"location"` StationID uint `json:"organization_id"` Tempo int `json:"tempo"` UserID uint `json:"uploader"` }
Track is the information needed to store a audio file.
type User ¶
type User struct { gorm.Model // Only the user can change this information. Name string `json:"name"` Email string `json:"email"` Password string `json:"password"` // Relationship between the users and the stations. Stations []*Station `gorm:"many2many:user_stations;" json:"stations"` }
User is the information about the user for icii.
type UserPermission ¶
type UserPermission struct { gorm.Model UserID uint `json:"user_id"` StationID uint `json:"station_id"` // Station track permissions. TrackRead bool `json:"track_read"` // See what tracks are available. TrackWrite bool `json:"track_write"` // Edit, add, or remove tracks. // Station user permissions. UserRead bool `json:"user_read"` // See the users in the station. UserWrite bool `json:"user_write"` // Add or remove users, or edit their permissions. // Station stream permissions. StreamRead bool `json:"stream_read"` // See the station's streams. StreamWrite bool `json:"stream_write"` // Edit, add, or remove streams. // Station permissions. StationRead bool `json:"station_read"` // See private station information. StationWrite bool `json:"station_write"` // Edit, add, or remove station information. // Schedule permissions. ScheduleRead bool `json:"schedule_read"` // See the schedule for the station. ScheduleWrite bool `json:"schedule_write"` // Edit the station schedule. // Playlist permissions. PlaylistRead bool `json:"playlist_read"` // See the playlist. PlaylistWrite bool `json:"playlist_write"` // Edit, add, or remove a playlist. }
UserPermission keeps track of what permission are allowed for a user.
Click to show internal directories.
Click to hide internal directories.