parser

package
v0.0.0-...-50f11f9 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2022 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

parser

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Checknzbtitle

func Checknzbtitle(movietitle string, nzbtitle string) bool

func GetHighestEpisodePriorityByFiles

func GetHighestEpisodePriorityByFiles(episode database.SerieEpisode, configTemplate string, qualityTemplate string) int

func GetHighestMoviePriorityByFiles

func GetHighestMoviePriorityByFiles(movies database.Movie, configTemplate string, qualityTemplate string) (minPrio int)

func GetMovieDBPriority

func GetMovieDBPriority(moviefile database.MovieFile, configTemplate string, qualityTemplate string) int

func GetSerieDBPriority

func GetSerieDBPriority(serieepisodefile database.SerieEpisodeFile, configTemplate string, qualityTemplate string) int

func Getnzbconfig

func Getnzbconfig(nzb Nzbwithprio, quality string) (category string, target config.PathsConfig, downloader config.DownloaderConfig)

func LoadDBPatterns

func LoadDBPatterns()

Types

type FFProbeJSON

type FFProbeJSON struct {
	Format struct {
		//BitRate        string `json:"bit_rate"`
		Duration string `json:"duration"`
		//Filename       string `json:"filename"`
		//FormatLongName string `json:"format_long_name"`
		//FormatName     string `json:"format_name"`
		//NbPrograms     int    `json:"nb_programs"`
		//NbStreams      int    `json:"nb_streams"`
		//ProbeScore     int    `json:"probe_score"`
		//Size           string `json:"size"`
		//StartTime      string `json:"start_time"`
		Tags struct {
			//CompatibleBrands string   `json:"compatible_brands"`
			//CreationTime     JSONTime `json:"creation_time"`
			//Encoder      string `json:"encoder"`
			//MajorBrand   string `json:"major_brand"`
			//MinorVersion string `json:"minor_version"`
			Title string `json:"title"`
		} `json:"tags"`
	} `json:"format"`
	Streams []FFProbeStream `json:"streams"`
	Error   struct {
		Code   int    `json:"code"`
		String string `json:"string"`
	} `json:"error"`
}

type FFProbeStream

type FFProbeStream struct {
	//AvgFrameRate string `json:"avg_frame_rate"`
	BitRate string `json:"bit_rate"`
	//BitsPerRawSample   string `json:"bits_per_raw_sample,omitempty"`
	//ChromaLocation     string `json:"chroma_location,omitempty"`
	//CodecLongName      string `json:"codec_long_name"`
	CodecName string `json:"codec_name"`
	//CodecTag           string `json:"codec_tag"`
	CodecTagString string `json:"codec_tag_string"`
	//CodecTimeBase      string `json:"codec_time_base"`
	CodecType string `json:"codec_type"`
	//CodedHeight        int    `json:"coded_height,omitempty"`
	//CodedWidth         int    `json:"coded_width,omitempty"`
	//DisplayAspectRatio string `json:"display_aspect_ratio,omitempty"`
	// Disposition        struct {
	// 	AttachedPic     int `json:"attached_pic"`
	// 	CleanEffects    int `json:"clean_effects"`
	// 	Comment         int `json:"comment"`
	// 	Default         int `json:"default"`
	// 	Dub             int `json:"dub"`
	// 	Forced          int `json:"forced"`
	// 	HearingImpaired int `json:"hearing_impaired"`
	// 	Karaoke         int `json:"karaoke"`
	// 	Lyrics          int `json:"lyrics"`
	// 	Original        int `json:"original"`
	// 	TimedThumbnails int `json:"timed_thumbnails"`
	// 	VisualImpaired  int `json:"visual_impaired"`
	// } `json:"disposition"`
	//Duration   string `json:"duration"`
	//DurationTs int    `json:"duration_ts"`
	//HasBFrames        int    `json:"has_b_frames,omitempty"`
	Height int `json:"height,omitempty"`
	//Index  int `json:"index"`
	//IsAvc             string `json:"is_avc,omitempty"`
	//Level             int    `json:"level,omitempty"`
	//NalLengthSize     string `json:"nal_length_size,omitempty"`
	//NbFrames          string `json:"nb_frames"`
	//PixFmt            string `json:"pix_fmt,omitempty"`
	//Profile    string `json:"profile"`
	//RFrameRate string `json:"r_frame_rate"`
	//Refs              int    `json:"refs,omitempty"`
	//SampleAspectRatio string `json:"sample_aspect_ratio,omitempty"`
	//StartPts          int    `json:"start_pts"`
	//StartTime         string `json:"start_time"`
	Tags struct {
		//CreationTime JSONTime `json:"creation_time"`
		//HandlerName  string   `json:"handler_name"`
		Language string `json:"language"`
		Rotate   string `json:"rotate"`
	} `json:"tags"`
	//TimeBase      string `json:"time_base"`
	Width int `json:"width,omitempty"`
}

type Nzbwithprio

type Nzbwithprio struct {
	Prio         int
	Indexer      string
	ParseInfo    ParseInfo
	NZB          newznab.NZB
	NzbmovieID   uint
	NzbepisodeID uint
	//Nzbmovie         database.Movie
	//Nzbepisode       database.SerieEpisode
	WantedTitle      string
	WantedAlternates []string
	QualityTemplate  string
	MinimumPriority  int
	Denied           bool
	Reason           string
}

type NzbwithprioJson

type NzbwithprioJson struct {
	Prio             int
	Indexer          string
	ParseInfo        ParseInfo
	NZB              newznab.NZB
	NzbmovieID       uint
	NzbepisodeID     uint
	WantedTitle      string
	WantedAlternates []string
	QualityTemplate  string
	MinimumPriority  int
	Denied           bool
	Reason           string
}

type ParseInfo

type ParseInfo struct {
	File         string
	Title        string
	Season       int    `json:"season,omitempty"`
	Episode      int    `json:"episode,omitempty"`
	SeasonStr    string `json:"seasonstr,omitempty"`
	EpisodeStr   string `json:"episodestr,omitempty"`
	Year         int    `json:"year,omitempty"`
	Resolution   string `json:"resolution,omitempty"`
	ResolutionID uint   `json:"resolutionid,omitempty"`
	Quality      string `json:"quality,omitempty"`
	QualityID    uint   `json:"qualityid,omitempty"`
	Codec        string `json:"codec,omitempty"`
	CodecID      uint   `json:"codecid,omitempty"`
	Audio        string `json:"audio,omitempty"`
	AudioID      uint   `json:"audioid,omitempty"`
	Priority     int    `json:"priority,omitempty"`
	//Group           string   `json:"group,omitempty"`
	//Region          string   `json:"region,omitempty"`
	Identifier string `json:"identifier,omitempty"`
	Date       string `json:"date,omitempty"`
	Extended   bool   `json:"extended,omitempty"`
	//Hardcoded       bool     `json:"hardcoded,omitempty"`
	Proper bool `json:"proper,omitempty"`
	Repack bool `json:"repack,omitempty"`
	//Container       string   `json:"container,omitempty"`
	//Widescreen      bool     `json:"widescreen,omitempty"`
	//Website         string   `json:"website,omitempty"`
	Language string `json:"language,omitempty"`
	//Sbs             string   `json:"sbs,omitempty"`
	//Unrated         bool     `json:"unrated,omitempty"`
	//Subs            string   `json:"subs,omitempty"`
	Imdb string `json:"imdb,omitempty"`
	Tvdb string `json:"tvdb,omitempty"`
	Size string `json:"size,omitempty"`
	//ThreeD          bool     `json:"3d,omitempty"`
	QualitySet      string   `json:"qualityset,omitempty"`
	Prio_audio      int      `json:"Prio_audio,omitempty"`
	Prio_codec      int      `json:"Prio_codec,omitempty"`
	Prio_resolution int      `json:"Prio_resolution,omitempty"`
	Prio_quality    int      `json:"Prio_quality,omitempty"`
	Languages       []string `json:"languages,omitempty"`
	Runtime         int      `json:"runtime,omitempty"`
	Height          int      `json:"height,omitempty"`
	Width           int      `json:"width,omitempty"`
}

func NewCutoffPrio

func NewCutoffPrio(configTemplate string, qualityTemplate string) ParseInfo

func NewDefaultPrio

func NewDefaultPrio(configTemplate string, qualityTemplate string) ParseInfo

func NewFileParser

func NewFileParser(filename string, includeYearInTitle bool, typegroup string) (ParseInfo, error)

func (*ParseInfo) FindSerieByParser

func (m *ParseInfo) FindSerieByParser(titleyear string, seriestitle string, listname string) (database.Serie, int)

func (*ParseInfo) GetIDPriority

func (m *ParseInfo) GetIDPriority(configTemplate string, qualityTemplate string)

func (*ParseInfo) GetPriority

func (m *ParseInfo) GetPriority(configTemplate string, qualityTemplate string)

func (*ParseInfo) ParseFile

func (m *ParseInfo) ParseFile(includeYearInTitle bool, typegroup string) error

func (*ParseInfo) ParseVideoFile

func (m *ParseInfo) ParseVideoFile(file string, configTemplate string, qualityTemplate string) error

func (*ParseInfo) StripTitlePrefixPostfix

func (n *ParseInfo) StripTitlePrefixPostfix(qualityTemplate string)

type VideoFile

type VideoFile struct {
	JSON FFProbeJSON

	Path  string
	Title string
	//Comment   string
	//Container string
	Duration float64

	VideoCodec          string
	VideoCodecTagString string
	//VideoBitrate        int64
	Width  int
	Height int

	AudioCodec     string
	AudioLanguages []string
}

func NewVideoFile

func NewVideoFile(ffprobePath string, videoPath string, stripExt bool) (VideoFile, error)

Execute exec command and bind result to struct.

Jump to

Keyboard shortcuts

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