Documentation ¶
Index ¶
- Constants
- Variables
- func BadRequest(message string) error
- func CharacterStaffString(i uint8) string
- func EmptySlice() []int
- func Forbidden(message string) error
- func GroupIcon(base string) string
- func InternalError(c echo.Context, err error, message string) error
- func JSONError(c echo.Context, err error) error
- func NewError(code int, message string) error
- func NotFound(message string) error
- func Unauthorized(message string) error
- type Actor
- type Avatar
- type CharacterRelatedPerson
- type CharacterRelatedSubject
- type CharacterRevision
- type CharacterRevisionDataItem
- type CharacterV0
- type Count
- type Creator
- type Episode
- type EpisodeRevision
- type EpisodeRevisionDataItem
- type Error
- type Extra
- type HTTPError
- type Index
- type IndexSubjectV0
- type LoginRemain
- type Paged
- type PagedG
- type PersonImages
- type PersonRelatedCharacter
- type PersonRelatedSubject
- type PersonRevision
- type PersonRevisionDataItem
- type PersonV0
- type PrivateGroup
- type PrivateGroupMember
- type PrivateGroupProfile
- type PrivateMessage
- type PrivateMessageTypeCounts
- type Profession
- type Rating
- type SlimSubjectV0
- type Stat
- type SubjectCollection
- type SubjectCollectionStat
- type SubjectImages
- type SubjectRelatedCharacter
- type SubjectRelatedPerson
- type SubjectRelatedSubject
- type SubjectRevision
- type SubjectRevisionData
- type SubjectTag
- type SubjectV0
- type User
Constants ¶
View Source
const (
DefaultImageURL = "https://lain.bgm.tv/img/no_icon_subject.png"
)
Variables ¶
View Source
var ErrNotFound = NewError(http.StatusNotFound, "resource can't be found in the database or has been removed")
View Source
var GenderMap = map[uint8]string{
1: "male",
2: "female",
}
Functions ¶
func BadRequest ¶ added in v0.30.3
func CharacterStaffString ¶ added in v0.31.0
func EmptySlice ¶ added in v0.30.3
func EmptySlice() []int
func InternalError ¶ added in v0.12.4
func Unauthorized ¶ added in v0.30.3
Types ¶
type Avatar ¶
type Avatar struct { Large string `json:"large"` Medium string `json:"medium"` Small string `json:"small"` }
func UserAvatar ¶ added in v0.30.3
type CharacterRelatedPerson ¶
type CharacterRelatedPerson struct { Images PersonImages `json:"images"` Name string `json:"name"` SubjectName string `json:"subject_name"` SubjectNameCn string `json:"subject_name_cn"` SubjectID model.SubjectID `json:"subject_id"` Staff string `json:"staff"` ID model.PersonID `json:"id"` Type uint8 `json:"type" doc:"person type"` }
type CharacterRelatedSubject ¶
type CharacterRevision ¶ added in v0.12.0
type CharacterRevisionDataItem ¶ added in v0.12.0
type CharacterV0 ¶
type CharacterV0 struct { BirthMon *uint8 `json:"birth_mon"` Gender *string `json:"gender"` BirthDay *uint8 `json:"birth_day"` BirthYear *uint16 `json:"birth_year"` BloodType *uint8 `json:"blood_type"` Images PersonImages `json:"images"` Summary string `json:"summary"` Name string `json:"name"` Infobox v0wiki `json:"infobox"` Stat Stat `json:"stat"` ID model.CharacterID `json:"id"` Redirect model.CharacterID `json:"-"` Locked bool `json:"locked"` Type uint8 `json:"type"` NSFW bool `json:"nsfw"` }
type Episode ¶
type Episode struct { Airdate string `json:"airdate"` Name string `json:"name"` NameCN string `json:"name_cn"` Duration string `json:"duration"` Description string `json:"desc"` Ep float32 `json:"ep"` Sort float32 `json:"sort"` ID model.EpisodeID `json:"id"` SubjectID model.SubjectID `json:"subject_id"` Comment uint32 `json:"comment"` Type episode.Type `json:"type"` Disc uint8 `json:"disc"` DurationSeconds int `json:"duration_seconds"` }
func ConvertModelEpisode ¶ added in v0.30.3
type EpisodeRevision ¶ added in v0.30.3
type EpisodeRevisionDataItem ¶ added in v0.30.3
type EpisodeRevisionDataItem model.EpisodeRevisionDataItem
type Error ¶
type Error struct { Title string `json:"title"` Details any `json:"details,omitempty"` Description string `json:"description"` }
Error default error response.
type Index ¶
type Index struct { CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Creator Creator `json:"creator"` Title string `json:"title"` Description string `json:"desc"` Total uint32 `json:"total"` ID model.IndexID `json:"id"` Stat Stat `json:"stat"` Ban bool `json:"ban"` NSFW bool `json:"nsfw" doc:"if index contains any nsfw subjects"` }
type IndexSubjectV0 ¶ added in v0.30.3
type IndexSubjectV0 struct { AddedAt time.Time `json:"added_at"` Date *string `json:"date"` Image SubjectImages `json:"images"` Name string `json:"name"` NameCN string `json:"name_cn"` Comment string `json:"comment"` Infobox v0wiki `json:"infobox"` ID model.SubjectID `json:"id"` TypeID model.SubjectType `json:"type"` }
type LoginRemain ¶ added in v0.12.4
type LoginRemain struct {
Remain int `json:"remain"`
}
type PersonImages ¶ added in v0.12.10
type PersonImages struct { Small string `json:"small"` Grid string `json:"grid"` Large string `json:"large"` Medium string `json:"medium"` }
func PersonImage ¶ added in v0.12.10
func PersonImage(s string) PersonImages
type PersonRelatedCharacter ¶
type PersonRelatedCharacter struct { Images PersonImages `json:"images"` Name string `json:"name"` SubjectName string `json:"subject_name"` SubjectNameCn string `json:"subject_name_cn"` SubjectID model.SubjectID `json:"subject_id"` Staff string `json:"staff"` ID model.CharacterID `json:"id"` Type uint8 `json:"type" doc:"character type"` }
type PersonRelatedSubject ¶
type PersonRevision ¶ added in v0.10.1
type PersonRevisionDataItem ¶ added in v0.10.1
type PersonRevisionDataItem struct { InfoBox string `json:"prsn_infobox"` Summary string `json:"prsn_summary"` Profession Profession `json:"profession"` Extra Extra `json:"extra"` Name string `json:"prsn_name"` }
type PersonV0 ¶
type PersonV0 struct { LastModified time.Time `json:"last_modified"` BloodType *uint8 `json:"blood_type"` BirthYear *uint16 `json:"birth_year"` BirthDay *uint8 `json:"birth_day"` BirthMon *uint8 `json:"birth_mon"` Gender *string `json:"gender"` Images PersonImages `json:"images"` Summary string `json:"summary"` Name string `json:"name"` Img string `json:"img"` Infobox v0wiki `json:"infobox"` Career []string `json:"career"` Stat Stat `json:"stat"` Redirect model.PersonID `json:"-"` ID model.PersonID `json:"id"` Locked bool `json:"locked"` Type uint8 `json:"type"` }
func ConvertModelPerson ¶ added in v0.30.3
type PrivateGroup ¶ added in v0.30.3
type PrivateGroupMember ¶ added in v0.30.3
type PrivateGroupProfile ¶ added in v0.30.3
type PrivateGroupProfile struct { CreatedAt time.Time `json:"created_at"` Name string `json:"name"` Title string `json:"title"` Description string `json:"description" format:"bbcode"` Icon string `json:"icon" format:"url"` NewMembers []PrivateGroupMember `json:"new_members"` TotalMembers int64 `json:"total_members"` ID model.GroupID `json:"id"` }
type PrivateMessage ¶ added in v0.30.3
type PrivateMessage struct { CreatedAt time.Time `json:"created_at"` RelatedMessage *PrivateMessage `json:"related_message,omitempty"` Sender *User `json:"sender,omitempty"` Receiver *User `json:"receiver,omitempty"` Title string `json:"title"` Content string `json:"content"` ID uint32 `json:"id"` New bool `json:"new"` }
func ConvertModelPrivateMessage ¶ added in v0.30.3
func ConvertModelPrivateMessage(item pm.PrivateMessage, users map[model.UserID]user.User) PrivateMessage
func ConvertModelPrivateMessageListItem ¶ added in v0.30.3
func ConvertModelPrivateMessageListItem( item pm.PrivateMessageListItem, users map[model.UserID]user.User, ) PrivateMessage
type PrivateMessageTypeCounts ¶ added in v0.30.3
type Profession ¶ added in v0.10.1
type Profession struct { Writer string `json:"writer,omitempty"` Producer string `json:"producer,omitempty"` Mangaka string `json:"mangaka,omitempty"` Artist string `json:"artist,omitempty"` Seiyu string `json:"seiyu,omitempty"` Illustrator string `json:"illustrator,omitempty"` Actor string `json:"actor,omitempty"` }
type SlimSubjectV0 ¶
type SlimSubjectV0 struct { Date *string `json:"date"` Image SubjectImages `json:"images"` Name string `json:"name"` NameCN string `json:"name_cn"` ShortSummary string `json:"short_summary"` Tags []SubjectTag `json:"tags"` Score float64 `json:"score"` Type model.SubjectType `json:"type"` ID model.SubjectID `json:"id"` Eps uint32 `json:"eps"` Volumes uint32 `json:"volumes"` CollectionTotal uint32 `json:"collection_total"` Rank uint32 `json:"rank"` }
func ToSlimSubjectV0 ¶ added in v0.30.3
func ToSlimSubjectV0(s model.Subject) SlimSubjectV0
type SubjectCollection ¶ added in v0.30.3
type SubjectCollection struct { UpdatedAt time.Time `json:"updated_at"` Comment *string `json:"comment"` Tags []string `json:"tags"` Subject SlimSubjectV0 `json:"subject"` SubjectID model.SubjectID `json:"subject_id"` VolStatus uint32 `json:"vol_status"` EpStatus uint32 `json:"ep_status"` SubjectType uint8 `json:"subject_type"` Type collection.SubjectCollection `json:"type"` Rate uint8 `json:"rate"` Private bool `json:"private"` }
func ConvertModelSubjectCollection ¶ added in v0.30.3
func ConvertModelSubjectCollection(c collection.UserSubjectCollection, subject SlimSubjectV0) SubjectCollection
type SubjectCollectionStat ¶
type SubjectCollectionStat struct { OnHold uint32 `json:"on_hold"` Dropped uint32 `json:"dropped"` Wish uint32 `json:"wish"` Collect uint32 `json:"collect"` Doing uint32 `json:"doing"` }
func (SubjectCollectionStat) Sum ¶ added in v0.30.3
func (s SubjectCollectionStat) Sum() uint32
type SubjectImages ¶ added in v0.12.10
type SubjectImages struct { Small string `json:"small"` Grid string `json:"grid"` Large string `json:"large"` Medium string `json:"medium"` Common string `json:"common"` }
func SubjectImage ¶ added in v0.12.10
func SubjectImage(s string) SubjectImages
type SubjectRelatedCharacter ¶
type SubjectRelatedCharacter struct { Images PersonImages `json:"images"` Name string `json:"name"` Relation string `json:"relation"` Actors []Actor `json:"actors"` Type uint8 `json:"type"` ID model.CharacterID `json:"id"` }
type SubjectRelatedPerson ¶
type SubjectRelatedSubject ¶
type SubjectRelatedSubject struct { Images SubjectImages `json:"images"` Name string `json:"name"` NameCn string `json:"name_cn"` Relation string `json:"relation"` Type model.SubjectType `json:"type"` SubjectID model.SubjectID `json:"id"` }
type SubjectRevision ¶ added in v0.10.1
type SubjectRevisionData ¶ added in v0.10.1
type SubjectRevisionData struct { Name string `json:"name"` NameCN string `json:"name_cn"` VoteField string `json:"vote_field"` FieldInfobox string `json:"field_infobox"` FieldSummary string `json:"field_summary"` Platform uint16 `json:"platform"` TypeID uint16 `json:"type_id"` SubjectID model.SubjectID `json:"subject_id"` FieldEps uint32 `json:"field_eps"` Type uint8 `json:"type"` }
type SubjectTag ¶ added in v0.30.3
type SubjectV0 ¶
type SubjectV0 struct { Date *string `json:"date"` Platform *string `json:"platform"` Image SubjectImages `json:"images"` Summary string `json:"summary"` Name string `json:"name"` NameCN string `json:"name_cn"` Tags []SubjectTag `json:"tags"` Infobox v0wiki `json:"infobox"` Rating Rating `json:"rating"` TotalEpisodes int64 `json:"total_episodes" doc:"episodes count in database"` Collection SubjectCollectionStat `json:"collection"` ID model.SubjectID `json:"id"` Eps uint32 `json:"eps"` Volumes uint32 `json:"volumes"` Redirect model.SubjectID `json:"-"` Locked bool `json:"locked"` NSFW bool `json:"nsfw"` TypeID model.SubjectType `json:"type"` }
type User ¶ added in v0.11.0
type User struct { Avatar Avatar `json:"avatar"` Sign string `json:"sign"` URL string `json:"url"` Username string `json:"username"` Nickname string `json:"nickname"` ID model.UserID `json:"id"` UserGroup uint8 `json:"user_group"` }
func ConvertModelUser ¶ added in v0.30.3
Click to show internal directories.
Click to hide internal directories.