e878dedbb6
Format - New B32 ID Index - New option: txt index --print - Move scheme to peers - Replace peer.*.conf files with index packed locations Instead of adding a URL to peers.*.conf, run `txt pull <url>` Conversion - Rewritten converters - txt-convert looks for a .convert.conf containing `key: value` lines. - Specifiable topic-roots from .convert.conf. - Added `Topics:` key, with comma seperated topics. If set only those topics will appear in the main index and used as topic roots. Other topics will have sub-indices generated, but won't be listed in the main index. - HTML converter header & footer options - HTML-index renamed to HTM-index Internal - Change types: uuid:Uuid -> id:string - File_store merges identical texts - Use peer ID for store path, store peers' texts in .local/share/texts - Simple URN resolution for converter Continue to next feed if parsing one fails - Phasing-out Archive, replaced by improved packs - Eliminate Bos, Cohttp, lwt, uri, tls, Re, Ptime, dependencies - Lock version for Cmdliner, fix dune-project - Optional resursive store - Improve header_pack - Fix recursive mkdir
17 lines
779 B
OCaml
17 lines
779 B
OCaml
open Logarion
|
|
let authors r topics_opt =
|
|
let predicates = Archive.(predicate topics topics_opt) in
|
|
let predicate text = List.fold_left (fun a e -> a && e text) true predicates in
|
|
let author_union a (e, _) = Person.Set.union a e.Text.authors in
|
|
let s = File_store.fold ~r ~predicate author_union Person.Set.empty in
|
|
Person.Set.iter (fun x -> print_endline (Person.to_string x)) s
|
|
|
|
open Cmdliner
|
|
let term =
|
|
let recurse = Arg.(value & flag & info ["R"]
|
|
~doc:"include texts in subdirectories too") in
|
|
let topics = Arg.(value & opt (some string) None & info ["topics"]
|
|
~docv:"TOPICS" ~doc:"display authors who have written on topics") in
|
|
Term.(const authors $ recurse $ topics),
|
|
Term.info "authors" ~doc:"list authors"
|
|
~man:[ `S "DESCRIPTION"; `P "List author names" ]
|