Автор Тема: Настройка перехвата magnet-ссылок  (Прочитано 7160 раз)

Citrus

  • Старожил
  • ****
  • Сообщений: 272
  • Карма: +64/-7
    • Просмотр профиля
Здесь собран рабочий материал по настройке популярных браузеров, таких как Opera, Firefox, Google Chrome на передачу magnet-линков р2р-клиенту.
Проверено на р2р-клиентах: Freedcpp, Linuxdcpp, Eiskaltdc, Eiskaltdcpp, Eiskaltdcpp-qt, Eiskaltdcpp-gtk.
Ниже приведены инструкции на примере клиента eiskaltdcpp-qt*


Настройка браузера Opera:
Заходим на вкладку Инструменты-->Настройки-->Дополнительно-->Программы-->Добавить
В поле «Протокол» пишем: «magnet», в поле: «открыть в другой программе» пишем: «eiskaltdcpp-gt»
(или название другого клиента),
в поле: «Параметр» пишем: «-m»
Аналогично добавляем хаб-ссылки, вместо magnet пишем: dchub.
Требуется перезапустить браузер.

Настройка браузера Iceweasel/Firefox:
(версия < 3.6) в about:config добавить:
ключ (строковое) = network.protocol-handler.app.magnet
значение = /usr/bin/eiskaltdcpp-qt
(версия >= 3.6) в about:config добавить:
ключ (логическое) = network.protocol-handler.expose.magnet
значение = false
нажать на магнет ссылку и в появившемся диалоге выбрать, чем открывать
Аналогично добавляем хаб-ссылки...
Эти настройки применятся сразу.

Перехват магнет-ссылок из Iceweasel/Firefox и Chromium/Google Chrome в Gnome (вариант #1):
gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "eiskaltdcpp-qt %s"
gconftool-2 -s /desktop/gnome/url-handlers/magnet/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true
Эти настройки применятся сразу.

Подхват магнет-ссылок из Iceweasel (Firefox) и Chromium (Google Chrome) в Gnome (вариант #2):
mkdir -p ~/.gconf/desktop/gnome/url-handlers/magnet
echo '<?xml version="1.0"?>
<gconf>
    <entry name="needs_terminal" mtime="1241801989" type="bool" value="false"/>
    <entry name="enabled" mtime="1241801989" type="bool" value="true"/>
    <entry name="command" mtime="1254633960" type="string">
        <stringvalue>eiskaltdcpp-qt &quot;%s&quot;</stringvalue>
    </entry>
</gconf>' > ~/.gconf/desktop/gnome/url-handlers/magnet/%gconf.xml
Эти настройки применятся после перезапуска иксов или полной перезагрузки.

Подхват магнет-ссылок из Konqueror и Chromium (Google Chrome) в KDE:
sudo sh -c "echo '[Protocol]
exec=/usr/bin/eiskaltdcpp-qt %u
protocol=magnet
input=none
output=none
helper=true
reading=false
deleting=false
writing=false
makedir=false
deleting=false
Icon=eiskaltdcpp
Class=:internet
Description=Direct Connect protocol
URIMode=url' > /usr/share/kde4/services/magnet.protocol"
Эти настройки применятся сразу.

Если используется FreeDC++, то не забудьте также включить соответствующую опцию в его настройках:



Рассмотренные выше инструкции представлены для случая, если вы используете только Direct Connect.
Но magnet-ссылки на веб-страницах могут предназначаться и для торрент-клиентов.
Если вы используете обе технологии для файл-обмена, то для удобства их использования имеет смысл написать простой скрипт для распознавания типа magnet-ссылки и передачи ее в нужную программу.

Вот пример простого скрипта:
#!/bin/sh

export DC_CLIENT='eiskaltdcpp-qt'
export TORRENT_CLIENT='transmission-remote --add'

if (echo "${1}" | grep '^magnet:?.*xt=urn:tree:tiger:') then
    echo -e "Using DC-client"
    "${DC_CLIENT}" "${1}" &
elif (echo "${1}" | grep '^magnet:?.*xt=urn:btih:') then
    echo -e "Using torrent-client"
    "${TORRENT_CLIENT}" "${1}" &
else
    echo -e "Unknown type of magnet-link:\n${1}"
    exit 1
fi

exit 0

Сохраните этот скрипт как /usr/local/bin/open-magnet или /usr/bin/open-magnet и сделайте его исполняемым.
Для настройки браузеров используйте инструкции выше, заменив eiskaltdcpp-qt* на open-magnet.

Вот пример более сложного скрипта:
#!/bin/sh

URL="$@"

LIST_TORRENTS="transmission
deluge
azureus
vuze
ktorrent
leechcraft -type url_encoded
qbittorrent
"

LIST_DCPP="eiskaltdc
eiskaltdcpp
freedcpp
linuxdcpp
leechcraft -type url_encoded"

url_handler() {
LIST="$1"
URL="$2"
echo "${LIST}" | \
while read PRG PARAMS ; do
PRG_PTH="/usr/bin/${PRG}"
if [ -e "${PRG_PTH}" ] ; then
[ "${PARAMS}" ] && PARAMS=" ${PARAMS}"
echo "exec ${PRG_PTH}${PARAMS} ${URL}"
exec ${PRG_PTH}${PARAMS} "${URL}"
break;
fi
done
}

#main

URL_TYPE=$(echo "${URL}" | sed 's/.*xt=urn:\([^:]*\):.*/\1/')

case "${URL_TYPE}" in
btih)
url_handler "${LIST_TORRENTS}" "${URL}"
;;

tree)
url_handler "${LIST_DCPP}" "${URL}"
;;

*)
echo "Error: url handler $URL_TYPE not found"
;;
esac

Пользователь Nexor даже сделал свой deb-пакет (копия) для автоматизации установки соответствующего скрипта и настройки системы.

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

прим.
* -теперь это два разных р2р-клиента: Eiskaltdcpp-qt, Eiskaltdcpp-gtk, поэтому будьте внимательны при копировании команд в терминале или копировании скриптов.

Предлагаемый материал перепечатан с разрешения автора и частично изменён.

источник

ссылки по теме:
Википедия-Magnet-ссылка
DC клиенты для Linux
EiskaltDC++ — Screenshots
EiskaltDC++ — Часто задаваемые вопросы
EiskaltDC++ — пакеты для Debian GNU/Linux и Ubuntu
FreeDC++ — пакеты для Debian GNU/Linux и Ubuntu
Google chrome (Chromium) и Magnet-ссылки в Ubuntu Linux
MAGNET-URI Project
Register protocol
« Последнее редактирование: 13 Июнь 2011, 13:51:38 от Citrus »
покинул форум.