Deluge WebUI, adicionando torrents com diferentes diretório de download e label

0

Portanto, o dilúvio não suporta de forma nativa a adição de um torrent com um rótulo ou diretório de download diferente daquele do conjunto global. Portanto, os complementos do navegador não estão disponíveis. Então eu trabalhei uma maneira de contornar isso para adicionar torrents para o webui sem escrever um plugin personalizado.

    
por Hayden Thring 12.04.2016 / 12:13

1 resposta

0

Como isso funciona é direcionar a saída do addon do navegador para o script php abaixo, em vez do próprio deluge. Em seguida, o script salva a torrente ou o ímã em um diretório de observação específico especificado por um parâmetro na URL do complemento. A partir daqui, o plugin "AutoAdd" para o dilúvio será configurado para monitorar os vários diretórios de vigia que você deseja e carregar torrents de cada um com um rótulo escolhido e diretório de download (ou qualquer outra configuração disponível por esse addon) específico para esse diretório de inspeção. / p>

    <?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}';
    ?>

link

    
por 12.04.2016 / 12:13