Skip to main content

A small python cli to manage paste.lol from cli

Project description

lolbin

A command-line interface tool for managing pastes on paste.lol, a service of omg.lol.
It does only that but it does it well.

WARNING: Remember that every past on paste.lol is public. If you have the URL of the paste, you can fetch it without authentication.

You can access every listed paste of someone on the web at "https://paste.lol/

". Mines are here: https://paste.lol/ache.

Features

  • Create/Update Paste - Allows you to create or update a paste with a specified title and content.
  • List Pastes - Lists all your pastes along with their titles and the time they were last modified.
  • Show Paste - Displays the content of a specific paste by its title.
  • Delete Paste - Deletes a specific paste by its title.
  • Help Message - Provides usage instructions for the tool.
  • Debug Mode - Prints the action to be performed, the paste name, address, and bearer token (but does not actually perform the action).

Very quick use

  • List Pastes - lolbin
  • List public Pastes- lolbin -P
  • Show Paste - lolbin paste-name
  • Create paste - echo 'My paste' | lolbin paste-name (will also replace a paste).
  • Create listed paste - echo 'My paste' | lolbin paste-name -L
  • Edit paste - lolbin -e paste-nameP
  • Delete Paste - lolbin -d paste-name

Installation

To install the tool, you can use pip:

$ pip install lolbin

But the recommanded way is via pipx:

$ pipx install lolbin

Or with uv:

$ uv run lolbin

On Arch Linux, there is a package on the AUR, so use your prefered AUR packages manager, mine is yay:

$ yay -S lolbin

Configuration

To configure the tool, create a file ~/.config/lolbin/config.toml with the following content:

address = "your_address"
bearer_token = "your_bearer_token"

You can obtain a bearer token by logging in to the <omg.lol> website, in you account, at the end of the page, section 'API Key'.

If you don't want to store you API token inside a config file, you can call external command to retrieve it from you secret manager.

With the backtick syntax for command substitution:

address = "your_address"
bearer_token = "`bws secret get XXXXXX` | jq .key --raw-output"

Or with the dollard based one:

address = "your_address"
bearer_token = "$ pass api.omg.lol/token_lolbin"

Example of Use

  1. To create/update a paste:

    $ echo "My awesome content" | lolbin --paste my_awesome_paste
    

    If you want to paste content from a file, use the --file flag:

    $ echo "My awesome content" > my_content.txt
    $ lolbin --paste --file my_content.txt my_awesome_paste
    

    The --past part is optional, as lolbin can deduct the action from the input.

    $ cat my_content.txt | lolbin --paste my_awesome_paste
    

    For obvious reasons, by default a past is private (aka non-listed, remember every past is exposed on the public web), to make it public (aka listed in the paste.lol jargon) use the "--public" (or "-P") option.

    $ echo "This is public !" | lolbin public-message -P
    

    I know that "-P" can be confused with "private", the idea is that, by default it's private so you don't need a private option. If you find it confusing, you can also use the paste.lol jargon with "--listed" (and "-L").

  2. To list your pastes:

    $ lolbin --list
     - my_awesome_paste (10s ago)
    

    List is the default action so you can also ommit the --list.

    Also, by default, it only list all the paste, so the private one too (aka non-listed). To list only the public paste (aka listed in the paste.lol jargon), use the "--public" option (or "-P", or "--listed" and "-L").

    It's conveniant to remember that "-l" is for private and "-L" will list every paste.

    $ lolbin -l
     - my_awesome_listed_paste (30s ago)
     - my-awesome-private-paste (1min ago)
    $ lolbin -L
     - my_awesome_listed_paste (33s ago)
    
  3. To show the content of a specific paste:

    $ lolbin --show my_awesome_paste
    My awesome content
    

    As with the --paste option, lolbin can deduct the action without the --show option.

    $ lolbin my_awesome_paste
    My awesome content
    
  4. To delete a specific paste:

    $ lolbin --delete my_awesome_paste
    

    Or use the -d short option.

  5. To edit a specific paste:

    $ lolbin --edit my_awesome_paste
    

    The editor will be opened with the content of the paste. The content will be replaced with the edited content. The editor is determined by the EDITOR environment variable. If it is not set, the vim is used.

  6. For help:

    $ lolbin --help
    
  7. To run in debug mode, use the --debug flag with any command:

    $ lolbin --debug --list
    

    It will not do anything.

Similar projects

  • clilol: A CLI that support all the APIs of omg.lol. But too inconvenient to use for me for paste, ideal for status.
  • Pastol: A CLI for paste.lol. Nice and in Rust ! 🦀. But again, it lakes some usefull features like retrieve the API token from a manager. But have some others nice features. (search ! And a nice UI to show a paste).
  • omglolcli: A CLI that support some of the APIs of omg.lol. Nice but incomplet.

Requirements

  • Python 3.10 or higher
  • requests library
  • tomli library

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lolbin-2.0.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lolbin-2.0.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file lolbin-2.0.0.tar.gz.

File metadata

  • Download URL: lolbin-2.0.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.2 cpython/3.13.11 HTTPX/0.28.1

File hashes

Hashes for lolbin-2.0.0.tar.gz
Algorithm Hash digest
SHA256 1d9a5d056baf77834eecede703e69c5ca261d3b24a903aed4b83fe56e52baaa0
MD5 66a24ef7103fdd32066d2c71c311cb39
BLAKE2b-256 9540dce2e97a380b28fbf230bdd4daa2458db072e72aa990c06897cc03c50e67

See more details on using hashes here.

File details

Details for the file lolbin-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: lolbin-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.2 cpython/3.13.11 HTTPX/0.28.1

File hashes

Hashes for lolbin-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37b660d040a575e4a68472a699cfcc99a0111ef536e0d8834afca5de86d8782c
MD5 c2943374326d435a78760aad14ed9a6d
BLAKE2b-256 63078eee847921b9eca964ac1a629070f73612eb308562d4bd8c5f208226c684

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page