nakashima723 / P2Pcrwlr

P2Pクローラ
https://twitter.com/nakashima723
Other
0 stars 0 forks source link

ピアごとにフォルダを分けてダウンロードできるようにする。 #24

Closed tenax66 closed 1 year ago

tenax66 commented 1 year ago

Issue #14 で議論しているピアごとの証拠ピース収集について実装を進めているので、途中経過的ではありますが、一旦プルリクエストを送らせてもらいます。

まずClient.downloadメソッドでファイル全体のダウンロードを行うと、そこで接続したピアの一覧がpeer.csvに吐かれます。それを読み込んでClient.download_pieceメソッドが各ピアからひとつのピースのダウンロードを試みるようになっています。

IPとピースを指定してのダウンロードはうまくいっているのですが、ピースをファイルとして書き出す処理がまだ実装できておらず、現状だと全体をダウンロードするときと変わらない見た目になっています。 (Big Buck Bunnyでテストしているのでそれを例にとると、仮にピースをひとつだけダウンロードしたときでもBig Buck Bunny.mp4ができてしまう)

あとは、当たり前と言えば当たり前なのですが、ピアをローカルに記録する形式だとすぐ古くなってしまうのでダウンロードできない場合が多いという問題も判明してきています。 ここは、トラッカー等から生きているピアを読み込むように仕組みを修正することを考えたほうがよいのかもしれません。


参考画像: 各ファイル名のフォルダ配下にpeer.csvが作成され、それを読み込んで、IPアドレス名のフォルダにピースがダウンロードされます。

スクリーンショット 2023-04-18 21 41 52
nakashima723 commented 1 year ago

ありがとうございます!

生きているピアを読み込むように仕組みを修正 可能なら、上記をやった上で既存のピア情報と照合して、既存のピアから優先的にピースを確保するのが良さそうです。