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.

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, username, and bearer token (but does not actually perform the action).

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:

username = "your_username"
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:

username = "your_username"
bearer_token = "`bws secret get XXXXXX` | jq .key --raw-output"

Or with the dollard based one:

username = "your_username"
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.

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-1.0.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

lolbin-1.0.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lolbin-1.0.1.tar.gz
  • Upload date:
  • Size: 6.4 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-1.0.1.tar.gz
Algorithm Hash digest
SHA256 8d327f3488641bc88452107201618b4364003e808d5703b08d0d6df903b8033e
MD5 49a198a3be6b404a17c936c74857e980
BLAKE2b-256 ebbfb4771e8a69676c0ff9e28b91caeafd80a0009cac76ef381c6b64d7b0a075

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lolbin-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.3 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-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c11c1248185aed2d7dc4251ed67ec1c7da62f8f5eb36d7db7a7755b1a8219d75
MD5 88d1763e77a64ce9cdd2685f7e963961
BLAKE2b-256 98b7d61a0df9f93004c79c5407a96d851d2fd6133fe48b510830bf5c0bf3bd38

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