res

package
v1.12.10 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2022 License: AGPL-3.0, AGPL-3.0-only Imports: 10 Imported by: 0

Documentation

Index

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")

Functions

func BadRequest added in v0.20.4

func BadRequest(message string) error

func EmptySlice added in v0.20.9

func EmptySlice() []int

func Forbidden added in v0.20.4

func Forbidden(message string) error

func FromError added in v0.20.4

func FromError(c *fiber.Ctx, err error, code int, message string) error

func InternalError

func InternalError(c *fiber.Ctx, err error, message string) error

func JSON

func JSON(c *fiber.Ctx, v any) error

func JSONError added in v0.20.9

func JSONError(c *fiber.Ctx, err error) error

func NewError added in v0.20.4

func NewError(code int, message string) error

func NotFound added in v0.20.4

func NotFound(message string) error

func Unauthorized added in v0.20.4

func Unauthorized(message string) error

Types

type Actor

type Actor struct {
	Images       PersonImages   `json:"images"`
	Name         string         `json:"name"`
	ShortSummary string         `json:"short_summary"`
	Career       []string       `json:"career"`
	ID           model.PersonID `json:"id"`
	Type         uint8          `json:"type"`
	Locked       bool           `json:"locked"`
}

type Avatar

type Avatar struct {
	Large  string `json:"large"`
	Medium string `json:"medium"`
	Small  string `json:"small"`
}

func UserAvatar added in v0.20.4

func UserAvatar(s string) Avatar

func (Avatar) Select added in v0.20.0

func (a Avatar) Select(s string) (string, bool)

type CharacterRelatedPerson

type CharacterRelatedPerson struct {
	Images        PersonImages `json:"images"`
	Name          string
	SubjectName   string          `json:"subject_name"`
	SubjectNameCn string          `json:"subject_name_cn"`
	SubjectID     model.SubjectID `json:"subject_id"`
	ID            model.PersonID  `json:"id"`
	Type          uint8           `json:"type" doc:"person type"`
}

type CharacterRelatedSubject

type CharacterRelatedSubject struct {
	Staff  string          `json:"staff"`
	Name   string          `json:"name"`
	NameCn string          `json:"name_cn"`
	Image  string          `json:"image"`
	ID     model.SubjectID `json:"id"`
}

type CharacterRevision

type CharacterRevision struct {
	CreatedAt time.Time                            `json:"created_at"`
	Data      map[string]CharacterRevisionDataItem `json:"data,omitempty"`
	Creator   Creator                              `json:"creator"`
	Summary   string                               `json:"summary"`
	ID        uint32                               `json:"id"`
	Type      uint8                                `json:"type"`
}

type CharacterRevisionDataItem

type CharacterRevisionDataItem struct {
	Name    string `json:"name" mapstructure:"crt_name"`
	InfoBox string `json:"infobox" mapstructure:"crt_infobox"`
	Summary string `json:"summary"`
	Extra   Extra  `json:"extra"`
}

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 Count

type Count struct {
	Field1  uint32 `json:"1"`
	Field2  uint32 `json:"2"`
	Field3  uint32 `json:"3"`
	Field4  uint32 `json:"4"`
	Field5  uint32 `json:"5"`
	Field6  uint32 `json:"6"`
	Field7  uint32 `json:"7"`
	Field8  uint32 `json:"8"`
	Field9  uint32 `json:"9"`
	Field10 uint32 `json:"10"`
}

type Creator

type Creator struct {
	Username string `json:"username"`
	Nickname string `json:"nickname"`
}

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        model.EpType    `json:"type"`
	Disc        uint8           `json:"disc"`
}

type Error

type Error struct {
	Title       string `json:"title"`
	Details     any    `json:"details,omitempty"`
	Description string `json:"description"`
}

Error default error response.

type Extra

type Extra struct {
	Img string `json:"img,omitempty"`
}

type HTTPError

type HTTPError struct {
	Msg  string
	Code int
}

func (HTTPError) Error added in v0.20.4

func (e HTTPError) Error() string

type Index

type Index struct {
	CreatedAt   time.Time     `json:"created_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 LoginRemain

type LoginRemain struct {
	Remain int `json:"remain"`
}

type Paged

type Paged struct {
	Data   any   `json:"data"`
	Total  int64 `json:"total"`
	Limit  int   `json:"limit"`
	Offset int   `json:"offset"`
}

type PersonImages

type PersonImages struct {
	Small  string `json:"small"`
	Grid   string `json:"grid"`
	Large  string `json:"large"`
	Medium string `json:"medium"`
}

func PersonImage

func PersonImage(s string) PersonImages

func (PersonImages) Select added in v0.20.0

func (i PersonImages) Select(t string) (string, bool)

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"`
	ID            model.CharacterID `json:"id"`
	Type          uint8             `json:"type" doc:"character type"`
}

type PersonRelatedSubject

type PersonRelatedSubject struct {
	Staff     string          `json:"staff"`
	Name      string          `json:"name"`
	NameCn    string          `json:"name_cn"`
	Image     string          `json:"image"`
	SubjectID model.SubjectID `json:"id"`
}

type PersonRevision

type PersonRevision struct {
	CreatedAt time.Time                         `json:"created_at"`
	Data      map[string]PersonRevisionDataItem `json:"data"`
	Creator   Creator                           `json:"creator"`
	Summary   string                            `json:"summary"`
	ID        uint32                            `json:"id"`
	Type      uint8                             `json:"type"`
}

type PersonRevisionDataItem

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"`
}

type PrivateGroupMember added in v0.20.9

type PrivateGroupMember struct {
	JoinedAt time.Time    `json:"joined_at"`
	Avatar   Avatar       `json:"avatar"`
	UserName string       `json:"username"`
	NickName string       `json:"nickname"`
	ID       model.UserID `json:"id"`
}

type PrivateGroupProfile added in v0.20.9

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 Profession

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 Rating

type Rating struct {
	Rank  uint32  `json:"rank"`
	Total uint32  `json:"total"`
	Count Count   `json:"count"`
	Score float64 `json:"score"`
}

type SlimSubjectV0

type SlimSubjectV0 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 Stat

type Stat struct {
	Comments uint32 `json:"comments"`
	Collects uint32 `json:"collects"`
}

type Subject

type Subject struct {
	Image        SubjectImages         `json:"images"`
	Infobox      string                `json:"infobox"`
	Name         string                `json:"name"`
	NameCN       string                `json:"name_cn"`
	Summary      string                `json:"summary"`
	PlatformText string                `json:"platform_text"`
	TypeText     string                `json:"type_text"`
	Wiki         wiki.Wiki             `json:"wiki"`
	Tags         []compat.Tag          `json:"tags"`
	Rating       Rating                `json:"rating"`
	Collection   SubjectCollectionStat `json:"collection"`
	Volumes      uint32                `json:"volumes"`
	Eps          uint32                `json:"eps"`
	ID           model.SubjectID       `json:"id"`
	Redirect     uint32                `json:"-"`
	Platform     uint16                `json:"platform_id"`
	Airtime      uint8                 `json:"air_time"`
	Locked       bool                  `json:"locked"`
	NSFW         bool                  `json:"nsfw"`
	TypeID       model.SubjectType     `json:"type_id"`
}

type SubjectCollection added in v0.20.9

type SubjectCollection struct {
	UpdatedAt   time.Time            `json:"updated_at"`
	Comment     *string              `json:"comment"`
	Tags        []string             `json:"tags"`
	SubjectID   model.SubjectID      `json:"subject_id"`
	EpStatus    uint32               `json:"ep_status"`
	VolStatus   uint32               `json:"vol_status"`
	SubjectType uint8                `json:"subject_type"`
	Type        model.CollectionType `json:"type"`
	Rate        uint8                `json:"rate"`
	Private     bool                 `json:"private"`
}

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"`
}

type SubjectImages

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

func SubjectImage(s string) SubjectImages

func (SubjectImages) Select added in v0.20.0

func (i SubjectImages) Select(t string) (string, bool)

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 SubjectRelatedPerson struct {
	Images   PersonImages   `json:"images"`
	Name     string         `json:"name" doc:"person name"`
	Relation string         `json:"relation"`
	Career   []string       `json:"career"`
	Type     uint8          `json:"type"`
	ID       model.PersonID `json:"id" doc:"person ID"`
}

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

type SubjectRevision struct {
	CreatedAt time.Time            `json:"created_at"`
	Data      *SubjectRevisionData `json:"data"`
	Creator   Creator              `json:"creator"`
	Summary   string               `json:"summary"`
	ID        uint32               `json:"id"`
	Type      uint8                `json:"type"`
}

type SubjectRevisionData

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 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          []compat.Tag          `json:"tags"`
	Infobox       v0wiki                `json:"infobox"`
	Rating        Rating                `json:"rating"`
	TotalEpisodes int64                 `json:"total_episodes"`
	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

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"`
}

Jump to

Keyboard shortcuts

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