quac

package
v0.0.0-...-7b473d3 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2022 License: Apache-2.0 Imports: 28 Imported by: 2

README

QUickly Amalgamate Concepts


The intention behind this program is to provide a space for quickly:

  • entering ideas from the command line
  • organizing ideas with tags and timestamps
  • scanning in handwritten notes for later transcription
  • viewing and developing your ideas further
Installation From Source
  1. make sure you have Go installed and put $GOPATH/bin in your $PATH
  2. run go get github.com/rigelrozanski/thranch
  3. run go install while navigated to this directory
  4. set the qi working directory in a config file in ~/qi_config.txt (see example_config.txt)
File Structure

filestructure: ./ideas/a,123456,YYYYMMDD,eYYYYMMDD,cYYYYMMDD,c432978,c543098...,tag1,tag2,tag3... ./qi ./log ./config ./working_files ./working_content 123456 = id c123456 = consumes-id YYYYMMDD = creation date eYYYYMMDD = last edited date cYYYYMMDD = consumed date

Details on use of qu scan

The scan functionality is provided to quickly scan in a sheet of paper with notes written in multiple orientations (currently only, rightside-up or upside down). The scan image is then reoriented and seperated out into smaller, untranscribed, untagged images which can then be quickly tagged and later transcribed with the qu wc command.

Using SPLIT
  • the SPLIT keyword takes the most recent above tags AS WELL AS any new provided tags "SPLIT newtag1,newtag2"
Using the browser

the tag browser can be accessed through qu ls, Once launched the following commands can be used: q - quit h - go to previous list j - move down list k - move up list l - find associated tags to the current list item (as well as highlighted tags) Ctrl-l - highlight the previous tag and drill to associated tags f - find associated files with current highlighted tags Enter - Either open the highlighted file, or all files associated with the highlighted tags

License

Quick Ideas is released under the Apache 2.0 license.

Documentation

Overview

nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/rigelrozanski/thranch/quac/idea

Index

Constants

View Source
const (
	Last          = idea.Last
	CycleAlive    = idea.CycleAlive
	CycleConsumed = idea.CycleConsumed
	CycleZombie   = idea.CycleZombie
	KindText      = idea.KindText
	KindImage     = idea.KindImage
	KindAudio     = idea.KindAudio
	KindEnText    = idea.KindEnText
)
View Source
const SPLIT = "SPLIT"

Variables

View Source
var (
	// functions aliases
	ValidateFilenameAsIdea   = idea.ValidateFilenameAsIdea
	GetIdByFilename          = idea.GetIdByFilename
	GetNextID                = idea.GetNextID
	IncrementID              = idea.IncrementID
	ParseID                  = idea.ParseID
	ParseIDNoLogLast         = idea.ParseIDNoLogLast
	ParseIDOp                = idea.ParseIDOp
	PrependLast              = idea.PrependLast
	GetLastIDs               = idea.GetLastIDs
	NewNonConsumingTextIdea  = idea.NewNonConsumingTextIdea
	NewNonConsumingAudioIdea = idea.NewNonConsumingAudioIdea
	NewTextIdea              = idea.NewTextIdea
	NewAudioIdea             = idea.NewAudioIdea
	NewIdea                  = idea.NewIdea
	NewIdeaFromFile          = idea.NewIdeaFromFile
	NewConsumingTextIdea     = idea.NewConsumingTextIdea
	NewIdeaFromFilepath      = idea.NewIdeaFromFilepath
	NewIdeaFromFilename      = idea.NewIdeaFromFilename
	GetAllIdeasNonConsuming  = idea.GetAllIdeasNonConsuming
	TagUsedInNonConsuming    = idea.TagUsedInNonConsuming
	GetAllIdeas              = idea.GetAllIdeas
	NewTagBase               = idea.NewTagBase
	NewTagReg                = idea.NewTagReg
	MustNewTagReg            = idea.MustNewTagReg
	NewTagWithout            = idea.NewTagWithout
	NewTagAll                = idea.NewTagAll
	NewTagContains           = idea.NewTagContains
	NewTagDates              = idea.NewTagDates
	ParseTagFromString       = idea.ParseTagFromString
	ParseFirstTagFromString  = idea.ParseFirstTagFromString
	ConcatAllContentFromTags = idea.ConcatAllContentFromTags
	ParseClumpedTags         = idea.ParseClumpedTags
	ParseStringTags          = idea.ParseStringTags
	CombineClumpedTags       = idea.CombineClumpedTags
	TodayDate                = idea.TodayDate
	GetKind                  = idea.GetKind
	IdStr                    = idea.IdStr

	// variable aliases
	WithoutKeyword       = idea.WithoutKeyword
	AllAliveKeyword      = idea.AllAliveKeyword
	AllConsumedKeyword   = idea.AllConsumedKeyword
	AllZombieKeyword     = idea.AllZombieKeyword
	ContainsKeyword      = idea.ContainsKeyword
	ContainsCIKeyword    = idea.ContainsCIKeyword
	NoContainsKeyword    = idea.NoContainsKeyword
	NoContainsCIKeyword  = idea.NoContainsCIKeyword
	CreatedDateKeyword   = idea.CreatedDateKeyword
	CreatedYearKeyword   = idea.CreatedYearKeyword
	CreatedDatesKeyword  = idea.CreatedDatesKeyword
	EditedDateKeyword    = idea.EditedDateKeyword
	EditedDatesKeyword   = idea.EditedDatesKeyword
	ConsumedDateKeyword  = idea.ConsumedDateKeyword
	ConsumedDatesKeyword = idea.ConsumedDatesKeyword
	IdeasDir             = idea.IdeasDir
	ConfigFile           = idea.ConfigFile
	LastIdFile           = idea.LastIdFile
)
View Source
var (
	QuDir              string
	DefaultScanDir     string
	DeleteWhenScanning bool = false
	TrashCanDir        string
	QuFile             string
	LogFile            string
	WorkingFnsFile     string
	WorkingContentFile string
)

directory name where boards are stored in repo

View Source
var LastScanCalibrationFile string

Functions

func AddHighlighted

func AddHighlighted(tag string)

func AddTagByIdea

func AddTagByIdea(idea *Idea, tagToAdd string)

func AppendLineForApp

func AppendLineForApp(application, appendLine string) error

func CopyByID

func CopyByID(id uint32) (newFilepath string)

copy an idea by the id

func EnsureBasics

func EnsureBasics()

func ExportToPDF

func ExportToPDF() error

func GetContentByID

func GetContentByID(id uint32) (content []byte, found bool)

func GetFilenameByID

func GetFilenameByID(id uint32) (fileName string)

func GetFilepathByID

func GetFilepathByID(id uint32) (filepath string, found bool)

func GetForApp

func GetForApp(application string) string

for applications to receive content

func GetIdeaByID

func GetIdeaByID(id uint32, loglast bool) idea.Idea

func GetLineage

func GetLineage(id uint32) (compiled string)

Display the immediate lineage of ideas

func GetOrigWorkingFileBytes

func GetOrigWorkingFileBytes() (origBzFN, origBzContent []byte)

get the bytes of the working files (original)

func GetStats

func GetStats()

func GetTrashcanFilepathsByID

func GetTrashcanFilepathsByID(id uint32) (currFilepath, trashCanFilePath string, found bool)

func Initialize

func Initialize(thranchConfigPath string)

load config and set global file directories

func ListenAudio

func ListenAudio(pathToOpen string)

func MaxWidth

func MaxWidth(strs []string) int

func MultiOpenByRange

func MultiOpenByRange(startId, endId uint32, forceSplitView bool)

func MultiOpenByTags

func MultiOpenByTags(tags []idea.Tag, forceSplitView bool)

func NewEmptyAudioEntry

func NewEmptyAudioEntry(clumpedTags string) (filepath string, id uint32)

func Open

func Open(pathToOpen string)

open supported files

func OpenText

func OpenText(pathToOpen string)

func OpenTextSplit

func OpenTextSplit(pathToOpenLeft, pathToOpenRight string, maxFNLen int)

func PrintCaliColours

func PrintCaliColours(in colour.Colours)

func RemoveByID

func RemoveByID(id uint32)

func RemoveHighlighted

func RemoveHighlighted(tag string)

func RemoveTagByIdea

func RemoveTagByIdea(idea *Idea, tagToRemove string)

func ReserveCopyFilename

func ReserveCopyFilename(oldFilename string, additionalClumpedTags string) (newFilename string)

func Rotate180

func Rotate180(imgs []image.Image) []image.Image

func Rotate270

func Rotate270(imgs []image.Image) []image.Image

func Rotate90

func Rotate90(imgs []image.Image) []image.Image

func SaveFromWorkingFiles

func SaveFromWorkingFiles(origBzFN, origBzContent []byte)

func Scan

func Scan(pathToImageOrDir, opTag string)

func ScanManual

func ScanManual(pathToImageOrDir string)

func SetConsume

func SetConsume(consumedId uint32, entry string) (consumerFilepath string)

copy an idea by the id

func SetConsumes

func SetConsumes(consumedId, consumesId uint32)

func SetEncryptionById

func SetEncryptionById(id uint32)

func SetZombie

func SetZombie(zombieId uint32)

Set a consumed idea to zombie

func UpdateEditedDateNow

func UpdateEditedDateNow(updatePath string)

func UpdateFilepathToEncrypted

func UpdateFilepathToEncrypted(Path string) string

func View

func View(pathToOpen string)

open supported files

func ViewImage

func ViewImage(pathToOpen string)

func ViewImageNoFilename

func ViewImageNoFilename(pathToOpen string)

func ViewText

func ViewText(filepath string)

func WriteIdea

func WriteIdea(filename, entry string)

create an empty file in the ideas Dir based on the filename

func WriteWorkingContentAndFilenamesFromFilePath

func WriteWorkingContentAndFilenamesFromFilePath(filePath string) (maxFNLen int)

func WriteWorkingContentAndFilenamesFromIdeas

func WriteWorkingContentAndFilenamesFromIdeas(idears idea.Ideas,
	forceSplitView bool) (found bool, maxFNLen int, singleReturn string)

func WriteWorkingContentAndFilenamesFromRange

func WriteWorkingContentAndFilenamesFromRange(startId, endId uint32,
	forceSplitView bool) (found bool, maxFNLen int, singleReturn string)

func WriteWorkingContentAndFilenamesFromTags

func WriteWorkingContentAndFilenamesFromTags(tags []idea.Tag, forceSplitView bool) (
	found bool, maxFNLen int, singleReturn string)

Types

type Idea

type Idea = idea.Idea

type Ideas

type Ideas = idea.Ideas

type Pair

type Pair struct {
	Key   string
	Value int
}

type PairList

type PairList []Pair

func GetAssociations

func GetAssociations(idears idea.Ideas, tags []idea.Tag, searchForFilenames bool) (associatedTags PairList, outIdears idea.Ideas)

func (PairList) Len

func (p PairList) Len() int

func (PairList) Less

func (p PairList) Less(i, j int) bool

func (PairList) Swap

func (p PairList) Swap(i, j int)

func (PairList) Top

func (p PairList) Top(max int) []string

type Tag

type Tag = idea.Tag

type TagAll

type TagAll = idea.TagAll

type TagBase

type TagBase = idea.TagBase

type TagContains

type TagContains = idea.TagContains

type TagDates

type TagDates = idea.TagDates

type TagReg

type TagReg = idea.TagReg

type TagWithout

type TagWithout = idea.TagWithout

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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