Documentation ¶
Index ¶
- Constants
- func DoDownload(file, dl string) (*os.File, string, error)
- func Hash(r io.ReaderAt, size int64) (string, error)
- func HashFile(file *os.File) (string, error)
- func NewSubtitleReader(s *Subtitle) (io.Reader, error)
- type Client
- func (c *Client) Download(s *Subtitle) error
- func (c *Client) DownloadSubtitles(ids []int) ([]SubtitleFile, error)
- func (c *Client) DownloadTo(s *Subtitle, path string) (err error)
- func (c *Client) GetImdbMovieDetails(id string) (*Movie, error)
- func (c *Client) HasSubtitles(subs Subtitles) (bool, error)
- func (c *Client) HasSubtitlesForFiles(movieFile string, subFile string) (bool, error)
- func (c *Client) LogIn(user string, pass string, lang string) (err error)
- func (c *Client) LogOut() (err error)
- func (c *Client) Noop() (err error)
- func (c *Client) SearchOnImdb(q string) (Movies, error)
- func (c *Client) SearchSubtitles(payloads []SearchPayload) (Subtitles, error)
- type Movie
- type Movies
- type SearchPayload
- type Subtitle
- type SubtitleFile
- type Subtitles
Constants ¶
const ( // DefaultOSDBServer ... DefaultOSDBServer = "https://api.opensubtitles.org/xml-rpc" // DefaultUserAgent ... DefaultUserAgent = "XBMC_Subtitles_v1" // XBMC OpenSubtitles Agent // SearchLimit ... SearchLimit = 100 // StatusSuccess ... StatusSuccess = "200 OK" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct { UserAgent string Token string Login string Password string Language string *xmlrpc.Client }
Client ...
func (*Client) DownloadSubtitles ¶
func (c *Client) DownloadSubtitles(ids []int) ([]SubtitleFile, error)
DownloadSubtitles Download subtitles by file ID.
func (*Client) DownloadTo ¶
DownloadTo Save subtitle file to disk, using the specified path.
func (*Client) GetImdbMovieDetails ¶
GetImdbMovieDetails Get movie details from IMDB.
func (*Client) HasSubtitles ¶
HasSubtitles Checks whether subtitles already exists in OSDB. The mandatory fields in the received Subtitle slice are: SubHash, SubFileName, MovieHash, MovieByteSize, and MovieFileName.
func (*Client) HasSubtitlesForFiles ¶
HasSubtitlesForFiles Checks whether OSDB already has subtitles for a movie and subtitle files.
func (*Client) SearchOnImdb ¶
SearchOnImdb Search movies on IMDB.
func (*Client) SearchSubtitles ¶
func (c *Client) SearchSubtitles(payloads []SearchPayload) (Subtitles, error)
SearchSubtitles ...
type Movie ¶
type Movie struct { ID string `xmlrpc:"id"` Title string `xmlrpc:"title"` Cover string `xmlrpc:"cover"` Year string `xmlrpc:"year"` Duration string `xmlrpc:"duration"` TagLine string `xmlrpc:"tagline"` Plot string `xmlrpc:"plot"` Goofs string `xmlrpc:"goofs"` Trivia string `xmlrpc:"trivia"` Cast map[string]string `xmlrpc:"cast"` Directors map[string]string `xmlrpc:"directors"` Writers map[string]string `xmlrpc:"writers"` Awards string `xmlrpc:"awards"` Genres []string `xmlrpc:"genres"` Countries []string `xmlrpc:"country"` Languages []string `xmlrpc:"language"` Certifications []string `xmlrpc:"certification"` }
Movie ...
type SearchPayload ¶
type SearchPayload struct { Query string `xmlrpc:"query"` Hash string `xmlrpc:"moviehash"` Size int64 `xmlrpc:"moviebytesize"` IMDBId string `xmlrpc:"imdbid"` Languages string `xmlrpc:"sublanguageid"` }
SearchPayload ...
func GetPayloads ¶
func GetPayloads(searchString string, languages []string, preferredLanguage string, showID int, playingFile string) ([]SearchPayload, string)
GetPayloads ...
type Subtitle ¶
type Subtitle struct { IDMovie string `xmlrpc:"IDMovie"` IDMovieImdb string `xmlrpc:"IDMovieImdb"` IDSubMovieFile string `xmlrpc:"IDSubMovieFile"` IDSubtitle string `xmlrpc:"IDSubtitle"` IDSubtitleFile string `xmlrpc:"IDSubtitleFile"` ISO639 string `xmlrpc:"ISO639"` LanguageName string `xmlrpc:"LanguageName"` MatchedBy string `xmlrpc:"MatchedBy"` MovieByteSize string `xmlrpc:"MovieByteSize"` MovieFPS string `xmlrpc:"MovieFPS"` MovieHash string `xmlrpc:"MovieHash"` MovieImdbRating string `xmlrpc:"MovieImdbRating"` MovieKind string `xmlrpc:"MovieKind"` MovieName string `xmlrpc:"MovieName"` MovieNameEng string `xmlrpc:"MovieNameEng"` MovieReleaseName string `xmlrpc:"MovieReleaseName"` MovieTimeMS string `xmlrpc:"MovieTimeMS"` MovieYear string `xmlrpc:"MovieYear"` MovieFileName string `xmlrpc:"MovieName"` QueryNumber string `xmlrpc:"QueryNumber"` QueryParameters struct { // contains filtered or unexported fields } `xmlrpc:"QueryParameters"` SeriesEpisode string `xmlrpc:"SeriesEpisode"` SeriesIMDBParent string `xmlrpc:"SeriesIMDBParent"` SeriesSeason string `xmlrpc:"SeriesSeason"` SubActualCD string `xmlrpc:"SubActualCD"` SubAddDate string `xmlrpc:"SubAddDate"` SubAuthorComment string `xmlrpc:"SubAuthorComment"` SubBad string `xmlrpc:"SubBad"` SubComments string `xmlrpc:"SubComments"` SubDownloadLink string `xmlrpc:"SubDownloadLink"` SubDownloadsCnt string `xmlrpc:"SubDownloadsCnt"` SubEncoding string `xmlrpc:"SubEncoding"` SubFeatured string `xmlrpc:"SubFeatured"` SubFileName string `xmlrpc:"SubFileName"` SubFormat string `xmlrpc:"SubFormat"` SubHash string `xmlrpc:"SubHash"` SubHD string `xmlrpc:"SubHD"` SubHearingImpaired string `xmlrpc:"SubHearingImpaired"` SubLanguageID string `xmlrpc:"SubLanguageID"` SubLastTS string `xmlrpc:"SubLastTS"` SubRating string `xmlrpc:"SubRating"` SubSize string `xmlrpc:"SubSize"` SubSumCD string `xmlrpc:"SubSumCD"` SubtitlesLink string `xmlrpc:"SubtitlesLink"` UserID string `xmlrpc:"UserID"` UserNickName string `xmlrpc:"UserNickName"` UserRank string `xmlrpc:"UserRank"` ZipDownloadLink string `xmlrpc:"ZipDownloadLink"` }
A Subtitle with its many OSDB attributes...
type SubtitleFile ¶
type SubtitleFile struct { ID string `xmlrpc:"idsubtitlefile"` Data string `xmlrpc:"data"` // contains filtered or unexported fields }
SubtitleFile contains file data as returned by OSDB's API, that is to say: gzip-ped and base64-encoded text.