~jakob/brisket

Primitive newsreader script for interacting with NNTP servers.
4652c096 — Jakob L. Kreuze 3 years ago
Generate headers for 'post-article
dd11ee48 — Jakob L. Kreuze 3 years ago
Update documentation
86c10b9e — Jakob L. Kreuze 3 years ago
Implement 'post-article

clone

read-only
https://git.sr.ht/~jakob/brisket
read/write
git@git.sr.ht:~jakob/brisket

You can also use your local clone with git send-email.

#brisket

brisket is a primitive newsreader script, capable of fetching posts and posting to NNTP servers. It's dead simple and lacks any sort of fancy TUI, opting instead for an interface inspired by the Unix philosophy: posts are read from stdin, and are written either to stdout or to text files in a directory.

You probably don't want to use it in its current state.

#Installation

brisket is self-contained and depends only on Hy core and the Python standard library. Provided that both Hy and Python are installed, you should be able to invoke brisket in the following ways.

$ chmod u+x brisket.hy

# Install globally.
$ cp brisket.hy /usr/local/bin/brisket

# Or

# I'd rather just run it from the repository.
$ ./brisket.hy

#Usage

Running brisket without any arguments will give a list of recognized commands.

$ brisket
usage: /home/jakob/.bin/brisket [command] [args]
recognized commands:
  - describe-group
  - help
...

The documentation for any command can be obtained with the help command.

$ brisket help describe-group
Describe the first group matching the pattern.

usage: describe-groups [pattern]

#Configuration

Upon running brisket for the first time, a default configuration file will be written to $HOME/.config/brisket/config.ini. The hostname for the NNTP server you wish to connect to can be specified here. Alternatively, the hostname can be specified with the $NNTPSERVER environment variable.

Currently, the only way to specify credentials for authenticating with the NNTP server is with a line in .authinfo.gpg. See here for more information.

#Exploration

A list of groups available on the server can be obtained with the list-groups command.

$ brisket list-groups
control
control.cancel
control.checkgroups
control.newgroup
control.rmgroup
junk
orbitalfox
orbitalfox.test
...

Descriptions, if available, can be obtained with the describe-group command.

$ brisket describe-group junk
Unfiled articles (no posting).

#Reading

Posts can be fetched with the fetch-posts command. Without any additional arguments, this will fetch every post on the server, which probably isn't what you want. You can specify a specific group and article ID to fetch. Additionally, if "-" is in the argument list, the article will be printed to stdout.

#Posting

Posts can be posted with the post-article command.

#Why the name?

I couldn't come up with a better name, and there's little in the world that makes me happier than a smoked brisket.

 ________
< Uhm... >
 --------
        \   ^__^
         \  (oo)\\_______
            (__)\\       )\\/\\
                ||----w |
                ||     ||