Versions in this module Expand all Collapse all v1 v1.0.0 May 16, 2026 Changes in this version + func Reg(key string) error v0 v0.5.6 Oct 18, 2025 v0.5.5 Jul 29, 2025 v0.5.4 May 31, 2025 v0.5.3 Apr 19, 2025 v0.5.2 Apr 5, 2025 v0.5.1 Mar 25, 2025 v0.5.0 Feb 15, 2025 Changes in this version + func Grammar() string + type Attribute struct + Code int + ID int + Pos lexer.Position + Value Str + func (a *Attribute) String() string + type CurrentSubtask struct + Pos lexer.Position + Task *Task + type CurrentTask struct + Pos lexer.Position + Task *Task + type DiscInfo struct + Attribute *Attribute + Pos lexer.Position + type DriveScan struct + DiscTitle Str + DriveName Str + Enabled int + Flags int + Index int + Pos lexer.Position + Visible int + VolumeName Str type Line + CurrentSubtask *CurrentSubtask + CurrentTask *CurrentTask + DiscInfo *DiscInfo + DriveScan *DriveScan + Message *Message + Pos lexer.Position + Progress *Progress + StreamInfo *StreamInfo + TitleCount *TitleCount + TitleInfo *TitleInfo + type Message struct + Code int + Flags int + Format Str + Message Str + NumParams int + Params []Str + Pos lexer.Position + type Output struct + Lines []*Line + Pos lexer.Position + func ParseFile(path string) (*Output, error) + func ParseOutput(s string) (*Output, error) + type Progress struct + Max int + Pos lexer.Position + SubtaskValue int + TaskValue int + func (l *Progress) SubtaskProgress() float64 + func (l *Progress) TaskProgress() float64 + type Str string + func (s *Str) Capture(values []string) error + func (s *Str) String() string + type StreamInfo struct + Attribute *Attribute + Pos lexer.Position + StreamIndex int + TitleIndex int + type Task struct + Code int + ID int + Name Str + Pos lexer.Position + type TitleCount struct + Count int + Pos lexer.Position + type TitleInfo struct + Attribute *Attribute + Pos lexer.Position + TitleIndex int v0.4.1 Feb 15, 2025 v0.4.0 Feb 3, 2025 Changes in this version + var ErrNotFound = fmt.Errorf("not found") + var ErrUnhandledLine = fmt.Errorf("unhandled line") + func FindExe() (string, error) — darwin/amd64, linux/amd64, windows/amd64 + func Maximums[S []E, E any, V constraints.Ordered](s S, f func(E) (V, error)) S + func ParseDuration(s string) (time.Duration, error) + func ParseLines(r io.Reader) iter.Seq2[Line, error] + type Con struct + func New(cfg *Config) (*Con, error) + func (c *Con) BackupTitle(ctx context.Context, driveIndex, titleIndex int, dstDir string) (iter.Seq2[Line, error], error) + func (c *Con) ListDrives(ctx context.Context) (*LineIterator[[]*DriveScanLine], error) + func (c *Con) RunCmd(ctx context.Context, args ...string) (iter.Seq2[Line, error], error) + func (c *Con) RunDefaultCmd(ctx context.Context, args ...string) (iter.Seq2[Line, error], error) + func (c *Con) ScanDrive(ctx context.Context, driveIndex int) (*LineIterator[*Disc], error) + type Config struct + ExePath string + MinLengthSeconds int64 + ProfilePath string + ReadCacheSizeMB int64 + func (cfg *Config) Validate() error + type CurrentProgressLine struct + func ParseCurrentProgressLine(s string) (*CurrentProgressLine, error) + func (l *CurrentProgressLine) Kind() LineKind + type Disc struct + Titles []*Title + func (d *Disc) GetTitle(index int) *Title + func (d *Disc) TitleCount() int + func (d *Disc) TitlesWithAngle(targetAngle int) []*Title + func (d *Disc) TitlesWithLongestDuration() []*Title + func (d *Disc) TitlesWithMostChapters() []*Title + func (d *Disc) TitlesWithMostStreams() []*Title + type DiscInfoLine struct + func ParseDiscInfoLine(s string) (*DiscInfoLine, error) + func (l *DiscInfoLine) Kind() LineKind + type DriveScanLine struct + DiscTitle string + DriveName string + Enabled int + Flags int + Index int + Visible int + VolumeName string + func ParseDriveScanLine(s string) (*DriveScanLine, error) + func (l *DriveScanLine) Kind() LineKind + type Info []*InfoLine + func (info Info) GetAttr(id defs.Attr) (string, error) + func (info Info) GetAttrDefault(id defs.Attr, defaultValue string) string + func (info Info) GetAttrDuration(id defs.Attr) (time.Duration, error) + func (info Info) GetAttrInt(id defs.Attr) (int, error) + func (info Info) GetCode(id defs.Attr) (int, error) + func (info Info) GetCodeDefault(id defs.Attr, defaultValue int) int + type InfoLine struct + Code int + ID defs.Attr + Value string + func (l *InfoLine) String() string + type Line interface + Kind func() LineKind + func ParseLine(s string) (Line, error) + type LineIterator struct + Seq iter.Seq2[Line, error] + func (li *LineIterator[T]) GetResult() (T, error) + type LineKind int + const LineKindCurrentProgress + const LineKindDiscInfo + const LineKindDriveScan + const LineKindMessage + const LineKindProgressBar + const LineKindStreamInfo + const LineKindTitleCount + const LineKindTitleInfo + const LineKindTotalProgress + const LineKindUnknown + type MessageLine struct + Code int + Flags int + Format string + Message string + NumParams int + Params []string + func ParseMessageLine(s string) (*MessageLine, error) + func (l *MessageLine) Kind() LineKind + type ProgressBarLine struct + Current int + Max int + Total int + func ParseProgressBarLine(s string) (*ProgressBarLine, error) + func (l *ProgressBarLine) CurrentProgress() float64 + func (l *ProgressBarLine) Kind() LineKind + func (l *ProgressBarLine) TotalProgress() float64 + type Stream struct + Index int + func (s *Stream) Type() defs.TypeCode + type StreamInfoLine struct + StreamIndex int + TitleIndex int + func ParseStreamInfoLine(s string) (*StreamInfoLine, error) + func (l *StreamInfoLine) Kind() LineKind + type Title struct + Index int + Streams []*Stream + func (t *Title) GetStream(index int) *Stream + type TitleCountLine struct + Count int + func ParseTitleCountLine(s string) (*TitleCountLine, error) + func (l *TitleCountLine) Kind() LineKind + type TitleInfoLine struct + TitleIndex int + func ParseTitleInfoLine(s string) (*TitleInfoLine, error) + func (l *TitleInfoLine) Kind() LineKind + type TotalProgressLine struct + func ParseTotalProgressLine(s string) (*TotalProgressLine, error) + func (l *TotalProgressLine) Kind() LineKind