116 lines
2.1 KiB
Go
Executable File
116 lines
2.1 KiB
Go
Executable File
package source
|
|
|
|
const (
|
|
StatusUnknown = 0
|
|
StatusOngoing = 1
|
|
StatusCompleted = 2
|
|
StatusLicensed = 3
|
|
StatusHiatus = 5
|
|
StatusCancelled = 6
|
|
)
|
|
|
|
type SManga struct {
|
|
URL string
|
|
Title string
|
|
Artist string
|
|
Author string
|
|
Description string
|
|
Genre string // comma-separated
|
|
Status int
|
|
ThumbnailURL string
|
|
Initialized bool
|
|
}
|
|
|
|
type SChapter struct {
|
|
URL string
|
|
Name string
|
|
DateUpload int64 // unix milliseconds
|
|
ChapterNumber float32
|
|
Scanlator string
|
|
}
|
|
|
|
type Page struct {
|
|
Index int
|
|
URL string
|
|
ImageURL string
|
|
}
|
|
|
|
type MangasPage struct {
|
|
Mangas []SManga
|
|
HasNextPage bool
|
|
}
|
|
|
|
// Filter interface
|
|
|
|
type Filter interface {
|
|
Name() string
|
|
Value() any
|
|
}
|
|
|
|
// TextFilter — free-text input
|
|
|
|
type TextFilter struct {
|
|
FilterName string
|
|
Text string
|
|
}
|
|
|
|
func (f *TextFilter) Name() string { return f.FilterName }
|
|
func (f *TextFilter) Value() any { return f.Text }
|
|
|
|
// CheckboxFilter — boolean
|
|
|
|
type CheckboxFilter struct {
|
|
FilterName string
|
|
State bool
|
|
}
|
|
|
|
func (f *CheckboxFilter) Name() string { return f.FilterName }
|
|
func (f *CheckboxFilter) Value() any { return f.State }
|
|
|
|
// TriStateFilter — 0=ignore, 1=include, 2=exclude
|
|
|
|
type TriStateFilter struct {
|
|
FilterName string
|
|
State int
|
|
}
|
|
|
|
func (f *TriStateFilter) Name() string { return f.FilterName }
|
|
func (f *TriStateFilter) Value() any { return f.State }
|
|
|
|
// SelectFilter — dropdown
|
|
|
|
type SelectFilter struct {
|
|
FilterName string
|
|
Values []string
|
|
Selected int
|
|
}
|
|
|
|
func (f *SelectFilter) Name() string { return f.FilterName }
|
|
func (f *SelectFilter) Value() any { return f.Selected }
|
|
|
|
// SortFilter
|
|
|
|
type SortSelection struct {
|
|
Index int
|
|
Ascending bool
|
|
}
|
|
|
|
type SortFilter struct {
|
|
FilterName string
|
|
Values []string
|
|
Selection SortSelection
|
|
}
|
|
|
|
func (f *SortFilter) Name() string { return f.FilterName }
|
|
func (f *SortFilter) Value() any { return f.Selection }
|
|
|
|
// GroupFilter — container of sub-filters
|
|
|
|
type GroupFilter struct {
|
|
FilterName string
|
|
Filters []Filter
|
|
}
|
|
|
|
func (f *GroupFilter) Name() string { return f.FilterName }
|
|
func (f *GroupFilter) Value() any { return f.Filters }
|