因此,deluge 本身不支持添加与全局设置标签或下载目录不同的种子。因此,可用的浏览器插件也不支持。因此,我找到了一种绕过此问题的方法,无需编写自定义插件即可将种子添加到 WebUI。
答案1
它的工作原理是将浏览器插件的输出定向到下面的 php 脚本而不是 deluge 本身。然后脚本将 torrent 或 magnet 保存到插件 url 中参数指定的特定监视目录。从这里开始,deluge 的“AutoAdd”插件将设置为监视您想要的各种监视目录,并使用所选标签从每个目录加载 torrent,以及特定于该监视目录的下载目录(或该插件提供的任何其他设置)。
<?php
//specify hostname in addon as server.com/thisScript.php?label=labelName
//tested with these addons:
//https://addons.mozilla.org/en-US/firefox/addon/bittorrent-webui-120685/
//https://chrome.google.com/webstore/detail/remote-torrent-adder/oabphaconndgibllomdcjbfdghcmenci?hl=en
//in deluge mode, others may work.
//specify server address as server.com/path/storeTorrent.php?label=labelname
//label folder must first be created
//use with AutoAdd plugin, to watch directories, and add with individual labels and locations
//http://dev.deluge-torrent.org/wiki/Plugins/AutoAdd (configure with pc client)
//edit $watchDir to your base watch dir yours
$watchDir = '/media/sdf1/home/private/deluge/watch/';
$label = str_replace(array("json",":"),"",$_REQUEST['label']);
//file_put_contents('debug.txt', json_encode($_REQUEST).'--'.file_get_contents('php://input'));//debug full
//file_put_contents('debug.txt', $label;//debug just label param
if($label && is_dir($watchDir.$label)){
$json = file_get_contents('php://input');
$array = json_decode($json,true);
if($array['method'] == 'core.add_torrent_magnet'){
preg_match('#magnet:\?xt=urn:btih:(?<hash>.*?)&dn=(?<filename>.*?)&tr=(?<trackers>.*?)$#', $array['params'][0], $magnet_link);
file_put_contents($watchDir.$label.$magnet_link['hash'].'.magnet', $array['params'][0]);
}else if($array['method'] == 'core.add_torrent_file'){
file_put_contents( $watchDir.$label.md5($array['params'][1]).'.torrent' , base64_decode($array['params'][1]));
}
}
else header(':', true, 401);
header('Content-Type: application/json');
echo '{"id": 0, "result": true, "error": null}';
?>