anime

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AnimeStatusUnknown = iota
	AnimeStatusCurrent
	AnimeStatusFinished
	AnimeStatusTba
	AnimeStatusUnreleased
	AnimeStatusUpcoming
)

Variables

This section is empty.

Functions

func TranslateSynopsis

func TranslateSynopsis(t lang.Translator, a *Anime) (string, error)

Types

type Anime

type Anime struct {
	ID    utils.StringInt `json:"id" validate:"required"`
	Type  string          `json:"type" validate:"required"`
	Links struct {
		Self string `json:"self" validate:"required"`
	} `json:"links"`
	Attributes Attributes `json:"attributes"`
}

type AnimeAgeRating

type AnimeAgeRating uint8
const (
	AnimeAgeRatingUnknown AnimeAgeRating = iota
	AnimeAgeRatingGeneral
	AnimeAgeRatingParental
	AnimeAgeRatingRestricted
	AnimeAgeRatingExplicit
)

func (*AnimeAgeRating) MarshalJSON

func (ar *AnimeAgeRating) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*AnimeAgeRating) String

func (ar *AnimeAgeRating) String() string

String implements fmt.Stringer.

func (AnimeAgeRating) StringPtBr

func (ar AnimeAgeRating) StringPtBr() string

func (*AnimeAgeRating) UnmarshalJSON

func (ar *AnimeAgeRating) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type AnimeApi

type AnimeApi struct {
	Client  *http.Client
	Timeout time.Duration
	// contains filtered or unexported fields
}

func NewAnimeApi

func NewAnimeApi(client *http.Client) *AnimeApi

func (*AnimeApi) FetchByName

func (a *AnimeApi) FetchByName(name string, limit, offset int) (*AnimeCollectionResponse, error)

func (*AnimeApi) GetById

func (a *AnimeApi) GetById(id int64) (*Anime, error)

func (*AnimeApi) GetByName

func (a *AnimeApi) GetByName(name string) (*Anime, error)

type AnimeCollectionResponse

type AnimeCollectionResponse struct {
	Data []Anime `json:"data"`
	Meta struct {
		Count int32 `json:"count"`
	}
	Links struct {
		First string `json:"first" validate:"required"`
		Prev  string `json:"prev"`
		Next  string `json:"next"`
		Last  string `json:"last" validate:"required"`
	}
}

type AnimeImage

type AnimeImage struct {
	Tiny     string `json:"tiny"`
	Small    string `json:"small"`
	Medium   string `json:"medium"`
	Large    string `json:"large"`
	Original string `json:"original"`

	Meta struct {
		Dimensions AnimeImageDimensions `json:"dimensions"`
	} `json:"meta"`
}

type AnimeImageDimension

type AnimeImageDimension struct {
	Width  uint16 `json:"width"`
	Height uint16 `json:"height"`
}

type AnimeImageDimensions

type AnimeImageDimensions struct {
	Tiny   AnimeImageDimension `json:"tiny"`
	Small  AnimeImageDimension `json:"small"`
	Medium AnimeImageDimension `json:"medium"`
	Large  AnimeImageDimension `json:"large"`
}

type AnimeResourceResponse

type AnimeResourceResponse struct {
	Data Anime `json:"data"`
}

type AnimeStatus

type AnimeStatus uint8

func (*AnimeStatus) MarshalJSON

func (as *AnimeStatus) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*AnimeStatus) String

func (as *AnimeStatus) String() string

String implements fmt.Stringer.

func (AnimeStatus) StringPtBr

func (as AnimeStatus) StringPtBr() string

func (*AnimeStatus) UnmarshalJSON

func (as *AnimeStatus) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type AnimeSubtype

type AnimeSubtype uint8
const (
	AnimeSubtypeUnknown AnimeSubtype = iota
	AnimeSubtypeONA
	AnimeSubtypeOVA
	AnimeSubtypeTV
	AnimeSubtypeMovie
	AnimeSubtypeMusic
	AnimeSubtypeSpecial
)

func (*AnimeSubtype) MarshalJSON

func (st *AnimeSubtype) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*AnimeSubtype) String

func (st *AnimeSubtype) String() string

String implements fmt.Stringer.

func (AnimeSubtype) StringPtBr

func (st AnimeSubtype) StringPtBr() string

func (*AnimeSubtype) UnmarshalJSON

func (st *AnimeSubtype) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

type AnimeTitles

type AnimeTitles struct {
	English         string `json:"en"`
	EnglishJapanese string `json:"en_jp"`
	JapanJapanese   string `json:"ja_jp"`
}

type Attributes

type Attributes struct {
	CreatedAt time.Time `json:"createdAt" validate:"required"`
	UpdatedAt time.Time `json:"updatedAt" validate:"required"`
	Slug      string    `json:"string"`
	// The synopsis of the anime in english
	Synopsis string `json:"synopsis" validate:"required"`
	// Titles in different languages
	Titles            AnimeTitles `json:"titles"`
	CanonicalTitle    string      `json:"canonicalTitle"`
	AbbreviatedTitles []string    `json:"abbreviatedTitles"`

	AverageRating     string            `json:"averageRating"`
	RatingFrequencies map[string]string `json:"ratingFrequencies"`
	UserCount         int32             `json:"userCount"`
	FavoritesCount    int32             `json:"favoritesCount"`
	PopularityRank    int32             `json:"popularityRank"`
	RatingRank        int32             `json:"ratingRank"`

	StartDate Date `json:"startDate"`
	EndDate   Date `json:"endDate"`

	AgeRating      AnimeAgeRating `json:"ageRating" validate:"required"`
	AgeRatingGuide string         `json:"ageRatingGuide"`

	Subtype       AnimeSubtype `json:"subtype" validate:"required"`
	Status        AnimeStatus  `json:"status" validate:"required"`
	TBA           string       `json:"tba"`
	EpisodeCount  int32        `json:"episodeCount"`
	EpisodeLength int32        `json:"episodeLength"`
	NSFW          bool         `json:"nsfw"`

	PosterImage    AnimeImage `json:"posterImage"`
	CoverImage     AnimeImage `json:"coverImage"`
	YoutubeVideoId string     `json:"youtubeVideoId"`
}

type Date

type Date struct {
	// contains filtered or unexported fields
}

func (*Date) Day

func (d *Date) Day() uint8

func (*Date) MarshalJSON

func (d *Date) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*Date) Month

func (d *Date) Month() uint8

func (*Date) String

func (d *Date) String() string

String implements fmt.Stringer.

func (*Date) StringPtBr

func (d *Date) StringPtBr() string

func (*Date) UnmarshalJSON

func (d *Date) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

func (*Date) Year

func (d *Date) Year() uint16

Jump to

Keyboard shortcuts

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