Documentation
¶
Overview ¶
Package mangoplus provides an API wrapper for MangaPlus API.
Index ¶
- Constants
- type AllTitlesGroup
- type AllTitlesViewV2
- type Chapter
- type ChapterListGroup
- type ErrorResponse
- type ImageQuality
- type Label
- type LabelCode
- type Language
- type Languages
- type MangaPage
- type MangaService
- type MangaViewer
- type Options
- type Page
- type PageService
- type PlusClient
- type PlusResponse
- type Popup
- type Rating
- type RegisterationData
- type ReleaseSchedule
- type SuccessResponse
- type Title
- type TitleDetailView
- type TitleLabels
Constants ¶
const ( BaseAPI = "https://jumpg-api.tokyo-cdn.com/api" BaseWebAPI = "https://jumpg-webapi.tokyo-cdn.com/api" // Limited to what's available on the browser OriginURL = "https://mangaplus.shueisha.co.jp" // Not used )
const ( AllMangaPath = "title_list/allV2" MangaPath = "title_detailV3" )
const (
PagePath = "manga_viewer"
)
const RegisterPath = "register"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AllTitlesGroup ¶
type AllTitlesViewV2 ¶
type AllTitlesViewV2 struct {
AllTitlesGroup []AllTitlesGroup `json:"allTitlesGroup"`
}
type Chapter ¶
type Chapter struct {
TitleId int `json:"titleId"`
ChapterId int `json:"chapterId"`
Name string `json:"name"`
SubTitle *string `json:"subTitle"`
ThumbnailUrl string `json:"thumbnailUrl"`
StartTimeStamp int `json:"startTimeStamp"`
EndTimeStamp int `json:"endTimeStamp"`
AlreadyViewed bool `json:"alreadyViewed"`
ViewCount int `json:"viewCount"`
CommentCount int `json:"commentCount"`
IsVerticalOnly bool `json:"isVerticalOnly"`
}
type ChapterListGroup ¶
type ErrorResponse ¶
type ErrorResponse struct {
// Not sure if English/Spanish are always the ones that
// appear on top, could be specific to me.
EnglishPopup *Popup `json:"englishPopup"`
SpanishPopup *Popup `json:"spanishPopup"`
Popups *[]Popup `json:"popups"`
}
ErrorResponse: Generic error response.
func (*ErrorResponse) GetErrors ¶
func (error *ErrorResponse) GetErrors() string
TODO: handle one specific language instead of the first in the list
GetErrors: Get the errors for this particular request.
type ImageQuality ¶ added in v0.2.0
type ImageQuality string
const ( ImageQualityLow ImageQuality = "low" ImageQualityHigh ImageQuality = "high" ImageQualitySuperHigh ImageQuality = "super_high" )
func StringToImageQuality ¶ added in v0.2.1
func StringToImageQuality(str string) ImageQuality
StringToImageQuality: Get the corresponding ImageQuality given a string.
Defaults to ImageQualitySuperHigh.
type LabelCode ¶ added in v0.2.0
type LabelCode string
const ( LabelCodeCreators LabelCode = "CREATORS" LabelCodeGiga LabelCode = "GIGA" LabelCodeJPlus LabelCode = "J_PLUS" LabelCodeOthers LabelCode = "OTHERS" LabelCodeRevival LabelCode = "REVIVAL" LabelCodeSKJ LabelCode = "SKJ" LabelCodeSQ LabelCode = "SQ" LabelCodeTYJ LabelCode = "TYJ" LabelCodeVJ LabelCode = "VJ" LabelCodeYJ LabelCode = "YJ" LabelCodeWSJ LabelCode = "WSJ" )
type Language ¶ added in v0.2.0
type Language string
const ( LanguageEnglish Language = "ENGLISH" LanguageSpanish Language = "SPANISH" LanguageFrench Language = "FRENCH" LanguageIndonesian Language = "INDONESIAN" LanguagePortugueseBR Language = "PORTUGUESE_BR" LanguageRussian Language = "RUSSIAN" LanguageThai Language = "THAI" LanguageVietnamese Language = "VIETNAMESE" LanguageGerman Language = "GERMAN" )
func StringToLanguage ¶ added in v0.2.1
StringToLanguage: Get the corresponding Language type from a Language code.
Defaults to LanguageEnglish.
Using MangaDex as reference: https://api.mangadex.org/docs/3-enumerations/#language-codes--localization
func (Language) ToCode ¶ added in v0.2.0
ToCode: Get the corresponding Language code.
Defaults to "en".
Using MangaDex as reference: https://api.mangadex.org/docs/3-enumerations/#language-codes--localization
type Languages ¶
type Languages struct {
DefaultUILanguage Language `json:"defaultUiLanguage"`
DefaultContentLanguageOne Language `json:"defaultContentLanguageOne"`
AvailableLanguages []struct {
Language *Language `json:"language"`
TitlesCount int `json:"titlesCount"`
} `json:"availableLanguages"`
}
Languages: Part of the response when requesting all of the manga.
Not really used.
type MangaService ¶
type MangaService service
MangaService: Provides Manga services provided by the API.
func (*MangaService) All ¶
func (s *MangaService) All() ([]AllTitlesGroup, error)
All: Get list of all manga.
func (*MangaService) Get ¶
func (s *MangaService) Get(id string) (TitleDetailView, error)
Get: Get manga details by ID.
type MangaViewer ¶
type MangaViewer struct {
Pages []Page `json:"pages"`
ChapterID int `json:"chapterId"`
Chapters []Chapter `json:"chapters"` // Probably not really needed
TitleName string `json:"titleName"`
ChapterName string `json:"chapterName"`
NumberOfComments int `json:"numberOfComments"`
TitleID int `json:"titleId"`
RegionCode string `json:"regionCode"`
TitleLanguage string `json:"titleLanguage"` // This uses a completely different format than that of other Language fields
}
type Options ¶ added in v0.3.1
func DefaultOptions ¶ added in v0.3.1
func DefaultOptions() Options
type PageService ¶
type PageService service
PageService: Provides Page services provided by the API.
func (*PageService) Get ¶
func (s *PageService) Get(id string, splitImages bool, imageQuality ImageQuality) ([]MangaPage, error)
Get: Get list of all chapter pages.
type PlusClient ¶
type PlusClient struct {
// Services for MangaPlus API.
Manga *MangaService
Page *PageService
// contains filtered or unexported fields
}
PlusClient: The MangaPlus client.
func NewPlusClient ¶
func NewPlusClient(options Options) *PlusClient
NewPlusClient: New MangaPlus client.
Options must be non-nil. Use DefaultOptions for defaults, all fields must be non-empty.
type PlusResponse ¶
type PlusResponse struct {
Success *SuccessResponse `json:"success"`
Error *ErrorResponse `json:"error"`
}
PlusResponse: Generic MangaPlus API response type, most responses have this structure.
type RegisterationData ¶ added in v0.3.0
type RegisterationData struct {
DeviceSecret string `json:"deviceSecret"`
}
type ReleaseSchedule ¶ added in v0.2.0
type ReleaseSchedule string
const ( ReleaseScheduleDisabled ReleaseSchedule = "DISABLED" ReleaseScheduleEveryday ReleaseSchedule = "EVERYDAY" ReleaseScheduleWeekly ReleaseSchedule = "WEEKLY" ReleaseScheduleBiweekly ReleaseSchedule = "BIWEEKLY" ReleaseScheduleMonthly ReleaseSchedule = "MONTHLY" ReleaseScheduleBiMonthly ReleaseSchedule = "BIMONTHLY" ReleaseScheduleTriMonthly ReleaseSchedule = "TRIMONTHLY" ReleaseScheduleOther ReleaseSchedule = "OTHER" ReleaseScheduleCompleted ReleaseSchedule = "COMPLETED" )
type SuccessResponse ¶
type SuccessResponse struct {
IsFeaturedUpdated *bool `json:"isFeaturedUpdated"`
RegisterationData *RegisterationData `json:"registerationData"`
TitleDetailView *TitleDetailView `json:"titleDetailView"`
MangaViewer *MangaViewer `json:"mangaViewer"`
AllTitlesViewV2 *AllTitlesViewV2 `json:"allTitlesViewV2"`
Languages *Languages `json:"languages"`
}
SuccessResponse: Generic success response.
type TitleDetailView ¶
type TitleDetailView struct {
Title Title `json:"title"`
TitleImageUrl string `json:"titleImageUrl"`
Overview string `json:"overview"`
NextTimeStamp int `json:"nextTimeStamp"`
ViewingPeriodDescription string `json:"viewingPeriodDescription"`
ChapterListGroup []ChapterListGroup `json:"chapterListGroup"`
IsSimulReleased bool `json:"isSimulReleased"`
Rating Rating `json:"rating"`
NumberOfViews int `json:"numberOfViews"`
RegionCode string `json:"regionCode"`
TitleLabels TitleLabels `json:"titleLabels"`
Label *Label `json:"label"`
IsFirstTimeFree bool `json:"isFirstTimeFree"`
}
type TitleLabels ¶
type TitleLabels struct {
ReleaseSchedule ReleaseSchedule `json:"releaseSchedule"`
IsSimulpub bool `json:"isSimulpub"`
PlanType string `json:"planType"`
}