z

package
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2023 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TFAbsTwelveHour     int = 0
	TFAbsTwentyfourHour int = 1
	TFRelHourMinute     int = 2
	TFRelHourFraction   int = 3
)
View Source
const (
	CharTrack  = " ▶"
	CharFinish = " ■"
	CharErase  = " ◀"
	CharError  = " ▲"
	CharInfo   = " ●"
	CharMore   = " ◆"
)

Variables

View Source
var VERSION string

Functions

func Execute

func Execute()

func GetColorFnFromHex

func GetColorFnFromHex(colorHex string) func(...interface{}) string

func GetCurrentUser

func GetCurrentUser() string

func GetGitLog

func GetGitLog(repo string, since time.Time, until time.Time) (string, string, error)

func GetISOCalendarWeek

func GetISOCalendarWeek(date time.Time) int

func GetISOWeekInMonth

func GetISOWeekInMonth(date time.Time) (month int, weeknumber int)

func GetIdFromName

func GetIdFromName(name string) string

func GetOutputBarForHours

func GetOutputBarForHours(hours decimal.Decimal, stats []Statistic) []string

func GetOutputBoxForNumber

func GetOutputBoxForNumber(number int, clr func(...interface{}) string) string

func GetTimeFormat

func GetTimeFormat(timeStr string) int

func OutputAppendRight

func OutputAppendRight(leftStr string, rightStr string, pad int) string

func ParseTime

func ParseTime(timeStr string) (time.Time, error)

func RelToTime

func RelToTime(timeStr string, ftId int) (time.Time, error)

TODO: Use https://golang.org/pkg/time/#ParseDuration

func TimeFormats

func TimeFormats() []string

Types

type Calendar

type Calendar struct {
	Months       [12]Month
	Distribution map[string]Statistic
	TotalHours   decimal.Decimal
}

func NewCalendar

func NewCalendar(entries []Entry) (Calendar, error)

func (*Calendar) GetOutputForDistribution

func (calendar *Calendar) GetOutputForDistribution() string

func (*Calendar) GetOutputForWeekCalendar

func (calendar *Calendar) GetOutputForWeekCalendar(date time.Time, month int, week int) string

type Database

type Database struct {
	DB *buntdb.DB
}

func InitDatabase

func InitDatabase() (*Database, error)

func (*Database) AddEntry

func (database *Database) AddEntry(user string, entry Entry, setRunning bool) (string, error)

func (*Database) EraseEntry

func (database *Database) EraseEntry(user string, id string) error

func (*Database) FinishEntry

func (database *Database) FinishEntry(user string, entry Entry) (string, error)

func (*Database) GetEntry

func (database *Database) GetEntry(user string, entryId string) (Entry, error)

func (*Database) GetImportsSHA1List

func (database *Database) GetImportsSHA1List(user string) (map[string]string, error)

func (*Database) GetProject

func (database *Database) GetProject(user string, projectName string) (Project, error)

func (*Database) GetRunningEntryId

func (database *Database) GetRunningEntryId(user string) (string, error)

func (*Database) GetTask

func (database *Database) GetTask(user string, taskName string) (Task, error)

func (*Database) ListEntries

func (database *Database) ListEntries(user string) ([]Entry, error)

func (*Database) NewID

func (database *Database) NewID() string

func (*Database) UpdateEntry

func (database *Database) UpdateEntry(user string, entry Entry) (string, error)

func (*Database) UpdateImportsSHA1List

func (database *Database) UpdateImportsSHA1List(user string, sha1List map[string]string) error

func (*Database) UpdateProject

func (database *Database) UpdateProject(user string, projectName string, project Project) error

func (*Database) UpdateTask

func (database *Database) UpdateTask(user string, taskName string, task Task) error

type Entry

type Entry struct {
	ID      string    `json:"-"`
	Begin   time.Time `json:"begin,omitempty"`
	Finish  time.Time `json:"finish,omitempty"`
	Project string    `json:"project,omitempty"`
	Task    string    `json:"task,omitempty"`
	Notes   string    `json:"notes,omitempty"`
	User    string    `json:"user,omitempty"`

	SHA1 string `json:"-"`
}

func GetFilteredEntries

func GetFilteredEntries(entries []Entry, project string, task string, since time.Time, until time.Time) ([]Entry, error)

func NewEntry

func NewEntry(
	id string,
	begin string,
	finish string,
	project string,
	task string,
	user string) (Entry, error)

func (*Entry) GetDuration

func (entry *Entry) GetDuration() decimal.Decimal

func (*Entry) GetOutput

func (entry *Entry) GetOutput(full bool) string

func (*Entry) GetOutputForFinish

func (entry *Entry) GetOutputForFinish() string

func (*Entry) GetOutputForTrack

func (entry *Entry) GetOutputForTrack(isRunning bool, wasRunning bool) string

func (*Entry) IsFinishedAfterBegan

func (entry *Entry) IsFinishedAfterBegan() bool

func (*Entry) SetBeginFromString

func (entry *Entry) SetBeginFromString(begin string) (time.Time, error)

func (*Entry) SetFinishFromString

func (entry *Entry) SetFinishFromString(finish string) (time.Time, error)

func (*Entry) SetIDFromDatabaseKey

func (entry *Entry) SetIDFromDatabaseKey(key string) error

type Month

type Month struct {
	Name  string
	Weeks [5]Week
}

type Project

type Project struct {
	Name  string `json:"name,omitempty"`
	Color string `json:"color,omitempty"`
}

type Statistic

type Statistic struct {
	Hours   decimal.Decimal
	Project string
	Color   (func(...interface{}) string)
}

type Task

type Task struct {
	Name          string `json:"name,omitempty"`
	GitRepository string `json:"gitRepository,omitempty"`
}

type Tyme

type Tyme struct {
	Data []TymeEntry `json:"data"`
}

func (*Tyme) FromEntries

func (tyme *Tyme) FromEntries(entries []Entry) error

func (*Tyme) Load

func (tyme *Tyme) Load(filename string) error

func (*Tyme) Stringify

func (tyme *Tyme) Stringify() string

type TymeEntry

type TymeEntry struct {
	Billing         string `json:"billing"`          // "UNBILLED",
	Category        string `json:"category"`         // "Client",
	Distance        string `json:"distance"`         // "0",
	Duration        string `json:"duration"`         // "15",
	Start           string `json:"start"`            // "2020-09-01T08:45:00+01:00",
	End             string `json:"end"`              // "2020-09-01T08:57:00+01:00",
	Note            string `json:"note"`             // "",
	Project         string `json:"project"`          // "Project",
	Quantity        string `json:"quantity"`         // "0",
	Rate            string `json:"rate"`             // "140",
	RoundingMethod  string `json:"rounding_method"`  // "NEAREST",
	RoundingMinutes int    `json:"rounding_minutes"` // 15,
	Subtask         string `json:"subtask"`          // "",
	Sum             string `json:"sum"`              // "35",
	Task            string `json:"task"`             // "Development",
	Type            string `json:"type"`             // "timed",
	User            string `json:"user"`             // ""
}

type Week

type Week struct {
	Statistics WeekStatistics
}

type WeekStatistics

type WeekStatistics map[string][]Statistic

Jump to

Keyboard shortcuts

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