/rofi-tpb

🏴‍☠️ Dynamic menu interface for TPB, built with rofi in mind.

Primary LanguageHTMLMIT LicenseMIT

rofi-tpb

Dynamic menu interface for The Pirate Bay, built with rofi in mind.

Install

pip install rofi-tpb

Consider using pipx:

pipx install rofi-tpb

Usage

Prompt to either search tpb or browse tpb's top torrents:

rofi-tpb

Prompt for search query:

rofi-tpb search

Search for ubuntu related torrents:

rofi-tpb search ubuntu

Browse tpb's top torrents across all categories:

rofi-tpb top all

Browse tpb's recent top torrents across all categories in the last 48h:

rofi-tpb top all -r

Check the help for details:

rofi-tpb --help
...
rofi-tpb search --help
...
rofi-tpb top --help
...

Dependencies

  • python >= 3.6
  • tpblite
  • dynmen
  • lxml
  • traitlets (undeclared dependency of dynmen)

Configuration

rofi-tpb stores its config in $XDG_CONFIG_HOME/rofi-tpb/config.ini.

The default configuration is the following:

[menu]
command = rofi -dmenu -i
torrent_format = {title:<65} 📁{filesize:<12} 🔽{seeds:<4} 🔼{leeches:<4} Trusted: {trusted} VIP: {vip}
vip_str = ✅
not_vip_str = ❌
trusted_str = ✅
not_trusted_str = ❌
use_tpb_proxy = True
tpb_url = https://thepiratebay0.org
categories = All, APPLICATIONS, AUDIO, GAMES, OTHER, PORN, VIDEO
categories_48h = True

[actions]
add = xdg-open '{magnetlink}'
open = xdg-open '{url}'
  • menu.command: the dynamic menu command which should read from stdin and output to stdout, if you want to use dmenu instead of rofi then adjust this command accordingly.
  • menu.torrent_format: text representation of a torrent in the dynamic menu, accepts torrent string format keys.
  • menu.use_tpb_proxy: if True will use the first tpb url as found on https://piratebayproxy.info/.
  • menu.vip_str: string to use in the menu.torrent_format when the user is VIP.
  • menu.not_vip_str: string to use in the menu.torrent_format when the user is not VIP.
  • menu.trusted_str: string to use in the menu.torrent_format when the user is trusted.
  • menu.not_trusted_str: string to use in the menu.torrent_format when the user is not trusted.
  • menu.tpb_url: tpb url, if use_tpb_proxy is True acts as a fallback url in case https://piratebayproxy.info/ is unavailable or the parsing fails.
  • menu.categories: comma separated list of tpb categories, when browsing the top torrents.
  • menu.categories_48h: add last 48h top torrent categories.
  • actions.*: commands to run on the selected torrent, accepts torrent string format keys.

Available torrent string format keys:

  • {title}: torrent title
  • {filesize}: torrent file size
  • {seeds}: number of seeders
  • {leeches}: number of leechers
  • {uploader}: torrent uploader
  • {upload_date}: upload date
  • {url}: torrent's tpb url
  • {magnetlink}: torrent magnet link
  • {vip}: uploader is VIP, replaced with menu.vip_str/menu.not_vip_str.
  • {trusted}: uploader is trusted, replaced with menu.trusted_str/menu.not_trusted_str.

If the menu.command uses rofi, rofi-tpb will use rofi's -multiple-select flag to allow for selecting multiple torrents.