dbapi

package
v0.0.0-...-e506182 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusUnchecked  = "unchecked"
	StatusSkip       = "skip"
	StatusOK         = "ok"
	StatusOK2        = "ok2"
	StatusInProgress = "in progress"

	StatusChecked = "checked"

	StatusAny   = "any"
	StatusEmpty = ""

	SourceAny = "any"

	AudioFileAny = "any"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientID

type ClientID struct {
	ID       string `json:"id"`
	UserName string `json:"user_name"`
}

type DBAPI

type DBAPI struct {
	ProjectDir, SourceDataDir, AnnotationDataDir string
	// contains filtered or unexported fields
}

func NewDBAPI

func NewDBAPI(projectDir string, validator *validation.Validator) *DBAPI

func (*DBAPI) BuildAudioPath

func (api *DBAPI) BuildAudioPath(audioFile string) (string, error)

func (*DBAPI) Clear

func (api *DBAPI) Clear() error

func (*DBAPI) GetAnnotationData

func (api *DBAPI) GetAnnotationData() map[string]protocol.AnnotationPayload

func (*DBAPI) GetNextPage

func (api *DBAPI) GetNextPage(query protocol.QueryPayload, currentlyLockedID string, clientID ClientID, lockOnLoad bool) (protocol.AnnotationPayload, string, error)

GetNextPage returns an annotation based on the query request. If an error is found, it returns an empty annotation, and an error. If an error is not found, but there is no page to be found, a message will be returned.

func (*DBAPI) ListAudioFiles

func (api *DBAPI) ListAudioFiles() []string

func (*DBAPI) LoadAnnotationData

func (api *DBAPI) LoadAnnotationData() (map[string]protocol.AnnotationPayload, []ValRes, error)

func (*DBAPI) LoadData

func (api *DBAPI) LoadData() ([]ValRes, error)

func (*DBAPI) LoadSourceData

func (api *DBAPI) LoadSourceData() ([]protocol.PagePayload, []ValRes, error)

func (*DBAPI) Lock

func (api *DBAPI) Lock(pageID string, ci ClientID) error

func (*DBAPI) Locked

func (api *DBAPI) Locked(pageID string) bool

func (*DBAPI) PageFromID

func (api *DBAPI) PageFromID(id string) (protocol.PagePayload, error)

func (*DBAPI) Pages

func (api *DBAPI) Pages() int

Pages returns the number of page annotations.

func (*DBAPI) ProjectName

func (api *DBAPI) ProjectName() string

func (*DBAPI) Save

func (api *DBAPI) Save(annotation protocol.AnnotationPayload) error

func (*DBAPI) Search

func (api *DBAPI) Search(q Query) protocol.QueryResult

func (*DBAPI) Stats

func (api *DBAPI) Stats() (StatsPerAudio, StatsPerAudio, error)

Stats returns 1) page stats per audio file; 2) chunk stats per audio file; or an error if something is wrong

func (*DBAPI) StatsII

func (api *DBAPI) StatsII() SubProjStats

func (*DBAPI) TestAudioAccess

func (api *DBAPI) TestAudioAccess(buildAudio func(string) string) error

func (*DBAPI) Unlock

func (api *DBAPI) Unlock(pageID string, ci ClientID) error

func (*DBAPI) UnlockAll

func (api *DBAPI) UnlockAll(ci ClientID) (int, error)

func (*DBAPI) UnlockAllUserName

func (api *DBAPI) UnlockAllUserName(user string) (int, error)

func (*DBAPI) UnlockUserName

func (api *DBAPI) UnlockUserName(pageID, user string) error

type Proj

type Proj struct {
	DBs map[string]*DBAPI
	// contains filtered or unexported fields
}

Proj is a struct wrapping a set of dbapi.DBAPI:s

func NewProj

func NewProj(dirList string, validator *validation.Validator) (Proj, error)

NewProj takes a colon separated list of project sub directories

func (*Proj) AddProj

func (p *Proj) AddProj(dir string, validator *validation.Validator) error

func (*Proj) BuildAudioPath

func (p *Proj) BuildAudioPath(subProj, audioFile string) (string, error)

func (*Proj) GetDB

func (p *Proj) GetDB(projName string) *DBAPI

func (*Proj) GetNextPage

func (p *Proj) GetNextPage(subProj string, query protocol.QueryPayload, currentlyLockedID string, clientID ClientID, lockOnLoad bool) (protocol.AnnotationPayload, string, error)

func (*Proj) GetStatusSources

func (p *Proj) GetStatusSources() []string

GetStatusSources returns a list of the "status sources" (typically editor user names) known in the project

func (*Proj) ListAudioFiles

func (p *Proj) ListAudioFiles(subProj string) ([]string, error)

func (*Proj) ListSubProjs

func (p *Proj) ListSubProjs() []string

func (*Proj) LoadData

func (p *Proj) LoadData(subProjects ...string) ([]ValRes, error)

LoadData wraps dbapi.DBAPI.LoadData if no subProjects are provided, all sub projects are loaded

func (*Proj) PageFromID

func (p *Proj) PageFromID(subProj, id string) (protocol.PagePayload, error)

func (*Proj) Save

func (p *Proj) Save(annotation protocol.AnnotationPayload) error

func (*Proj) Stats

func (p *Proj) Stats() map[string]SubProjStats

func (*Proj) UnloadData

func (p *Proj) UnloadData(subProjects ...string) error

func (*Proj) Unlock

func (p *Proj) Unlock(subProj, pageID string, ci ClientID) error

Unlock wraps dbapi.DBAPI.Unlock

func (*Proj) UnlockAll

func (p *Proj) UnlockAll(ci ClientID) (int, error)

UnlockAll wraps dbapi.DBAPI.Unlock

func (*Proj) UserIDsForLockedPages

func (p *Proj) UserIDsForLockedPages() []ClientID

type Query

type Query struct {
	Status  []string
	TransRE *regexp.Regexp
}

TODO Move to protocol package?

type Stats

type Stats map[string]int

type StatsPerAudio

type StatsPerAudio map[string]Stats

type SubProjStats

type SubProjStats struct {
	//BatchName     string   `json:"batch_name"`
	PagesTot      int            `json:"pages_tot"`
	PagesDone     int            `json:"pages_done"`
	PagesSkip     int            `json:"pages_skip"`
	PagesDelete   int            `json:"pages_delete"`
	PagesLocked   int            `json:"pages_locked"`
	PagesLockedBy []string       `json:"pages_locked_by"`
	DoneByEditor  map[string]int `json:"done_by_editor"`
}

type ValRes

type ValRes struct {
	Level   string
	Message string
}

Jump to

Keyboard shortcuts

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