An 0x0.st uploader helper.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
grym 29a5b43ad1
Restore broken repost call
2 weeks ago
tests Simplify project layout, re-add support for python 3.7 2 months ago
.gitignore Drop poetry 12 months ago
.pre-commit-config.yaml Simplify project layout, re-add support for python 3.7 2 months ago
LICENSE Add license 2 months ago
Makefile Simplify project layout, re-add support for python 3.7 2 months ago
README.org Restore broken repost call 2 weeks ago
oxo.py Restore broken repost call 2 weeks ago
pyproject.toml Rename `manage` to `delete` 2 months ago

README.org

0x0 uploader

This is a very lightweight front-end to the 0x0 pastebin service for slightly easier command line use.

Use

oxo --help

 Usage: oxo [OPTIONS] COMMAND [ARGS]...

 A command line utility for 0x0.st compliant pastebins.
 To use a different 0x0 site, set `OXO_BASE_URL` in your environment, or
 specify it in the relevant subcommand.

╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --version                     Show the version and exit.                     │
│ --install-completion          Install completion for the current shell.      │
│ --show-completion             Show completion for the current shell, to copy │
│                               it or customize the installation.              │
│ --help                        Show this message and exit.                    │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ delete   Delete uploaded files if tokens are found on disk at                │
│          `token_cache_dir`.                                                  │
│ files    Upload one or more files.  If one is provided by the 0x0 site used  │
│          on a successful upload, a management token will be printed to       │
│          stderr along with instructions on how to use it to delete or adjust │
│          the expiration time on the uploaded file(s).  If                    │
│          `--token-cache-dir` is passed or `OXO_TOKEN_CACHE_DIR` is set, the  │
│          management token will also be cached as a json file in that         │
│          directory.  The cache directory will be created on first use.       │
│ repost   Repost one or more urls.                                            │
│ shorten  Shorten one or more urls.                                           │
╰──────────────────────────────────────────────────────────────────────────────╯
oxo files --help

 Usage: oxo files [OPTIONS] FILES...

 Upload one or more files.  If one is provided by the 0x0 site used on a
 successful upload, a management token will be printed to stderr along with
 instructions on how to use it to delete or adjust the expiration time on the
 uploaded file(s).  If `--token-cache-dir` is passed or `OXO_TOKEN_CACHE_DIR`
 is set, the management token will also be cached as a json file in that
 directory.  The cache directory will be created on first use.

╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ *    files      FILES...  [default: None] [required]                         │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --base-url               TEXT     [env var: OXO_BASE_URL]                    │
│                                   [default: https://0x0.st]                  │
│ --expires                INTEGER  Expiration time, in hours or epoch         │
│                                   milliseconds                               │
│                                   [default: None]                            │
│ --token-cache-dir        TEXT     [env var: OXO_TOKEN_CACHE_DIR]             │
│                                   [default: None]                            │
│ --help                            Show this message and exit.                │
╰──────────────────────────────────────────────────────────────────────────────╯
oxo repost --help

 Usage: oxo repost [OPTIONS] URLS...

 Repost one or more urls.

╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ *    urls      URLS...  [default: None] [required]                           │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --base-url               TEXT     [env var: OXO_BASE_URL]                    │
│                                   [default: https://0x0.st]                  │
│ --expires                INTEGER  Expiration time, in hours or epoch         │
│                                   milliseconds                               │
│                                   [default: None]                            │
│ --token-cache-dir        TEXT     [env var: OXO_TOKEN_CACHE_DIR]             │
│                                   [default: None]                            │
│ --help                            Show this message and exit.                │
╰──────────────────────────────────────────────────────────────────────────────╯
oxo shorten --help

 Usage: oxo shorten [OPTIONS] URLS...

 Shorten one or more urls.

╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ *    urls      URLS...  [default: None] [required]                           │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --base-url               TEXT     [env var: OXO_BASE_URL]                    │
│                                   [default: https://0x0.st]                  │
│ --expires                INTEGER  Expiration time, in hours or epoch         │
│                                   milliseconds                               │
│                                   [default: None]                            │
│ --token-cache-dir        TEXT     [env var: OXO_TOKEN_CACHE_DIR]             │
│                                   [default: None]                            │
│ --help                            Show this message and exit.                │
╰──────────────────────────────────────────────────────────────────────────────╯
oxo delete --help

 Usage: oxo delete [OPTIONS] [TOKEN_CACHE_DIR]

 Delete uploaded files if tokens are found on disk at `token_cache_dir`.

╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│   token_cache_dir      [TOKEN_CACHE_DIR]  [env var: OXO_TOKEN_CACHE_DIR]     │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --interactive    --no-interactive      If True, prompt for each token found. │
│                                        [default: no-interactive]             │
│ --help                                 Show this message and exit.           │
╰──────────────────────────────────────────────────────────────────────────────╯

Installation

pipx

pipx automates the creation of isolated runtimes for python CLI utilities like oxo. Once pipx is installed, install oxo like so, and it'll be on your $PATH

pipx install git+https://tildegit.org/grym/oxo@master  # or @tag-of-your-choice

pip + venv

If you'd prefer to create or manage your own isolated runtime for oxo, create a venv and install oxo into it:

  python3 -m venv oxovenv #or wherever you want the venv to go
  oxovenv/bin/pip install git+https://tildegit.org/grym/oxo@master  # or @tag-of-your-choice
  ln -s oxovenv/bin/oxo ${HOME}/.local/bin # optionally add to here, or anywhere else on your $PATH

development

If you'd like to set up a development install to edit oxo on your own (to prepare a PR, for example):

  git clone https://tildegit.org/grym/oxo
  cd oxo
  make install