| src/lolbin | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
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, username, 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:
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
-
To create/update a paste:
$ echo "My awesome content" | lolbin --paste my_awesome_pasteIf you want to paste content from a file, use the
--fileflag:$ echo "My awesome content" > my_content.txt $ lolbin --paste --file my_content.txt my_awesome_pasteThe
--pastpart is optional, as lolbin can deduct the action from the input.$ cat my_content.txt | lolbin --paste my_awesome_pasteFor 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 -PI 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").
-
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) -
To show the content of a specific paste:
$ lolbin --show my_awesome_paste My awesome contentAs with the
--pasteoption, lolbin can deduct the action without the--showoption.$ lolbin my_awesome_paste My awesome content -
To delete a specific paste:
$ lolbin --delete my_awesome_pasteOr use the
-dshort option. -
To edit a specific paste:
$ lolbin --edit my_awesome_pasteThe 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
EDITORenvironment variable. If it is not set, the vim is used. -
For help:
$ lolbin --help -
To run in debug mode, use the
--debugflag with any command:$ lolbin --debug --listIt 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