Open a link with a command read from a database.
Project description
Pasterfu
Python program that opens a link with a command read from a database.
Made especially to use with RSS feed readers like newsboat. Or any other program where you might want to open a specific in a manner based on the link you are opening.
- Create a database according to your own needs
- Write a key that will match the whole link or just the beginning part of it
- List out commands you want to be run if mathing link is opened with pasterfu
Make a 'default' key into database to open unmatched links with commands listed
for the default key. You can have multiple databases and choose which one to
use with --database
option.
Wiki pages provide more in-depth information.
Requirements
- Python 3.7 or newer
- Pyperclip will be installed when installing pasterfu with pip
- In Ubuntu
sudo apt install python3
- With Windows download and install Python 3
- You could consider selecting
Add Python to PATH
during install
- You could consider selecting
Install
- Install Python 3 - Requirements
- Run
pip install pasterfu
- Create your config file rules. Configuration
- For more info check Wiki Configuration
- pasterfu will work with OS default browser even without configs
Linux
You propably need to use a command like:
pip3 install --upgrade pasterfu
Or:
python3 -m pip install --upgrade pasterfu
Windows
If you installed python without setting up path you need to include path when running pip.
py.exe -m pip install --upgrade pasterfu
Usage
pasterfu --link LINK
Replace the "LINK" with the link you wish to open. Check Wiki Usage for more info.
Windows
If you installed python without setting up path you need to include path when running pasterfu.
For Python 3.8:
%LOCALAPPDATA%\Programs\Python\Python38\Scripts\pasterfu.exe --link LINK
Configuration
- Create an empty database file in
~/.config/pasterfu.json
. Or in%USERPROFILE%\Documents\pasterfu.json
for Windows.
To add configurations run pasterfu --add-rule 'key' --command 'command'
key
what links to match for the rule- Make a "defalt" key that opens unmatched links
command
what to do if link is matching%link
can be used to pass the link for the command- Multiple commands can be set to a single key by separating the commands
with
;
- Piped commands can be given, unfortunately currently only one pipe per command
OS default internet browser will be used if no matching key is found and 'default' is not set.
Read more at Wiki Configuration.
Linux
Example 1
Open any link starting with https://gitlab.com/
in Firefox:
pasterfu --add-rule https://gitlab.com/ --command "firefox %link"
Example 2
If no matching key is found write to key to file ~/link.txt
and open the link
with Firefox:
pasterfu --add-rule default --command "echo %link ; firefox %link"
Example 3
By using '%clip' you can copy a link with pyperclip.
pasterfu --ad-rule https://gitlab.com/ --command "firefox %link ; %copy"
Windows
Example 4
Open gitlabs links in Brave:
pasterfu --add-rule https://gitlab.com/ --command
"C:/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe
%link"
Example 5
If no matching key is found open the link with Firefox:
pasterfu --add-rule default --command
"C:/Program Files/Mozilla Firefox/firefox.exe %link" ; C:/Program
Files/VideoLAN/VLC/vlc.exe"
Example 6
By using '%clip' you can copy a link with pyperclip.
pasterfu --ad-rule https://gitlab.com/ --command
"C:/Program Files/Mozilla Firefox/firefox.exe %link ; %clip"
Developing
TODO list found here Wiki TODO
Tests can be run with ./run_tests
or run_tests.bat
. These require flake8
and pytest
. Both can be found in PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pasterfu-0.7.0.post5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50387244aadc50522a0b5adf69c78771352bab12c45afa8cc9bec9125d05b46c |
|
MD5 | 2143fb8b1dcf15a0027a598c8331ff3d |
|
BLAKE2b-256 | f510c3a3c4d719f25e60e0f9668e7adccb7f86447614295ff68d3490934a0337 |