rutorrent,按标签批量导出.torrent文件

rutorrent,按标签批量导出.torrent文件

想要从 rutorrent/rtorrent 转移到 deluge,但保留我所有的 torrent 标签,我通过修改一些 rutorrents php 文件并使用一些自定义 javascript 来解决这个问题。

答案1

该解决方案使用 rutorrent 附带的“源”插件。

首先,我改变了 rutorrent 的默认行为,将 .torrent 保存到指定目录,而不是在浏览器中提供下载: (将“/media/sdf1/home/torrents/”替换为您创建的用于放置 .torrent 文件的目录的绝对路径)

/rutorrent/php/Torrent.php

public function send( $filename = null ) 
{
        if(is_null( $filename ))
        $filename = $this->info['name'].'.torrent';
    if(isset($_SERVER['HTTP_USER_AGENT']) && strstr($_SERVER['HTTP_USER_AGENT'],'MSIE'))
        $filename = rawurlencode($filename);
        //header( 'Content-Disposition: attachment; filename="'.$filename.'"' );
        //cachedEcho( $this->__toString(), 'application/x-bittorrent', true );
        $fp = fopen("/media/sdf1/home/torrents/".$filename, 'w');
        fwrite($fp, $this->__toString());
        fclose($fp);
    }

那么这一位是可选的,只是防止在发送函数没有返回任何内容时引发错误,尽管它仍然可以工作。

/rutorrent/插件/source/action.php

if(isset($_REQUEST['hash']))
{
    $torrent = rTorrent::getSource($_REQUEST['hash']);
    if($torrent)
        $torrent->send();
}
//header("HTTP/1.0 302 Moved Temporarily");
//header("Location: ".$_SERVER['PHP_SELF'].'?result=0');

现在,实际的脚本(在 javascript 中)会遍历 rutorrent 中可见的种子列表,因此单击所需的标签,然后运行此代码,可以在 js 文件中运行,也可以像我一样通过 firebug js 控制台运行。请注意,它只能处理“首屏”可见的种子,您必须向下滚动并重新运行它,以处理在一个屏幕高度内不可见的所有种子“页面”,但如果您最大化屏幕尺寸和窗格尺寸,您将获得尽可能多的内容。(如果有重复,请不要担心,这不会影响任何事情)

//can only do visible torrents, so have to scroll and execute again 

var torrents = new Array();

$("#List .stable-body tr").each(function(i){    
    torrents[i] = $( this ).attr("id"); 
})

var count = torrents.length;
var i = 0;
console.log( torrents );

function request(torrent){

    if(i == count){
        console.log( i+'/'+count );
        console.log( "DONE" );
        return;
    }
    $.get( "plugins/source/action.php", { hash: torrent}, function( data ) {
      i++;    
      request(torrents[i]);
    });
    console.log( i+'/'+count );
}

request(torrents[0]);

现在该视图的 .torrent 文件将位于指定文件夹中。移动它们、添加它们、标记它们,然后对其他视图/标签重复此操作。

相关内容