Rtorrent + php + mysql

rtorrentコンソールtorrentクライアントと初めて知り合った後、torrentを使って作業を自動化するという考えは私を去りませんでした。

トレントの操作に関する多くの記事がありますが、必要なものが見つかりませんでした。



この記事では、php + mysql + rtorrentを使用してトレントを操作する方法を例に示して説明します。



必要です:







ダウンロードするトレントファイルを配置します


この例では、トレントファイルのアップロードを含むフォームですが、重要ではありません。 トラッカーを解析し、完成したトレントファイルをスクリプトに転送することを妨げるものはありません。

<?php .......... $torrent = new Torrent($_FILES['file']['tmp_name']); if ($hash = $torrent->hash_info()) { move_uploaded_file($_FILES['file']['tmp_name'], "torrent/new/" . microtime(true) . rand(1000, 9999) . ".torrent"); mysql_query("INSERT INTO video SET `show` = '" . mysql_real_escape_string($show) . "', hash = '" . mysql_real_escape_string($hash) . "'}'"); $error = " "; } else { $error = "  torrent-"; } .......... ?>
      
      







rtorrentに接続します。


 <?php ...... $xrc = XML_RPC2_Client::create("http://127.0.0.1/RPC2", array("encoding" => "utf-8")); .....
      
      





ダウンロードしたトレントのリストを操作します


 ..... foreach ($xrc->download_list("complete") as $hash) { $episode = mysql_fetch_assoc(mysql_query("SELECT * FROM video WHERE hash = '" . mysql_real_escape_string($hash) . "'")); if (!$episode) { //    continue; } $base_path = $xrc->{"d.get_base_path"}($hash); if (is_file($base_path)) { //  ,          mysql_query("UPDATE video SET filename = '" . mysql_real_escape_string($base_path) . "', hash = '' WHERE hash = '" . mysql_real_escape_string($hash) . "'"); $xrc->{"d.erase"}($hash); } else { printf("$base_path does not exist!\n"); } } ?>
      
      





rtorrentのすべてのコマンドのリスト: RTorrentCommands



最後に何がありますか?



rtorrentをphp + mysqlに接続した後、さらに自動化するための多くのアイデアがあります。 個人的には、新しいシリーズのテレビ番組の自動ダウンロードと、ダウンロードの成功に関するSMS通知を作成しました。

このような方法をCMSに埋め込み、新しい映画/テレビ番組/ソフトウェアのダウンロードを整理し、ファイルホスティングサービスにアップロードすることは難しくありません。



All Articles