Как открыть магнитные торрент-ссылки из Firefox в rTorrent?

Я использую торрент-клиент командной строки rTorrent под Xenial Xerus, и я хотел бы:

  1. Найдите и нажмите на магнитную торрент-ссылку с Firefox
  2. Откройте магнитную ссылку в rTorrent и начните загрузку

Я считаю, что скрипт нужно вызывать из Firefox, но написание такого скрипта до сих пор побеждало меня...

2 ответа

Решение

Проблемы обычно связаны с типом mime и обработчиками по умолчанию.

Во-первых, вы изменили Firefox about:config настройки? то есть:

network.protocol-handler.expose.magnet -> false

и сбросьте другие параметры в соответствии с этими вопросами и ответами на Firefox.

Вы настроили rTorrent для просмотра какого-либо конкретного каталога?

ФАЙЛ: ~/.rtorrent.rc

# Maximum and minimum number of peers to connect to per torrent.
min_peers = 50
max_peers = 80

# Maximum number of simultanious uploads per torrent.
max_uploads = 5

# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 50

# Default directory to save the downloaded torrents.
directory = $HOME/torrents/downloads

# Watch a directory for new torrents
# SET your watch directory here --v 
schedule = watch_directory,5,5,$HOME/torrents/watch/*.torrent

port_range = 60125-64125
port_random = yes
dht = auto

# UDP port to use for DHT.
dht_port = 63425

# Enable peer exchange (for torrents not marked private)
peer_exchange = yes

# Check hash for finished torrents.
check_hash = yes

encryption = allow_incoming,try_outgoing ,enable_retry

Тогда это просто вопрос "сохранить как" в $HOME/torrents/watch,

+ Изменить $HOME/torrents/watch в любую используемую вами подпапку торрентов или, по крайней мере, $HOME для /home/username

Создайте файл и добавьте следующий скрипт:

ФАЙЛ: maglink-rtorrent.sh

#!/bin/bash

cd $HOME/torrents/watch    # set your watch directory here
[[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit;
echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"

Не забудьте сделать его исполняемым

chmod +x maglink-rtorrent.sh

Это также предлагает возможность загрузки с терминала:

cd $HOME/torrents/watch
./maglink-rtorrent.sh "MAGNET-LINK-HERE"

Дополнительные потрясающие советы по обслуживанию и параметры настройки rTorrent здесь.

Дополнительные кредиты:

Обновление 2:

Если вы не используете rTorrent, но kTorrent или qBittorent, то вот следующее:

# check defaults
xdg-mime query default x-scheme-handler/magnet
gvfs-mime --query x-scheme-handler/magnet

# set defaults
xdg-mime default qBittorent.desktop x-scheme-handler/magnet
gvfs-mime --set x-scheme-handler/magnet qBittorrent.desktop

Существует дополнительная настройка (из памяти) для того, требуется ли вам командная строка.

Однако для rTorrent эта ссылка является обработчиком URI FlexGet rTorrent Magnet

Полная информация здесь.

Надеюсь это поможет.

Следующий скрипт представляет собой код Max Gonzih, который работает как с обычными.torrent-файлами, так и с магнитными ссылками:

#!/bin/bash

torrent_file_or_magnet_link="$1"

# Edit rtorrent.rc to automatically start downloads when a .torrent file
# appears in this directory.
cd "$HOME/.rtorrent/watch/start/"

# XT stands for "exact topic".
# BTIH is the BitTorrent info hash:
# https://en.wikipedia.org/wiki/Magnet_URI_scheme#BitTorrent_info_hash_(BTIH)
# This is the hex-encoded SHA-1 hash of the torrent file info section
magnet_regex="xt=urn:btih:([^&/]+)"
if [[ "$torrent_file_or_magnet_link" =~ $magnet_regex ]]; then
  torrent_hash=${BASH_REMATCH[1]};
  magnet_link_length=${#torrent_file_or_magnet_link}
  # To conform with the bencode encoding, the magnet link's number of characters
  # must be part of the torrent file, otherwise rTorrent can't read it.
  # Same for the "e" at the end.
  # See https://en.wikipedia.org/wiki/Bencode
  torrent_file_content="d10:magnet-uri${magnet_link_length}:${torrent_file_or_magnet_link}e"

  # Note that rTorrent will read this torrent file, start downloading
  # the file and then remove the torrent file
  echo "$torrent_file_content" > "$torrent_hash.torrent"
else
  cp "$torrent_file_or_magnet_link" .
fi

Вы можете использовать это в сценарии (давайте назовем это pass_to_rtorrent.sh) и пусть Firefox передает торрент-файл или магнитную ссылку на скрипт:

Firefox rTorrent скриншот

Убедитесь, что скрипт исполняемый: chmod +x pass_to_rtorrent.sh

Другие вопросы по тегам