38 lines
867 B
Plaintext
38 lines
867 B
Plaintext
def settings-db [] {
|
|
$env.HOME | path join ".corpus.db"
|
|
}
|
|
|
|
def save-settings [] {
|
|
into sqlite (settings-db) --table_name "documents"
|
|
}
|
|
|
|
def query-settings [query] {
|
|
open (settings-db) | query db $query
|
|
}
|
|
|
|
def comp-corpus [] {
|
|
list | get corpus
|
|
}
|
|
|
|
# create a corpus
|
|
export def "add documents" [coprus:string, pattern:string] {
|
|
glob $pattern | each {|x| {path: $x, corpus: $coprus}} | save-settings
|
|
}
|
|
|
|
# list all corpora
|
|
export def list [] {
|
|
query-settings "SELECT DISTINCT corpus FROM documents"
|
|
}
|
|
|
|
# list all documents of a corpus
|
|
export def "show" [coprus:string@comp-corpus] {
|
|
query-settings "SELECT DISTINCT path FROM documents"
|
|
}
|
|
|
|
# choose randomly a file from corpus
|
|
export def choose [corpus:string@comp-corpus, --amount:int] {
|
|
let documents = (show corpus)
|
|
seq 1 $amount | each {
|
|
$documents | shuffle | first
|
|
}
|
|
} |