api

package
v1.3.6 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2019 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const AUTHORS_SOURCES_SQL = `` /* 691-byte string literal not displayed */
View Source
const SOURCE_HIERARCHY_SQL = `` /* 1707-byte string literal not displayed */

args: 0,1,3,4 language 2 roots clause, "parent_id is NULL", "id = 8392", etc... 5 depth (int)

View Source
const TAG_HIERARCHY_SQL = `` /* 810-byte string literal not displayed */

args: 0,2 language 1 roots clause, "parent_id is NULL", "id = 8392", etc... 3 depth (int)

Variables

View Source
var SECURE_PUBLISHED_MOD = qm.Where(fmt.Sprintf("secure=%d AND published IS TRUE", consts.SEC_PUBLIC))
View Source
var T = map[string]translation{
	"ENG": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"HEB": {LessonFrom: "שיעור מתאריך", Playlist: "רשימת השמעה", Download: "הורדת השיעור", Video: "וידאו", Audio: "אודיו"},
	"RUS": {LessonFrom: "Урок от", Playlist: "Плейлист:", Download: "Скачать:", Video: "видео", Audio: "аудио"},
	"SPA": {LessonFrom: "Clase de", Playlist: "Lista de reproducción", Download: "Descargar", Video: "Video", Audio: "Audio"},
	"ITA": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"GER": {LessonFrom: "Unterricht von", Playlist: "Spielliste:", Download: "Downloaden:", Video: "Video", Audio: "Audio"},
	"DUT": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"FRE": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"POR": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"TRK": {LessonFrom: "Dersler", Playlist: "Çalma listesi:", Download: "Yükle:", Video: "Video", Audio: "ses"},
	"POL": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"ARB": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"HUN": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"FIN": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"LIT": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"JPN": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"BUL": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"GEO": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"NOR": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"SWE": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"HRV": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"CHN": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"PER": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"RON": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"HIN": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"UKR": {LessonFrom: "Урок від", Playlist: "Плейлист:", Download: "Завантажити:", Video: "відео", Audio: "аудіо"},
	"MKD": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"SLV": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"LAV": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"SLK": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
	"CZE": {LessonFrom: "Lesson from", Playlist: "Playlist:", Download: "Download:", Video: "Video", Audio: "Audio"},
}

Functions

func AutocompleteHandler

func AutocompleteHandler(c *gin.Context)

func BlogPostHandler added in v1.0.1

func BlogPostHandler(c *gin.Context)

func BlogPostsHandler added in v1.0.1

func BlogPostsHandler(c *gin.Context)

func ClickHandler added in v0.8.0

func ClickHandler(c *gin.Context)

func CollectionHandler

func CollectionHandler(c *gin.Context)

func CollectionsHandler

func CollectionsHandler(c *gin.Context)

func ContentUnitHandler

func ContentUnitHandler(c *gin.Context)

func ContentUnitsHandler

func ContentUnitsHandler(c *gin.Context)

func EvalIndexHandler added in v1.1.8

func EvalIndexHandler(c *gin.Context)

func EvalQueryHandler added in v1.1.8

func EvalQueryHandler(c *gin.Context)

func EvalSetHandler added in v1.1.8

func EvalSetHandler(c *gin.Context)

func FeedMorningLesson added in v0.9.7

func FeedMorningLesson(c *gin.Context)

Lesson Downloader

func FeedPodcast added in v0.9.7

func FeedPodcast(c *gin.Context)

func FeedRssPhp added in v0.9.7

func FeedRssPhp(c *gin.Context)

func FeedRssVideo added in v1.0.7

func FeedRssVideo(c *gin.Context)

func FeedRusForLaitmanRu added in v0.9.7

func FeedRusForLaitmanRu(c *gin.Context)

TODO: Feed for Som

func FeedRusZohar added in v0.9.7

func FeedRusZohar(c *gin.Context)

TODO: Feed for Som

func FeedWSXML added in v0.9.7

func FeedWSXML(c *gin.Context)

wsxml.xml?CID=4016&DLANG=HEB&DF=2013-04-30&DT=2013-03-31 supports only CID: 120 - yehsivat haverim (kab.co.il), 4728 - lesson parts (kab.co.il) This feed is used by kab.co.il On that server there is a hardcoded ip of our server !!!

func GetFiltersStats added in v0.9.6

func GetFiltersStats(db *sql.DB, cuScope string, cuScopeArgs []interface{}) (ClassificationStats, ClassificationStats, error)

func HealthCheckHandler added in v0.8.2

func HealthCheckHandler(c *gin.Context)

func HomePageHandler added in v0.6.6

func HomePageHandler(c *gin.Context)

func IsRuneQuotationMark

func IsRuneQuotationMark(r rune) bool

func IsTokenEnd

func IsTokenEnd(i int, runes []rune, lastQuote rune, lastQuoteIdx int) bool

func IsTokenStart

func IsTokenStart(i int, runes []rune, lastQuote rune) bool

func LatestLessonHandler added in v0.6.6

func LatestLessonHandler(c *gin.Context)

func LessonsHandler

func LessonsHandler(c *gin.Context)

func ParseQuery

func ParseQuery(q string) search.Query

Parses query and extracts terms and filters.

func Ping added in v0.8.2

func Ping(ctx context.Context, db *sql.DB) error

func PublishersHandler added in v0.6.5

func PublishersHandler(c *gin.Context)

func RecentlyUpdatedHandler

func RecentlyUpdatedHandler(c *gin.Context)

func SearchHandler

func SearchHandler(c *gin.Context)

func SemiQuasiDataHandler added in v0.7.3

func SemiQuasiDataHandler(c *gin.Context)

func SetupRoutes

func SetupRoutes(router *gin.Engine)

func SimpleModeHandler added in v1.0.0

func SimpleModeHandler(c *gin.Context)

func SourcesHierarchyHandler

func SourcesHierarchyHandler(c *gin.Context)

func StatsCUClassHandler added in v0.8.7

func StatsCUClassHandler(c *gin.Context)

func TagDashboardHandler added in v0.9.0

func TagDashboardHandler(c *gin.Context)

func TagsHierarchyHandler

func TagsHierarchyHandler(c *gin.Context)

func Tokenize

func Tokenize(str string) []string

Tokenizes string to work with user friendly escapings of quotes (see tests).

func TweetsHandler added in v0.9.9

func TweetsHandler(c *gin.Context)

Types

type Author

type Author struct {
	Code     string      `json:"id"`
	Name     string      `json:"name"`
	FullName null.String `json:"full_name,omitempty"`
	Children []*Source   `json:"children,omitempty"`
}
type Banner struct {
	Section   string `json:"section"`
	Header    string `json:"header"`
	SubHeader string `json:"sub_header"`
	Url       string `json:"url"`
	Image     string `json:"image"`
}

type BaseRequest

type BaseRequest struct {
	Language string `json:"language" form:"language" binding:"omitempty,len=2"`
}

type BlogFilter added in v1.0.1

type BlogFilter struct {
	Blogs []string `json:"blogs" form:"blog" binding:"omitempty"`
}

type BlogPost added in v1.0.1

type BlogPost struct {
	Blog         string    `json:"blog"`
	WordpressID  int64     `json:"wp_id"`
	CanonicalUrl string    `json:"url"`
	Title        string    `json:"title"`
	Content      string    `json:"content"`
	CreatedAt    time.Time `json:"created_at"`
}

type BlogPostsRequest added in v1.0.1

type BlogPostsRequest struct {
	ListRequest
	DateRangeFilter
	BlogFilter
	IDsFilter
}

type BlogPostsResponse added in v1.0.1

type BlogPostsResponse struct {
	ListResponse
	Posts []*BlogPost `json:"posts"`
}

func NewBlogPostsResponse added in v1.0.1

func NewBlogPostsResponse() *BlogPostsResponse

type ClassificationStats added in v0.9.6

type ClassificationStats map[string]int

type Collection

type Collection struct {
	ID              string         `json:"id"`
	ContentType     string         `json:"content_type"`
	Name            string         `json:"name,omitempty"`
	Description     string         `json:"description,omitempty"`
	FilmDate        *utils.Date    `json:"film_date,omitempty"`
	StartDate       *utils.Date    `json:"start_date,omitempty"`
	EndDate         *utils.Date    `json:"end_date,omitempty"`
	Country         string         `json:"country,omitempty"`
	City            string         `json:"city,omitempty"`
	FullAddress     string         `json:"full_address,omitempty"`
	Genres          []string       `json:"genres,omitempty"`
	DefaultLanguage string         `json:"default_language,omitempty"`
	HolidayID       string         `json:"holiday_id,omitempty"`
	SourceID        string         `json:"source_id,omitempty"`
	Number          int            `json:"number,omitempty"`
	ContentUnits    []*ContentUnit `json:"content_units,omitempty"`
}

type CollectionUpdateStatus

type CollectionUpdateStatus struct {
	UID        string     `json:"id"`
	LastUpdate utils.Date `json:"last_update"`
	UnitsCount int        `json:"units_count"`
}

type CollectionsFilter added in v0.6.5

type CollectionsFilter struct {
	Collections []string `json:"collections" form:"collection" binding:"omitempty,dive,len=8"`
}

type CollectionsRequest

type CollectionsRequest struct {
	ListRequest
	IDsFilter
	ContentTypesFilter
	DateRangeFilter
	WithUnits bool `json:"with_units" form:"with_units"`
}

type CollectionsResponse

type CollectionsResponse struct {
	ListResponse
	Collections []*Collection `json:"collections"`
}

func NewCollectionsResponse

func NewCollectionsResponse() *CollectionsResponse

type ContentTypesFilter

type ContentTypesFilter struct {
	ContentTypes []string `json:"content_types" form:"content_type" binding:"omitempty"`
}

type ContentUnit

type ContentUnit struct {
	ID               string                  `json:"id"`
	ContentType      string                  `json:"content_type"`
	NameInCollection string                  `json:"name_in_collection,omitempty"`
	FilmDate         *utils.Date             `json:"film_date,omitempty"`
	Name             string                  `json:"name,omitempty"`
	Description      string                  `json:"description,omitempty"`
	Duration         float64                 `json:"duration,omitempty"`
	OriginalLanguage string                  `json:"original_language,omitempty"`
	Files            []*File                 `json:"files,omitempty"`
	Collections      map[string]*Collection  `json:"collections,omitempty"`
	Sources          []string                `json:"sources,omitempty"`
	Tags             []string                `json:"tags,omitempty"`
	Publishers       []string                `json:"publishers,omitempty"`
	SourceUnits      map[string]*ContentUnit `json:"source_units,omitempty"`
	DerivedUnits     map[string]*ContentUnit `json:"derived_units,omitempty"`
	// contains filtered or unexported fields
}

type ContentUnitsResponse

type ContentUnitsResponse struct {
	ListResponse
	ContentUnits []*ContentUnit `json:"content_units"`
}

func NewContentUnitsResponse

func NewContentUnitsResponse() *ContentUnitsResponse

type DateRangeFilter

type DateRangeFilter struct {
	StartDate string `json:"start_date" form:"start_date" binding:"omitempty"`
	EndDate   string `json:"end_date" form:"end_date" binding:"omitempty"`
}

func (*DateRangeFilter) Range

func (drf *DateRangeFilter) Range() (time.Time, time.Time, error)

type EvalQueryRequest added in v1.1.8

type EvalQueryRequest struct {
	EvalQuery          search.EvalQuery `json:"eval_query"`
	ExpectationStrings []string         `json:"expectation_strings"`
	// contains filtered or unexported fields
}

type EvalQueryResponse added in v1.1.8

type EvalQueryResponse struct {
	EvalResult search.EvalResult `json:"eval_result"`
}

type EvalSetRequest added in v1.1.8

type EvalSetRequest struct {
	ServerUrl    string `json:"server_url"`
	RecallSetCSV string `json:"recall_set_csv"`
}

type EvalSetResponse added in v1.1.8

type EvalSetResponse struct {
	Results    search.EvalResults    `json:"results"`
	Losses     map[int][]search.Loss `json:"losses"`
	FlatReport string                `json:"flat_report"`
}

type File

type File struct {
	ID        string    `json:"id"`
	Name      string    `json:"name"`
	Size      int64     `json:"size"`
	Duration  float64   `json:"duration,omitempty"`
	Language  string    `json:"language,omitempty"`
	MimeType  string    `json:"mimetype,omitempty"`
	Type      string    `json:"type,omitempty"`
	SubType   string    `json:"subtype,omitempty"`
	VideoSize string    `json:"video_size,omitempty"`
	CreatedAt time.Time `json:"-"`
}

type GenresProgramsFilter

type GenresProgramsFilter struct {
	Genres   []string `json:"genres" form:"genre" binding:"omitempty"`
	Programs []string `json:"programs" form:"program" binding:"omitempty,dive,len=8"`
}

type HierarchyRequest

type HierarchyRequest struct {
	BaseRequest
	RootUID string `json:"root" form:"root" binding:"omitempty,len=8"`
	Depth   int    `json:"depth" form:"depth"`
}

type HomeResponse added in v0.6.9

type HomeResponse struct {
	LatestDailyLesson  *Collection    `json:"latest_daily_lesson"`
	LatestContentUnits []*ContentUnit `json:"latest_units"`
	Banner             *Banner        `json:"banner"`
}

type HttpError

type HttpError struct {
	Code int
	Err  error
	Type gin.ErrorType
}

func NewBadRequestError

func NewBadRequestError(err error) *HttpError

func NewHttpError

func NewHttpError(code int, err error, t gin.ErrorType) *HttpError

func NewInternalError

func NewInternalError(err error) *HttpError

func NewNotFoundError

func NewNotFoundError() *HttpError

func (HttpError) Abort

func (e HttpError) Abort(c *gin.Context)

func (HttpError) Error

func (e HttpError) Error() string

type IDSet added in v0.9.6

type IDSet map[int64]bool

func (IDSet) Increment added in v0.9.6

func (h IDSet) Increment(k int64)

func (IDSet) Merge added in v0.9.6

func (h IDSet) Merge(other IDSet)

type IDsFilter

type IDsFilter struct {
	IDs []string `json:"ids" form:"id" binding:"omitempty"`
}

type ItemRequest

type ItemRequest struct {
	BaseRequest
	UID string
}

type ListRequest

type ListRequest struct {
	BaseRequest
	PageNumber int    `json:"page_no" form:"page_no" binding:"omitempty,min=1"`
	PageSize   int    `json:"page_size" form:"page_size" binding:"omitempty,min=1"`
	StartIndex int    `json:"start_index" form:"start_index" binding:"omitempty,min=1"`
	StopIndex  int    `json:"stop_index" form:"stop_index" binding:"omitempty,min=1"`
	OrderBy    string `json:"order_by" form:"order_by" binding:"omitempty"`
	GroupBy    string `json:"-"`
}

type ListResponse

type ListResponse struct {
	Total int64 `json:"total"`
}

type PersonsFilter added in v1.0.0

type PersonsFilter struct {
	Persons []string `json:"persons" form:"person" binding:"omitempty,dive,len=8"`
}

type Publisher added in v0.6.5

type Publisher struct {
	UID         string      `json:"id"`
	Name        null.String `json:"name"`
	Description null.String `json:"description,omitempty"`
	ID          int64       `json:"-"`
}

type PublishersFilter added in v0.6.5

type PublishersFilter struct {
	Publishers []string `json:"publishers" form:"publisher" binding:"omitempty,dive,len=8"`
}

type PublishersRequest added in v0.6.5

type PublishersRequest struct {
	ListRequest
}

type PublishersResponse added in v0.6.5

type PublishersResponse struct {
	ListResponse
	Publishers []*Publisher `json:"publishers"`
}

func NewPublishersResponse added in v0.6.5

func NewPublishersResponse() *PublishersResponse

type SemiQuasiData added in v0.7.3

type SemiQuasiData struct {
	Authors    []*Author    `json:"sources"`
	Tags       []*Tag       `json:"tags"`
	Publishers []*Publisher `json:"publishers"`
}

type SimpleModeRequest added in v1.0.0

type SimpleModeRequest struct {
	BaseRequest
	DateRangeFilter
}

type SimpleModeResponse added in v1.0.0

type SimpleModeResponse struct {
	ListResponse
	Lessons []*Collection  `json:"lessons"`
	Others  []*ContentUnit `json:"others"`
}

type Source

type Source struct {
	UID         string     `json:"id"`
	ParentUID   string     `json:"parent_id"`
	Type        string     `json:"type"`
	Name        string     `json:"name"`
	Description string     `json:"description,omitempty"`
	Year        string     `json:"year,omitempty"`
	Number      string     `json:"number,omitempty"`
	Children    []*Source  `json:"children,omitempty"`
	ID          int64      `json:"-"`
	ParentID    null.Int64 `json:"-"`
	Position    null.Int   `json:"-"`
}

type SourcesFilter

type SourcesFilter struct {
	Authors []string `json:"authors" form:"author" binding:"omitempty"`
	Sources []string `json:"sources" form:"source" binding:"omitempty,dive,len=8"`
}

type StatsCUClassResponse added in v0.8.7

type StatsCUClassResponse struct {
	Sources map[string]int `json:"sources"`
	Tags    map[string]int `json:"tags"`
}

func NewStatsCUClassResponse added in v0.8.7

func NewStatsCUClassResponse() *StatsCUClassResponse

type StatsNode added in v0.9.6

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

type StatsTree added in v0.9.6

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

func NewStatsTree added in v0.9.6

func NewStatsTree() *StatsTree

type Tag

type Tag struct {
	UID       string      `json:"id"`
	ParentUID string      `json:"parent_id"`
	Label     null.String `json:"label"`
	Children  []*Tag      `json:"children,omitempty"`
	ID        int64       `json:"-"`
	ParentID  null.Int64  `json:"-"`
}

type TagsDashboardResponse added in v0.9.0

type TagsDashboardResponse struct {
	PromotedContentUnits []*ContentUnit `json:"promoted_units"`
	LatestContentUnits   []*ContentUnit `json:"latest_units"`
}

func NewTagsDashboardResponse added in v0.9.0

func NewTagsDashboardResponse() *TagsDashboardResponse

type TagsFilter

type TagsFilter struct {
	Tags []string `json:"tags" form:"tag" binding:"omitempty,dive,len=8"`
}

type Tweet added in v0.9.9

type Tweet struct {
	Username  string    `json:"username"`
	TwitterID string    `json:"twitter_id"`
	FullText  string    `json:"full_text"`
	CreatedAt time.Time `json:"created_at"`
	Raw       null.JSON `json:"raw"`
}

type TweetsRequest added in v0.9.9

type TweetsRequest struct {
	ListRequest
	DateRangeFilter
	UsernameFilter
	IDsFilter
}

type TweetsResponse added in v0.9.9

type TweetsResponse struct {
	ListResponse
	Tweets []*Tweet `json:"tweets"`
}

func NewTweetsResponse added in v0.9.9

func NewTweetsResponse() *TweetsResponse

type UsernameFilter added in v0.9.9

type UsernameFilter struct {
	Usernames []string `json:"usernames" form:"username" binding:"omitempty"`
}

Jump to

Keyboard shortcuts

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