nu-modules/corpus.nu

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
}
}